fixed grammar, grammar injections, wip topiary formatter
This commit is contained in:
8
tree-sitter/build.sh
Executable file
8
tree-sitter/build.sh
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
set -e
|
||||||
|
tree-sitter generate
|
||||||
|
make
|
||||||
|
tree-sitter build --wasm
|
||||||
|
rm -f /usr/lib64/nvim/parser/crepuscular.so
|
||||||
|
cp libtree-sitter-crepuscular.so /usr/lib64/nvim/parser/crepuscular.so
|
||||||
|
rm -f ~/.config/nvim/after/queries/crepuscular/*
|
||||||
|
cp queries/* ~/.config/nvim/after/queries/crepuscular/
|
@@ -4,8 +4,24 @@ def tricky =
|
|||||||
ab + cd
|
ab + cd
|
||||||
|
|
||||||
|
|
||||||
## doc comment
|
## *_this_*
|
||||||
type [a,b] list = [a,b] List option
|
## does *_this_* work?
|
||||||
|
## video::https://code.org[Cool]
|
||||||
|
##
|
||||||
|
## a list:
|
||||||
|
## * item1
|
||||||
|
## * item2
|
||||||
|
##
|
||||||
|
## === test
|
||||||
|
## Double TS language injection goes hard
|
||||||
|
##
|
||||||
|
## [source,c]
|
||||||
|
## ----
|
||||||
|
## int main() {
|
||||||
|
## return 0;
|
||||||
|
## }
|
||||||
|
## ----
|
||||||
|
type t List = 'EOL | 'Cons {hd: t, tl: t List}
|
||||||
|
|
||||||
# comment
|
# comment
|
||||||
|
|
||||||
|
@@ -59,8 +59,13 @@ module.exports = grammar({
|
|||||||
section_comment: $ =>
|
section_comment: $ =>
|
||||||
token(seq("###", /.*/)),
|
token(seq("###", /.*/)),
|
||||||
|
|
||||||
|
doc_comment_value: $ =>
|
||||||
|
choice(
|
||||||
|
token.immediate(/\n/),
|
||||||
|
token.immediate(/[^\n]*\n?/)),
|
||||||
|
|
||||||
doc_comment: $ =>
|
doc_comment: $ =>
|
||||||
repeat1(seq('## ', token.immediate(/.*/))),
|
repeat1(seq('##', token.immediate(/ */), $.doc_comment_value)),
|
||||||
|
|
||||||
definition: $ => seq(
|
definition: $ => seq(
|
||||||
optional(field('doc', $.doc_comment)),
|
optional(field('doc', $.doc_comment)),
|
||||||
@@ -81,13 +86,13 @@ module.exports = grammar({
|
|||||||
field('what', $.path),
|
field('what', $.path),
|
||||||
'with',
|
'with',
|
||||||
field('tag', $.tag),
|
field('tag', $.tag),
|
||||||
field('ty', $._type)),
|
field('ty', $.type)),
|
||||||
|
|
||||||
full_partial_type_definition: $ => seq(
|
full_partial_type_definition: $ => seq(
|
||||||
"type",
|
"type",
|
||||||
"?", field('name', $.path),
|
"?", field('name', $.path),
|
||||||
"=",
|
"=",
|
||||||
field('type', $._type)
|
field('type', $.type)
|
||||||
),
|
),
|
||||||
|
|
||||||
type_definition: $ => seq(
|
type_definition: $ => seq(
|
||||||
@@ -102,18 +107,18 @@ module.exports = grammar({
|
|||||||
)),
|
)),
|
||||||
field('name', $.path),
|
field('name', $.path),
|
||||||
"=",
|
"=",
|
||||||
field('type', $._type)
|
field('type', $.type)
|
||||||
),
|
),
|
||||||
|
|
||||||
_type_atom: $ => choice(
|
type_atom: $ => choice(
|
||||||
$.just_type,
|
$.just_type,
|
||||||
$.partial_type,
|
$.partial_type,
|
||||||
seq('(', $._type, ')'),
|
seq('(', $.type, ')'),
|
||||||
$.record_type,
|
$.record_type,
|
||||||
),
|
),
|
||||||
|
|
||||||
_type_non_fn: $ => choice(
|
_type_non_fn: $ => choice(
|
||||||
$._type_atom,
|
$.type_atom,
|
||||||
$.tagged_type,
|
$.tagged_type,
|
||||||
$.union_type,
|
$.union_type,
|
||||||
$.partial_union_type,
|
$.partial_union_type,
|
||||||
@@ -122,20 +127,20 @@ module.exports = grammar({
|
|||||||
$.recursive_type,
|
$.recursive_type,
|
||||||
),
|
),
|
||||||
|
|
||||||
_type: $ => choice(
|
type: $ => choice(
|
||||||
$._type_non_fn,
|
$._type_non_fn,
|
||||||
$.fn_type,
|
$.fn_type,
|
||||||
),
|
),
|
||||||
|
|
||||||
union_type: $ => prec.left(1,
|
union_type: $ => prec.left(1,
|
||||||
seq(
|
seq(
|
||||||
field('left', $._type),
|
field('left', $.type),
|
||||||
'|',
|
'|',
|
||||||
field('right', $._type))),
|
field('right', $.type))),
|
||||||
|
|
||||||
partial_union_type: $ => prec.left(1,
|
partial_union_type: $ => prec.left(1,
|
||||||
seq(
|
seq(
|
||||||
field('left', $._type),
|
field('left', $.type),
|
||||||
'|', '...',
|
'|', '...',
|
||||||
field('partial', $.partial_type))),
|
field('partial', $.partial_type))),
|
||||||
|
|
||||||
@@ -143,17 +148,17 @@ module.exports = grammar({
|
|||||||
tagged_type: $ => prec.right(3,
|
tagged_type: $ => prec.right(3,
|
||||||
seq(field('tag', $.tag), optional(
|
seq(field('tag', $.tag), optional(
|
||||||
field('type', choice(
|
field('type', choice(
|
||||||
$._type_atom,
|
$.type_atom,
|
||||||
$.parametrized_type))))),
|
$.parametrized_type))))),
|
||||||
|
|
||||||
multi_type_parameters: $ => seq('[',
|
multi_type_parameters: $ => seq('[',
|
||||||
field('arg', $._type),
|
field('arg', $.type),
|
||||||
repeat(seq(',', field('arg', $._type))),
|
repeat(seq(',', field('arg', $.type))),
|
||||||
']'),
|
']'),
|
||||||
parametrized_type: $ => prec.left(4, seq(
|
parametrized_type: $ => prec.left(4, seq(
|
||||||
field('nest', choice(
|
field('nest', choice(
|
||||||
$.multi_type_parameters,
|
$.multi_type_parameters,
|
||||||
$._type_atom,
|
$.type_atom,
|
||||||
)),
|
)),
|
||||||
repeat(field('nest', $.path)),
|
repeat(field('nest', $.path)),
|
||||||
field('type', $.path),
|
field('type', $.path),
|
||||||
@@ -163,22 +168,22 @@ module.exports = grammar({
|
|||||||
field('arg', $.identifier),
|
field('arg', $.identifier),
|
||||||
repeat(seq(',', field('arg', $.identifier))),
|
repeat(seq(',', field('arg', $.identifier))),
|
||||||
':',
|
':',
|
||||||
field('type', $._type)),
|
field('type', $.type)),
|
||||||
|
|
||||||
recursive_type: $ => seq('&',
|
recursive_type: $ => seq('&',
|
||||||
field('name', $.identifier),
|
field('name', $.identifier),
|
||||||
field('type', $._type)),
|
field('type', $.type)),
|
||||||
|
|
||||||
partial_type: $ => seq('?', $.identifier),
|
partial_type: $ => seq('?', $.identifier),
|
||||||
|
|
||||||
fn_type: $ => prec.left(-10,
|
fn_type: $ => prec.left(-10,
|
||||||
seq(field('arg', $._type), '->', field('res', $._type))),
|
seq(field('arg', $.type), '->', field('res', $.type))),
|
||||||
|
|
||||||
just_type: $ => prec(-1, $.path),
|
just_type: $ => prec(-1, $.path),
|
||||||
|
|
||||||
// TODO: doc comments
|
// TODO: doc comments
|
||||||
|
|
||||||
record_type_field: $ => seq(field('name', $.identifier), ':', field('type', $._type)),
|
record_type_field: $ => seq(field('name', $.identifier), ':', field('type', $.type)),
|
||||||
record_type: $ => seq(
|
record_type: $ => seq(
|
||||||
'{',
|
'{',
|
||||||
repeat(seq(field('field', $.record_type_field), ',')),
|
repeat(seq(field('field', $.record_type_field), ',')),
|
||||||
@@ -214,26 +219,26 @@ module.exports = grammar({
|
|||||||
list_expression: $ =>
|
list_expression: $ =>
|
||||||
seq(
|
seq(
|
||||||
'[',
|
'[',
|
||||||
repeat(seq($._expression, ',')),
|
repeat(seq($.expression, ',')),
|
||||||
optional($._expression),
|
optional($.expression),
|
||||||
']'),
|
']'),
|
||||||
|
|
||||||
field_access: $ => prec.left(
|
field_access: $ => prec.left(
|
||||||
seq(field('expr', $._atom), ':', field('field', $.identifier))),
|
seq(field('expr', $.atom), ':', field('field', $.identifier))),
|
||||||
|
|
||||||
function_call: $ => prec.left("function_call",
|
function_call: $ => prec.left("function_call",
|
||||||
seq(
|
seq(
|
||||||
field('fn', $._atom),
|
field('fn', $.atom),
|
||||||
'(',
|
'(',
|
||||||
repeat(seq(field('arg', $._expression), ',')),
|
repeat(seq(field('arg', $.expression), ',')),
|
||||||
optional(field('arg', $._expression)),
|
optional(field('arg', $.expression)),
|
||||||
')')),
|
')')),
|
||||||
|
|
||||||
ident_expr: $ => prec("ident",
|
ident_expr: $ => prec("ident",
|
||||||
$.path),
|
$.path),
|
||||||
|
|
||||||
record_expr_field: $ =>
|
record_expr_field: $ =>
|
||||||
seq(field('field', $.identifier), ':', field('value', $._expression)),
|
seq(field('field', $.identifier), ':', field('value', $.expression)),
|
||||||
|
|
||||||
record_expr: $ => seq(
|
record_expr: $ => seq(
|
||||||
'{',
|
'{',
|
||||||
@@ -241,8 +246,8 @@ module.exports = grammar({
|
|||||||
optional($.record_expr_field),
|
optional($.record_expr_field),
|
||||||
'}'),
|
'}'),
|
||||||
|
|
||||||
_atom: $ => choice(
|
atom: $ => choice(
|
||||||
prec("parentrized", seq('(', $._expression, ')')),
|
prec("parentrized", seq('(', $.expression, ')')),
|
||||||
$.ident_expr,
|
$.ident_expr,
|
||||||
$.char_literal,
|
$.char_literal,
|
||||||
$.string_literal,
|
$.string_literal,
|
||||||
@@ -257,93 +262,93 @@ module.exports = grammar({
|
|||||||
'let',
|
'let',
|
||||||
field('name', $.identifier),
|
field('name', $.identifier),
|
||||||
'=',
|
'=',
|
||||||
field('value', $._expression),
|
field('value', $.expression),
|
||||||
optional('in'),
|
optional('in'),
|
||||||
field('body', $._expression),
|
field('body', $.expression),
|
||||||
)),
|
)),
|
||||||
|
|
||||||
await_binding: $ => prec("let", seq(
|
await_binding: $ => prec("let", seq(
|
||||||
'await',
|
'await',
|
||||||
field('name', $.identifier),
|
field('name', $.identifier),
|
||||||
'=',
|
'=',
|
||||||
field('value', $._expression),
|
field('value', $.expression),
|
||||||
optional('in'),
|
optional('in'),
|
||||||
field('body', $._expression),
|
field('body', $.expression),
|
||||||
)),
|
)),
|
||||||
|
|
||||||
type_downcast: $ => seq(
|
type_downcast: $ => seq(
|
||||||
field('expr', $._atom),
|
field('expr', $.atom),
|
||||||
'::',
|
'::',
|
||||||
field('as', $._type),
|
field('as', $.type),
|
||||||
),
|
),
|
||||||
|
|
||||||
lambda: $ => prec.right(4, seq(
|
lambda: $ => prec.right(4, seq(
|
||||||
field('arg', $.identifier),
|
field('arg', $.identifier),
|
||||||
optional(seq(':', field('arg_type', $._type_non_fn))),
|
optional(seq(':', field('arg_type', $._type_non_fn))),
|
||||||
'->',
|
'->',
|
||||||
field('body', $._expression)
|
field('body', $.expression)
|
||||||
)),
|
)),
|
||||||
|
|
||||||
and_expr: $ => prec.left("with",
|
and_expr: $ => prec.left("with",
|
||||||
seq(
|
seq(
|
||||||
field('left', $._expression),
|
field('left', $.expression),
|
||||||
'and',
|
'and',
|
||||||
field('right', $._atom))),
|
field('right', $.atom))),
|
||||||
|
|
||||||
if_expr: $ => prec("if",
|
if_expr: $ => prec("if",
|
||||||
seq(
|
seq(
|
||||||
'if',
|
'if',
|
||||||
field('condition', $._expression),
|
field('condition', $.expression),
|
||||||
'then',
|
'then',
|
||||||
field('then', $._expression),
|
field('then', $.expression),
|
||||||
'else',
|
'else',
|
||||||
field('else', $._expression))),
|
field('else', $.expression))),
|
||||||
|
|
||||||
sub_expr: $ => prec.left("addition",
|
sub_expr: $ => prec.left("addition",
|
||||||
seq(field('left', $._expression), '-', field('right', $._expression))),
|
seq(field('left', $.expression), '-', field('right', $.expression))),
|
||||||
add_expr: $ => prec.left("addition",
|
add_expr: $ => prec.left("addition",
|
||||||
seq(field('left', $._expression), '+', field('right', $._expression))),
|
seq(field('left', $.expression), '+', field('right', $.expression))),
|
||||||
|
|
||||||
divide_expr: $ => prec.left("multiplication",
|
divide_expr: $ => prec.left("multiplication",
|
||||||
seq(field('left', $._expression), '/', field('right', $._expression))),
|
seq(field('left', $.expression), '/', field('right', $.expression))),
|
||||||
multiply_expr: $ => prec.left("multiplication",
|
multiply_expr: $ => prec.left("multiplication",
|
||||||
seq(field('left', $._expression), '*', field('right', $._expression))),
|
seq(field('left', $.expression), '*', field('right', $.expression))),
|
||||||
|
|
||||||
equal_expr: $ => prec.left("equal",
|
equal_expr: $ => prec.left("equal",
|
||||||
seq(field('left', $._expression), '=', field('right', $._expression))),
|
seq(field('left', $.expression), '=', field('right', $.expression))),
|
||||||
|
|
||||||
concat_expr: $ => prec.left("concat",
|
concat_expr: $ => prec.left("concat",
|
||||||
seq(field('left', $._expression), '++', field('right', $._expression))),
|
seq(field('left', $.expression), '++', field('right', $.expression))),
|
||||||
|
|
||||||
compose_expr: $ => prec.left("concat",
|
compose_expr: $ => prec.left("concat",
|
||||||
seq(field('left', $._expression), '=>', field('right', $._expression))),
|
seq(field('left', $.expression), '=>', field('right', $.expression))),
|
||||||
|
|
||||||
exponent_expr: $ => prec.left("exponent",
|
exponent_expr: $ => prec.left("exponent",
|
||||||
seq(field('left', $._expression), '^', field('right', $._atom))),
|
seq(field('left', $.expression), '^', field('right', $.atom))),
|
||||||
|
|
||||||
match_arm: $ => prec("match_arm",
|
match_arm: $ => prec("match_arm",
|
||||||
seq(
|
seq(
|
||||||
field('cases', seq($._atom, repeat(seq('|', $._atom)))),
|
field('cases', seq($.atom, repeat(seq('|', $.atom)))),
|
||||||
'->', field('expr', $._atom))),
|
'->', field('expr', $.atom))),
|
||||||
|
|
||||||
match_expr: $ =>
|
match_expr: $ =>
|
||||||
seq('match', field('on', $._expression), 'with',
|
seq('match', field('on', $.expression), 'with',
|
||||||
field('arm', $.match_arm),
|
field('arm', $.match_arm),
|
||||||
prec("new_match_arm", repeat(seq('|', field('arm', $.match_arm))))),
|
prec("new_match_arm", repeat(seq('|', field('arm', $.match_arm))))),
|
||||||
|
|
||||||
negate_expr: $ => prec.right("negate",
|
negate_expr: $ => prec.right("negate",
|
||||||
seq('-', field('expr', $._expression))),
|
seq('-', field('expr', $.expression))),
|
||||||
|
|
||||||
tag_expr: $ => prec.right("tag",
|
tag_expr: $ => prec.right("tag",
|
||||||
seq(
|
seq(
|
||||||
field('tag', $.tag),
|
field('tag', $.tag),
|
||||||
field('expr', $._expression))),
|
field('expr', $.expression))),
|
||||||
|
|
||||||
await_expr: $ => prec.right("await",
|
await_expr: $ => prec.right("await",
|
||||||
seq('await', field('expr', $._expression))),
|
seq('await', field('expr', $.expression))),
|
||||||
|
|
||||||
_expression: $ => choice(
|
expression: $ => choice(
|
||||||
prec("expr_atom", $._atom),
|
prec("expr_atom", $.atom),
|
||||||
$.let_binding,
|
$.let_binding,
|
||||||
$.await_binding,
|
$.await_binding,
|
||||||
$.await_expr,
|
$.await_expr,
|
||||||
@@ -369,10 +374,10 @@ module.exports = grammar({
|
|||||||
'def',
|
'def',
|
||||||
field('name', $.path),
|
field('name', $.path),
|
||||||
choice(
|
choice(
|
||||||
seq(':', field('signature', $._type)),
|
seq(':', field('signature', $.type)),
|
||||||
seq(
|
seq(
|
||||||
optional(seq(':', field('signature', $._type))),
|
optional(seq(':', field('signature', $.type))),
|
||||||
seq('=', field('value', $._expression)),
|
seq('=', field('value', $.expression)),
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
3
tree-sitter/queries/injections.scm
Normal file
3
tree-sitter/queries/injections.scm
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
((doc_comment_value) @injection.content
|
||||||
|
(#set! injection.language "asciidoc")
|
||||||
|
(#set! injection.combined))
|
112
tree-sitter/queries/topiary.scm
Normal file
112
tree-sitter/queries/topiary.scm
Normal file
@@ -0,0 +1,112 @@
|
|||||||
|
; do not format inside these
|
||||||
|
[(string_literal)
|
||||||
|
(char_literal)
|
||||||
|
(comment)
|
||||||
|
(doc_comment)
|
||||||
|
] @leaf
|
||||||
|
|
||||||
|
; TODO: word wrapping in comments
|
||||||
|
|
||||||
|
(definition) @allow_blank_line_before
|
||||||
|
|
||||||
|
(doc_comment_value) @append_hardline
|
||||||
|
(doc_comment) @prepend_hardline @append_hardline
|
||||||
|
|
||||||
|
(comment) @append_hardline
|
||||||
|
|
||||||
|
(let_binding
|
||||||
|
"let" @prepend_spaced_softline @append_space
|
||||||
|
"=" @prepend_space @append_space ; @append_spaced_softline
|
||||||
|
value: (_) @prepend_indent_start @append_indent_end
|
||||||
|
body: (_) @prepend_hardline)
|
||||||
|
|
||||||
|
; TODO: report assertion error
|
||||||
|
;(await_binding
|
||||||
|
; body: (_) @prepend_hardline)
|
||||||
|
|
||||||
|
(def
|
||||||
|
":" @prepend_space @append_spaced_softline
|
||||||
|
signature: (_) @prepend_spaced_softline @prepend_indent_start @append_indent_end)
|
||||||
|
|
||||||
|
(def
|
||||||
|
"=" @prepend_space @append_spaced_softline @append_indent_start
|
||||||
|
value: (_) @append_indent_end)
|
||||||
|
|
||||||
|
(def "def" @append_space)
|
||||||
|
|
||||||
|
(if_expr
|
||||||
|
"if" @prepend_space @append_space
|
||||||
|
"then" @prepend_space @append_spaced_softline
|
||||||
|
then: (_) @prepend_indent_start @append_indent_end @append_hardline
|
||||||
|
"else" @prepend_space @append_spaced_softline
|
||||||
|
else: (_) @prepend_indent_start @append_indent_end)
|
||||||
|
|
||||||
|
((match_arm) @append_hardline . (match_arm))
|
||||||
|
(match_arm
|
||||||
|
"->" @append_spaced_softline @prepend_indent_start @append_indent_end)
|
||||||
|
(match_expr
|
||||||
|
"|" @append_space)
|
||||||
|
(match_expr
|
||||||
|
"match" @append_space
|
||||||
|
"with" @prepend_space @append_hardline
|
||||||
|
. (match_arm) @prepend_indent_start @append_indent_end)
|
||||||
|
|
||||||
|
; add newline between two consecutive definitions
|
||||||
|
((definition) @append_hardline . (definition))
|
||||||
|
|
||||||
|
(list_expression
|
||||||
|
"," @append_spaced_softline)
|
||||||
|
(list_expression
|
||||||
|
"[" @append_empty_softline
|
||||||
|
"]" @prepend_empty_softline)
|
||||||
|
(list_expression) @prepend_space @append_space
|
||||||
|
|
||||||
|
(atom
|
||||||
|
"(" @append_empty_softline
|
||||||
|
")" @prepend_empty_softline)
|
||||||
|
|
||||||
|
(extensible_union
|
||||||
|
"extensible" @append_space
|
||||||
|
"union" @append_space)
|
||||||
|
|
||||||
|
(extend_decl
|
||||||
|
"extend" @append_space
|
||||||
|
"with" @prepend_spaced_softline @append_space
|
||||||
|
tag: (_) @append_space)
|
||||||
|
|
||||||
|
(atom
|
||||||
|
"(" @delete
|
||||||
|
. (expression (atom))
|
||||||
|
. ")" @delete)
|
||||||
|
|
||||||
|
(full_partial_type_definition
|
||||||
|
"type" @append_space
|
||||||
|
"=" @prepend_space @append_spaced_softline)
|
||||||
|
|
||||||
|
(type_definition
|
||||||
|
"[" @prepend_space
|
||||||
|
"]" @append_space)
|
||||||
|
(type_definition
|
||||||
|
"," @append_space)
|
||||||
|
(type_definition
|
||||||
|
arg: (_) @append_space)
|
||||||
|
(type_definition
|
||||||
|
"type" @append_space
|
||||||
|
"=" @prepend_space @append_spaced_softline)
|
||||||
|
|
||||||
|
(function_call
|
||||||
|
"," @append_spaced_softline)
|
||||||
|
|
||||||
|
(record_expr_field
|
||||||
|
":" @append_spaced_softline)
|
||||||
|
(record_expr
|
||||||
|
"," @append_spaced_softline)
|
||||||
|
(record_expr
|
||||||
|
"{" @append_empty_softline
|
||||||
|
"}" @prepend_empty_softline)
|
||||||
|
|
||||||
|
; TODO: unify binary exprs
|
||||||
|
; TODO: scopes
|
||||||
|
; TODO: non-atom exprs
|
||||||
|
; TODO: types
|
||||||
|
; TODO: disable format regions
|
163
tree-sitter/src/grammar.json
generated
163
tree-sitter/src/grammar.json
generated
@@ -86,6 +86,25 @@
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"doc_comment_value": {
|
||||||
|
"type": "CHOICE",
|
||||||
|
"members": [
|
||||||
|
{
|
||||||
|
"type": "IMMEDIATE_TOKEN",
|
||||||
|
"content": {
|
||||||
|
"type": "PATTERN",
|
||||||
|
"value": "\\n"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "IMMEDIATE_TOKEN",
|
||||||
|
"content": {
|
||||||
|
"type": "PATTERN",
|
||||||
|
"value": "[^\\n]*\\n?"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
"doc_comment": {
|
"doc_comment": {
|
||||||
"type": "REPEAT1",
|
"type": "REPEAT1",
|
||||||
"content": {
|
"content": {
|
||||||
@@ -93,14 +112,18 @@
|
|||||||
"members": [
|
"members": [
|
||||||
{
|
{
|
||||||
"type": "STRING",
|
"type": "STRING",
|
||||||
"value": "## "
|
"value": "##"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "IMMEDIATE_TOKEN",
|
"type": "IMMEDIATE_TOKEN",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "PATTERN",
|
"type": "PATTERN",
|
||||||
"value": ".*"
|
"value": " *"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "SYMBOL",
|
||||||
|
"name": "doc_comment_value"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -204,7 +227,7 @@
|
|||||||
"name": "ty",
|
"name": "ty",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_type"
|
"name": "type"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -237,7 +260,7 @@
|
|||||||
"name": "type",
|
"name": "type",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_type"
|
"name": "type"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -328,12 +351,12 @@
|
|||||||
"name": "type",
|
"name": "type",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_type"
|
"name": "type"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"_type_atom": {
|
"type_atom": {
|
||||||
"type": "CHOICE",
|
"type": "CHOICE",
|
||||||
"members": [
|
"members": [
|
||||||
{
|
{
|
||||||
@@ -353,7 +376,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_type"
|
"name": "type"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "STRING",
|
"type": "STRING",
|
||||||
@@ -372,7 +395,7 @@
|
|||||||
"members": [
|
"members": [
|
||||||
{
|
{
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_type_atom"
|
"name": "type_atom"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
@@ -400,7 +423,7 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"_type": {
|
"type": {
|
||||||
"type": "CHOICE",
|
"type": "CHOICE",
|
||||||
"members": [
|
"members": [
|
||||||
{
|
{
|
||||||
@@ -424,7 +447,7 @@
|
|||||||
"name": "left",
|
"name": "left",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_type"
|
"name": "type"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -436,7 +459,7 @@
|
|||||||
"name": "right",
|
"name": "right",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_type"
|
"name": "type"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -453,7 +476,7 @@
|
|||||||
"name": "left",
|
"name": "left",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_type"
|
"name": "type"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -504,7 +527,7 @@
|
|||||||
"members": [
|
"members": [
|
||||||
{
|
{
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_type_atom"
|
"name": "type_atom"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
@@ -533,7 +556,7 @@
|
|||||||
"name": "arg",
|
"name": "arg",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_type"
|
"name": "type"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -550,7 +573,7 @@
|
|||||||
"name": "arg",
|
"name": "arg",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_type"
|
"name": "type"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -580,7 +603,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_type_atom"
|
"name": "type_atom"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -651,7 +674,7 @@
|
|||||||
"name": "type",
|
"name": "type",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_type"
|
"name": "type"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -676,7 +699,7 @@
|
|||||||
"name": "type",
|
"name": "type",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_type"
|
"name": "type"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -705,7 +728,7 @@
|
|||||||
"name": "arg",
|
"name": "arg",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_type"
|
"name": "type"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -717,7 +740,7 @@
|
|||||||
"name": "res",
|
"name": "res",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_type"
|
"name": "type"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -751,7 +774,7 @@
|
|||||||
"name": "type",
|
"name": "type",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_type"
|
"name": "type"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -953,7 +976,7 @@
|
|||||||
"members": [
|
"members": [
|
||||||
{
|
{
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_expression"
|
"name": "expression"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "STRING",
|
"type": "STRING",
|
||||||
@@ -967,7 +990,7 @@
|
|||||||
"members": [
|
"members": [
|
||||||
{
|
{
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_expression"
|
"name": "expression"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "BLANK"
|
"type": "BLANK"
|
||||||
@@ -991,7 +1014,7 @@
|
|||||||
"name": "expr",
|
"name": "expr",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_atom"
|
"name": "atom"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1020,7 +1043,7 @@
|
|||||||
"name": "fn",
|
"name": "fn",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_atom"
|
"name": "atom"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1037,7 +1060,7 @@
|
|||||||
"name": "arg",
|
"name": "arg",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_expression"
|
"name": "expression"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1055,7 +1078,7 @@
|
|||||||
"name": "arg",
|
"name": "arg",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_expression"
|
"name": "expression"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1098,7 +1121,7 @@
|
|||||||
"name": "value",
|
"name": "value",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_expression"
|
"name": "expression"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -1144,7 +1167,7 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"_atom": {
|
"atom": {
|
||||||
"type": "CHOICE",
|
"type": "CHOICE",
|
||||||
"members": [
|
"members": [
|
||||||
{
|
{
|
||||||
@@ -1159,7 +1182,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_expression"
|
"name": "expression"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "STRING",
|
"type": "STRING",
|
||||||
@@ -1229,7 +1252,7 @@
|
|||||||
"name": "value",
|
"name": "value",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_expression"
|
"name": "expression"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1249,7 +1272,7 @@
|
|||||||
"name": "body",
|
"name": "body",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_expression"
|
"name": "expression"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -1282,7 +1305,7 @@
|
|||||||
"name": "value",
|
"name": "value",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_expression"
|
"name": "expression"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1302,7 +1325,7 @@
|
|||||||
"name": "body",
|
"name": "body",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_expression"
|
"name": "expression"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -1316,7 +1339,7 @@
|
|||||||
"name": "expr",
|
"name": "expr",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_atom"
|
"name": "atom"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1328,7 +1351,7 @@
|
|||||||
"name": "as",
|
"name": "as",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_type"
|
"name": "type"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -1381,7 +1404,7 @@
|
|||||||
"name": "body",
|
"name": "body",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_expression"
|
"name": "expression"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -1398,7 +1421,7 @@
|
|||||||
"name": "left",
|
"name": "left",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_expression"
|
"name": "expression"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1410,7 +1433,7 @@
|
|||||||
"name": "right",
|
"name": "right",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_atom"
|
"name": "atom"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -1431,7 +1454,7 @@
|
|||||||
"name": "condition",
|
"name": "condition",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_expression"
|
"name": "expression"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1443,7 +1466,7 @@
|
|||||||
"name": "then",
|
"name": "then",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_expression"
|
"name": "expression"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1455,7 +1478,7 @@
|
|||||||
"name": "else",
|
"name": "else",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_expression"
|
"name": "expression"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -1472,7 +1495,7 @@
|
|||||||
"name": "left",
|
"name": "left",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_expression"
|
"name": "expression"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1484,7 +1507,7 @@
|
|||||||
"name": "right",
|
"name": "right",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_expression"
|
"name": "expression"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -1501,7 +1524,7 @@
|
|||||||
"name": "left",
|
"name": "left",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_expression"
|
"name": "expression"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1513,7 +1536,7 @@
|
|||||||
"name": "right",
|
"name": "right",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_expression"
|
"name": "expression"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -1530,7 +1553,7 @@
|
|||||||
"name": "left",
|
"name": "left",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_expression"
|
"name": "expression"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1542,7 +1565,7 @@
|
|||||||
"name": "right",
|
"name": "right",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_expression"
|
"name": "expression"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -1559,7 +1582,7 @@
|
|||||||
"name": "left",
|
"name": "left",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_expression"
|
"name": "expression"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1571,7 +1594,7 @@
|
|||||||
"name": "right",
|
"name": "right",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_expression"
|
"name": "expression"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -1588,7 +1611,7 @@
|
|||||||
"name": "left",
|
"name": "left",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_expression"
|
"name": "expression"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1600,7 +1623,7 @@
|
|||||||
"name": "right",
|
"name": "right",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_expression"
|
"name": "expression"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -1617,7 +1640,7 @@
|
|||||||
"name": "left",
|
"name": "left",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_expression"
|
"name": "expression"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1629,7 +1652,7 @@
|
|||||||
"name": "right",
|
"name": "right",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_expression"
|
"name": "expression"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -1646,7 +1669,7 @@
|
|||||||
"name": "left",
|
"name": "left",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_expression"
|
"name": "expression"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1658,7 +1681,7 @@
|
|||||||
"name": "right",
|
"name": "right",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_expression"
|
"name": "expression"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -1675,7 +1698,7 @@
|
|||||||
"name": "left",
|
"name": "left",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_expression"
|
"name": "expression"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1687,7 +1710,7 @@
|
|||||||
"name": "right",
|
"name": "right",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_atom"
|
"name": "atom"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -1707,7 +1730,7 @@
|
|||||||
"members": [
|
"members": [
|
||||||
{
|
{
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_atom"
|
"name": "atom"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "REPEAT",
|
"type": "REPEAT",
|
||||||
@@ -1720,7 +1743,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_atom"
|
"name": "atom"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -1737,7 +1760,7 @@
|
|||||||
"name": "expr",
|
"name": "expr",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_atom"
|
"name": "atom"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -1755,7 +1778,7 @@
|
|||||||
"name": "on",
|
"name": "on",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_expression"
|
"name": "expression"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1811,7 +1834,7 @@
|
|||||||
"name": "expr",
|
"name": "expr",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_expression"
|
"name": "expression"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -1836,7 +1859,7 @@
|
|||||||
"name": "expr",
|
"name": "expr",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_expression"
|
"name": "expression"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -1857,13 +1880,13 @@
|
|||||||
"name": "expr",
|
"name": "expr",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_expression"
|
"name": "expression"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"_expression": {
|
"expression": {
|
||||||
"type": "CHOICE",
|
"type": "CHOICE",
|
||||||
"members": [
|
"members": [
|
||||||
{
|
{
|
||||||
@@ -1871,7 +1894,7 @@
|
|||||||
"value": "expr_atom",
|
"value": "expr_atom",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_atom"
|
"name": "atom"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1978,7 +2001,7 @@
|
|||||||
"name": "signature",
|
"name": "signature",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_type"
|
"name": "type"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -2001,7 +2024,7 @@
|
|||||||
"name": "signature",
|
"name": "signature",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_type"
|
"name": "type"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -2023,7 +2046,7 @@
|
|||||||
"name": "value",
|
"name": "value",
|
||||||
"content": {
|
"content": {
|
||||||
"type": "SYMBOL",
|
"type": "SYMBOL",
|
||||||
"name": "_expression"
|
"name": "expression"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
5365
tree-sitter/src/node-types.json
generated
5365
tree-sitter/src/node-types.json
generated
File diff suppressed because it is too large
Load Diff
39776
tree-sitter/src/parser.c
generated
39776
tree-sitter/src/parser.c
generated
File diff suppressed because it is too large
Load Diff
9
tree-sitter/topiary-crepuscular.ncl
Normal file
9
tree-sitter/topiary-crepuscular.ncl
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
languages = {
|
||||||
|
crepuscular = {
|
||||||
|
extensions = ["crr"],
|
||||||
|
indent = " ",
|
||||||
|
grammar.source.path = "./libtree-sitter-crepuscular.so",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user