mirror of
https://codeberg.org/ProgramSnail/tree-sitter-lang.git
synced 2025-12-05 22:28:43 +00:00
empty_lines node, fixes
This commit is contained in:
parent
9b86acea53
commit
1c19b47199
4 changed files with 75 additions and 7 deletions
|
|
@ -69,6 +69,7 @@ test_k 'n 'k : Int Int -> Bool = {
|
|||
(simple_type_identifier))
|
||||
(import
|
||||
(simple_name_identifier))
|
||||
(empty_lines)
|
||||
(function_definition
|
||||
(simple_name_identifier)
|
||||
(block
|
||||
|
|
@ -237,6 +238,7 @@ test_k 'n 'k : Int Int -> Bool = {
|
|||
(operator)
|
||||
(name_expression
|
||||
(simple_name_identifier)))))))))
|
||||
(empty_lines)
|
||||
(function_definition
|
||||
(simple_name_identifier)
|
||||
(argument_name_identifier)
|
||||
|
|
@ -273,6 +275,7 @@ test_k 'n 'k : Int Int -> Bool = {
|
|||
(simple_type_identifier))
|
||||
(simple_name_identifier)
|
||||
(argument_name_identifier)))))
|
||||
(empty_lines)
|
||||
(match
|
||||
(name_definition
|
||||
(simple_name_identifier))
|
||||
|
|
@ -310,6 +313,7 @@ test_k 'n 'k : Int Int -> Bool = {
|
|||
(simple_name_identifier)
|
||||
(simple_name_identifier)
|
||||
(argument_name_identifier))))
|
||||
(empty_lines)
|
||||
(return
|
||||
(operator_expression
|
||||
(operator_expression
|
||||
|
|
@ -329,6 +333,7 @@ test_k 'n 'k : Int Int -> Bool = {
|
|||
(operator)
|
||||
(name_expression
|
||||
(simple_name_identifier)))))))
|
||||
(empty_lines)
|
||||
(function_definition
|
||||
(simple_name_identifier)
|
||||
(argument_name_identifier)
|
||||
|
|
@ -410,6 +415,7 @@ test_k 'n 'k : Int Int -> Bool = {
|
|||
(return
|
||||
(name_expression
|
||||
(simple_name_identifier)))))
|
||||
(empty_lines)
|
||||
(function_definition
|
||||
(simple_name_identifier)
|
||||
(argument_name_identifier)
|
||||
|
|
@ -429,6 +435,7 @@ test_k 'n 'k : Int Int -> Bool = {
|
|||
(number_literal))
|
||||
(return
|
||||
(bool_literal)))
|
||||
(empty_lines)
|
||||
(match
|
||||
(name_definition
|
||||
(simple_name_identifier))
|
||||
|
|
@ -461,6 +468,7 @@ test_k 'n 'k : Int Int -> Bool = {
|
|||
(operator)
|
||||
(name_expression
|
||||
(simple_name_identifier)))))
|
||||
(empty_lines)
|
||||
(return
|
||||
(operator_expression
|
||||
(name_expression
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@ func_2 = {
|
|||
maybe_something!;
|
||||
|
||||
// open optional: if null then return default value (operator)
|
||||
%x := maybe_something ?| value
|
||||
%x := maybe_something ?| value;
|
||||
|
||||
%y := Fruit @apple ();
|
||||
|
||||
|
|
@ -224,11 +224,14 @@ parse_number : Unit! = {
|
|||
--------------------------------------------------------------------------------
|
||||
|
||||
(source_file
|
||||
(empty_lines)
|
||||
(import
|
||||
(simple_name_identifier))
|
||||
(empty_lines)
|
||||
(import
|
||||
(placeholder)
|
||||
(simple_name_identifier))
|
||||
(empty_lines)
|
||||
(import
|
||||
(simple_name_identifier)
|
||||
(simple_name_identifier)
|
||||
|
|
@ -237,9 +240,11 @@ parse_number : Unit! = {
|
|||
(import
|
||||
(simple_name_identifier)
|
||||
(simple_name_identifier))
|
||||
(empty_lines)
|
||||
(function_definition
|
||||
(simple_name_identifier)
|
||||
(block
|
||||
(empty_lines)
|
||||
(loop
|
||||
(block
|
||||
(match
|
||||
|
|
@ -255,6 +260,7 @@ parse_number : Unit! = {
|
|||
(operator)
|
||||
(char_literal))
|
||||
(loop_control))))
|
||||
(empty_lines)
|
||||
(loop
|
||||
(operator_expression
|
||||
(name_expression
|
||||
|
|
@ -265,6 +271,7 @@ parse_number : Unit! = {
|
|||
(name_expression
|
||||
(simple_name_identifier)
|
||||
(simple_name_identifier))))
|
||||
(empty_lines)
|
||||
(loop
|
||||
(name_definition
|
||||
(simple_name_identifier))
|
||||
|
|
@ -276,6 +283,7 @@ parse_number : Unit! = {
|
|||
(name_expression
|
||||
(simple_name_identifier)
|
||||
(string_literal))))
|
||||
(empty_lines)
|
||||
(condition
|
||||
(operator_expression
|
||||
(operator_expression
|
||||
|
|
@ -322,6 +330,7 @@ parse_number : Unit! = {
|
|||
(simple_name_identifier)))
|
||||
(return
|
||||
(unit_literal)))))
|
||||
(empty_lines)
|
||||
(function_definition
|
||||
(definition_info
|
||||
(info)
|
||||
|
|
@ -354,6 +363,7 @@ parse_number : Unit! = {
|
|||
(case
|
||||
(placeholder)
|
||||
(null_literal))))
|
||||
(empty_lines)
|
||||
(function_definition
|
||||
(definition_info
|
||||
(info))
|
||||
|
|
@ -372,6 +382,7 @@ parse_number : Unit! = {
|
|||
(operator)
|
||||
(name_expression
|
||||
(argument_name_identifier))))
|
||||
(empty_lines)
|
||||
(function_definition
|
||||
(definition_info
|
||||
(info)
|
||||
|
|
@ -416,6 +427,7 @@ parse_number : Unit! = {
|
|||
(name_expression
|
||||
(simple_name_identifier)
|
||||
(argument_name_identifier))))))
|
||||
(empty_lines)
|
||||
(function_definition
|
||||
(simple_name_identifier)
|
||||
(block
|
||||
|
|
@ -425,6 +437,7 @@ parse_number : Unit! = {
|
|||
(case
|
||||
(name_expression
|
||||
(simple_name_identifier))))
|
||||
(empty_lines)
|
||||
(match
|
||||
(operator_expression
|
||||
(name_definition
|
||||
|
|
@ -436,6 +449,7 @@ parse_number : Unit! = {
|
|||
(name_expression
|
||||
(simple_name_identifier)
|
||||
(simple_name_identifier))))
|
||||
(empty_lines)
|
||||
(match
|
||||
(name_definition
|
||||
(simple_name_identifier))
|
||||
|
|
@ -449,12 +463,14 @@ parse_number : Unit! = {
|
|||
(operator)
|
||||
(name_expression
|
||||
(argument_name_identifier))))))
|
||||
(empty_lines)
|
||||
(match
|
||||
(name_definition
|
||||
(simple_name_identifier))
|
||||
(case
|
||||
(lambda
|
||||
(number_literal))))
|
||||
(empty_lines)
|
||||
(match
|
||||
(name_expression
|
||||
(simple_name_identifier))
|
||||
|
|
@ -488,6 +504,7 @@ parse_number : Unit! = {
|
|||
(case
|
||||
(placeholder)
|
||||
(string_literal)))
|
||||
(empty_lines)
|
||||
(match
|
||||
(name_definition
|
||||
(simple_name_identifier))
|
||||
|
|
@ -499,6 +516,7 @@ parse_number : Unit! = {
|
|||
(name_expression
|
||||
(simple_name_identifier)
|
||||
(simple_name_identifier))
|
||||
(empty_lines)
|
||||
(match
|
||||
(name_definition
|
||||
(simple_name_identifier))
|
||||
|
|
@ -511,6 +529,7 @@ parse_number : Unit! = {
|
|||
(placeholder)
|
||||
(name_expression
|
||||
(simple_name_identifier))))
|
||||
(empty_lines)
|
||||
(match
|
||||
(name_definition
|
||||
(simple_name_identifier))
|
||||
|
|
@ -522,6 +541,7 @@ parse_number : Unit! = {
|
|||
(string_literal)
|
||||
(annotation_identifier)
|
||||
(float_number_literal))))
|
||||
(empty_lines)
|
||||
(match
|
||||
(suffix_expression
|
||||
(name_definition
|
||||
|
|
@ -531,6 +551,7 @@ parse_number : Unit! = {
|
|||
(simple_name_identifier))
|
||||
(name_expression
|
||||
(simple_name_identifier))))
|
||||
(empty_lines)
|
||||
(match
|
||||
(suffix_expression
|
||||
(name_definition
|
||||
|
|
@ -538,6 +559,7 @@ parse_number : Unit! = {
|
|||
(case
|
||||
(name_expression
|
||||
(simple_name_identifier))))
|
||||
(empty_lines)
|
||||
(match
|
||||
(suffix_expression
|
||||
(name_definition
|
||||
|
|
@ -545,10 +567,13 @@ parse_number : Unit! = {
|
|||
(case
|
||||
(name_expression
|
||||
(simple_name_identifier))))
|
||||
(empty_lines)
|
||||
(suffix_expression
|
||||
(simple_name_identifier))
|
||||
(empty_lines)
|
||||
(suffix_expression
|
||||
(simple_name_identifier))
|
||||
(empty_lines)
|
||||
(match
|
||||
(name_definition
|
||||
(simple_name_identifier))
|
||||
|
|
@ -558,15 +583,18 @@ parse_number : Unit! = {
|
|||
(simple_name_identifier))
|
||||
(operator)
|
||||
(name_expression
|
||||
(simple_name_identifier)
|
||||
(name_definition
|
||||
(simple_name_identifier)))))
|
||||
(simple_name_identifier)))))
|
||||
(empty_lines)
|
||||
(match
|
||||
(name_definition
|
||||
(simple_name_identifier))
|
||||
(case
|
||||
(constructor
|
||||
(type
|
||||
(simple_type_identifier))
|
||||
(annotation_identifier)
|
||||
(unit_literal))))
|
||||
(empty_lines)
|
||||
(match
|
||||
(name_expression
|
||||
(simple_name_identifier))
|
||||
|
|
@ -591,6 +619,7 @@ parse_number : Unit! = {
|
|||
(annotation_identifier)
|
||||
(unit_literal))
|
||||
(string_literal)))
|
||||
(empty_lines)
|
||||
(match
|
||||
(name_definition
|
||||
(simple_name_identifier))
|
||||
|
|
@ -599,6 +628,7 @@ parse_number : Unit! = {
|
|||
(operator)
|
||||
(number_literal)
|
||||
(number_literal))))
|
||||
(empty_lines)
|
||||
(match
|
||||
(name_definition
|
||||
(simple_name_identifier))
|
||||
|
|
@ -615,6 +645,7 @@ parse_number : Unit! = {
|
|||
(tuple_access
|
||||
(simple_name_identifier)
|
||||
(number_literal)))))
|
||||
(empty_lines)
|
||||
(function_definition
|
||||
(definition_info
|
||||
(info))
|
||||
|
|
@ -628,6 +659,7 @@ parse_number : Unit! = {
|
|||
(name_expression
|
||||
(simple_name_identifier)
|
||||
(argument_name_identifier))))
|
||||
(empty_lines)
|
||||
(function_definition
|
||||
(simple_name_identifier)
|
||||
(block
|
||||
|
|
@ -636,6 +668,7 @@ parse_number : Unit! = {
|
|||
(simple_name_identifier)
|
||||
(simple_name_identifier)
|
||||
(simple_name_identifier))))
|
||||
(empty_lines)
|
||||
(function_definition
|
||||
(simple_name_identifier)
|
||||
(block
|
||||
|
|
@ -644,6 +677,7 @@ parse_number : Unit! = {
|
|||
(simple_name_identifier)
|
||||
(simple_name_identifier)
|
||||
(simple_name_identifier))))
|
||||
(empty_lines)
|
||||
(function_definition
|
||||
(simple_name_identifier)
|
||||
(block
|
||||
|
|
@ -652,6 +686,7 @@ parse_number : Unit! = {
|
|||
(simple_name_identifier)
|
||||
(simple_name_identifier)
|
||||
(simple_name_identifier))))
|
||||
(empty_lines)
|
||||
(type_definition
|
||||
(simple_type_identifier)
|
||||
(variant_type
|
||||
|
|
@ -662,6 +697,7 @@ parse_number : Unit! = {
|
|||
(annotation_identifier)
|
||||
(type
|
||||
(simple_type_identifier)))))
|
||||
(empty_lines)
|
||||
(type_definition
|
||||
(simple_type_identifier)
|
||||
(variant_type
|
||||
|
|
@ -677,6 +713,7 @@ parse_number : Unit! = {
|
|||
(annotation_identifier)
|
||||
(type
|
||||
(simple_type_identifier)))))
|
||||
(empty_lines)
|
||||
(function_definition
|
||||
(definition_info
|
||||
(info))
|
||||
|
|
@ -743,6 +780,7 @@ parse_number : Unit! = {
|
|||
(simple_name_identifier))
|
||||
(operator)
|
||||
(bool_literal))))))))
|
||||
(empty_lines)
|
||||
(function_definition
|
||||
(definition_info
|
||||
(info))
|
||||
|
|
@ -809,6 +847,7 @@ parse_number : Unit! = {
|
|||
(simple_name_identifier))
|
||||
(operator)
|
||||
(bool_literal))))))))
|
||||
(empty_lines)
|
||||
(type_definition
|
||||
(definition_info
|
||||
(info)
|
||||
|
|
@ -838,6 +877,7 @@ parse_number : Unit! = {
|
|||
(argument_type_identifier))
|
||||
(type
|
||||
(argument_type_identifier))))))
|
||||
(empty_lines)
|
||||
(type_definition
|
||||
(simple_type_identifier)
|
||||
(function_definition
|
||||
|
|
@ -859,6 +899,7 @@ parse_number : Unit! = {
|
|||
(argument_name_identifier)
|
||||
(name_expression
|
||||
(simple_name_identifier))))
|
||||
(empty_lines)
|
||||
(function_definition
|
||||
(simple_name_identifier)
|
||||
(block
|
||||
|
|
@ -884,6 +925,7 @@ parse_number : Unit! = {
|
|||
(type
|
||||
(simple_type_identifier)))
|
||||
(simple_name_identifier))))))
|
||||
(empty_lines)
|
||||
(function_definition
|
||||
(simple_name_identifier)
|
||||
(block
|
||||
|
|
@ -923,6 +965,7 @@ parse_number : Unit! = {
|
|||
(operator)
|
||||
(name_expression
|
||||
(simple_name_identifier)))))
|
||||
(empty_lines)
|
||||
(function_definition
|
||||
(simple_name_identifier)
|
||||
(block
|
||||
|
|
@ -934,6 +977,8 @@ parse_number : Unit! = {
|
|||
(array_access
|
||||
(simple_name_identifier)
|
||||
(number_literal)))))))
|
||||
(empty_lines)
|
||||
(empty_lines)
|
||||
(function_definition
|
||||
(definition_info
|
||||
(info))
|
||||
|
|
@ -947,6 +992,7 @@ parse_number : Unit! = {
|
|||
(name_expression
|
||||
(simple_name_identifier)
|
||||
(argument_name_identifier))))
|
||||
(empty_lines)
|
||||
(function_definition
|
||||
(definition_info
|
||||
(info))
|
||||
|
|
@ -977,6 +1023,7 @@ parse_number : Unit! = {
|
|||
(case
|
||||
(reference_expression
|
||||
(simple_name_identifier))))))
|
||||
(empty_lines)
|
||||
(function_definition
|
||||
(definition_info
|
||||
(info))
|
||||
|
|
@ -1003,6 +1050,7 @@ parse_number : Unit! = {
|
|||
(case
|
||||
(reference_expression
|
||||
(simple_name_identifier))))))
|
||||
(empty_lines)
|
||||
(function_definition
|
||||
(definition_info
|
||||
(info))
|
||||
|
|
@ -1023,6 +1071,7 @@ parse_number : Unit! = {
|
|||
(operator)
|
||||
(name_expression
|
||||
(simple_name_identifier))))
|
||||
(empty_lines)
|
||||
(function_definition
|
||||
(definition_info
|
||||
(info))
|
||||
|
|
@ -1036,6 +1085,7 @@ parse_number : Unit! = {
|
|||
(case
|
||||
(name_expression
|
||||
(simple_name_identifier)))))
|
||||
(empty_lines)
|
||||
(function_definition
|
||||
(definition_info
|
||||
(info))
|
||||
|
|
@ -1055,6 +1105,7 @@ parse_number : Unit! = {
|
|||
(argument_name_identifier)
|
||||
(annotation_identifier)
|
||||
(argument_name_identifier)))
|
||||
(empty_lines)
|
||||
(function_definition
|
||||
(definition_info
|
||||
(info))
|
||||
|
|
@ -1072,6 +1123,7 @@ parse_number : Unit! = {
|
|||
(simple_type_identifier))
|
||||
(argument_name_identifier)
|
||||
(argument_name_identifier)))
|
||||
(empty_lines)
|
||||
(typeclass_definition
|
||||
(definition_info
|
||||
(info))
|
||||
|
|
@ -1083,6 +1135,7 @@ parse_number : Unit! = {
|
|||
(simple_type_identifier))
|
||||
(type
|
||||
(simple_type_identifier))))
|
||||
(empty_lines)
|
||||
(function_definition
|
||||
(definition_info
|
||||
(info))
|
||||
|
|
@ -1102,6 +1155,7 @@ parse_number : Unit! = {
|
|||
(name_expression
|
||||
(simple_name_identifier)
|
||||
(string_literal)))))
|
||||
(empty_lines)
|
||||
(function_definition
|
||||
(definition_info
|
||||
(info))
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ statement: import
|
|||
| type_definition
|
||||
| function_definition
|
||||
| typeclass_definition
|
||||
| EMPTY_LINES
|
||||
;
|
||||
|
||||
import: ('::' | 'import') (SIMPLE_NAME_IDENTIFIER | '_') ('=' SIMPLE_NAME_IDENTIFIER)?
|
||||
|
|
@ -56,7 +57,7 @@ operator_expression: /* prec left ?? */
|
|||
| /* prec 1 */ expression OPERATOR_TAIL3 expression
|
||||
;
|
||||
|
||||
block: '{' (super_expression ';')* '}' ;
|
||||
block: '{' ((super_expression ';') | EMPTY_LINES)* '}' ;
|
||||
|
||||
array: '[[' (scoped_expression)+ ']]' ;
|
||||
|
||||
|
|
@ -144,6 +145,8 @@ literal: FLOAT_NUMBER_LITERAL
|
|||
DEFINITION_INFO : : ': ' ([^\n]*)+ ;
|
||||
ANNOTATION_INFO : ANNOTATION_IDENTIFIER [^\n]* ;
|
||||
|
||||
EMPTY_LINES '\n' ('\n')+
|
||||
|
||||
LINE_COMMENT : '#!' [^\n]* -> skip ;
|
||||
LINE_COMMENT : '//' [^\n]* -> skip ;
|
||||
BLOCK_COMMENT : '\*' ([^*] |('\*' [^/]))* '*/' -> skip ;
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ module.exports = grammar({
|
|||
$.type_definition,
|
||||
$.function_definition,
|
||||
$.typeclass_definition,
|
||||
$.empty_lines,
|
||||
),
|
||||
|
||||
import: $ => seq(
|
||||
|
|
@ -128,7 +129,7 @@ module.exports = grammar({
|
|||
|
||||
// --- continers
|
||||
|
||||
block: $ => seq('{', repeat(seq($._super_expression, ';')), '}'),
|
||||
block: $ => seq('{', repeat(choice(seq($._super_expression, ';'), $.empty_lines)), '}'),
|
||||
|
||||
array: $ => seq('[[', repeat1($._scoped_expression), ']]'),
|
||||
|
||||
|
|
@ -239,10 +240,12 @@ module.exports = grammar({
|
|||
// --- comments
|
||||
|
||||
definition_info: $ => repeat1(seq(': ', $.info)),
|
||||
annotation_info: $ => seq($.annotation_identifier, $.info),
|
||||
annotation_info: $ => seq($.annotation_identifier, ' ', $.info),
|
||||
|
||||
info: $ => /[^\n]*/,
|
||||
|
||||
empty_lines: $ => /\n\n+/,
|
||||
|
||||
_exec_comment: $ => token(seq('#!', /[^\n]*/)),
|
||||
_line_comment: $ => token(seq('//', /[^\n]*/)),
|
||||
_block_comment: $ => token(seq('/*', /([^*]|(\*[^/]))*/, '*/')),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue