Add function declarations
This commit is contained in:
parent
3eb6b0a0d0
commit
e898312c95
5 changed files with 3466 additions and 2499 deletions
38
grammar.js
38
grammar.js
|
|
@ -226,9 +226,41 @@ module.exports = grammar({
|
|||
|
||||
_declaration_chunks: ($) => repeat1($._declaration_chunk),
|
||||
|
||||
_declaration_chunk: ($) => choice(
|
||||
$.variable_declaration,
|
||||
$.import_declaration,
|
||||
_declaration_chunk: ($) => prec.left(
|
||||
choice(
|
||||
repeat1(choice($.function_declaration, $.primitive_declaration)),
|
||||
$.variable_declaration,
|
||||
$.import_declaration,
|
||||
),
|
||||
),
|
||||
|
||||
function_declaration: ($) => seq(
|
||||
"function",
|
||||
$._function_declaration_common,
|
||||
"=",
|
||||
field("body", $._expr),
|
||||
),
|
||||
|
||||
primitive_declaration: ($) => seq(
|
||||
"primitive",
|
||||
$._function_declaration_common,
|
||||
),
|
||||
|
||||
_function_declaration_common: ($) => seq(
|
||||
field("name", $.identifier),
|
||||
field("parameters", $.parameters),
|
||||
),
|
||||
|
||||
parameters: ($) => seq(
|
||||
"(",
|
||||
field("parameters", sepBy(",", $._typed_field)),
|
||||
")",
|
||||
),
|
||||
|
||||
_typed_field: ($) => seq(
|
||||
field("name", $.identifier),
|
||||
":",
|
||||
field("type", $.identifier),
|
||||
),
|
||||
|
||||
variable_declaration: ($) => seq(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue