mirror of
https://codeberg.org/ProgramSnail/tree-sitter-lang.git
synced 2025-12-31 19:08:21 +00:00
grammar.g4 new types fixes
This commit is contained in:
parent
8e0cea277e
commit
c9bef5a02e
4 changed files with 195 additions and 106 deletions
|
|
@ -133,7 +133,7 @@ test_k 'n 'k : Int Int -> Bool = {
|
|||
(case
|
||||
(name_expression
|
||||
(name_expression
|
||||
(type
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(simple_name_identifier)
|
||||
(number_literal))
|
||||
|
|
@ -257,13 +257,13 @@ test_k 'n 'k : Int Int -> Bool = {
|
|||
(simple_name_identifier)
|
||||
(argument_name_identifier)
|
||||
(argument_name_identifier)
|
||||
(type
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(type
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(type
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(type
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(block
|
||||
(empty_lines)
|
||||
|
|
@ -280,13 +280,13 @@ test_k 'n 'k : Int Int -> Bool = {
|
|||
(return
|
||||
(operator_expression
|
||||
(name_expression
|
||||
(type
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(simple_name_identifier)
|
||||
(number_literal))
|
||||
(operator)
|
||||
(name_expression
|
||||
(type
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(simple_name_identifier)
|
||||
(argument_name_identifier)))))
|
||||
|
|
@ -355,9 +355,9 @@ test_k 'n 'k : Int Int -> Bool = {
|
|||
(function_definition
|
||||
(simple_name_identifier)
|
||||
(argument_name_identifier)
|
||||
(type
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(type
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(block
|
||||
(empty_lines)
|
||||
|
|
@ -450,11 +450,11 @@ test_k 'n 'k : Int Int -> Bool = {
|
|||
(simple_name_identifier)
|
||||
(argument_name_identifier)
|
||||
(argument_name_identifier)
|
||||
(type
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(type
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(type
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(block
|
||||
(empty_lines)
|
||||
|
|
|
|||
|
|
@ -226,6 +226,12 @@ parse_number : Unit! = {
|
|||
: useful when tuples returned
|
||||
result_func! 'a 'b -> 'c -> 'd = ?? 'a == 0 => error "some error" !!=> ('c := 'a, 'd := 'b, ());
|
||||
|
||||
// (A & B & C) same to Tuple[A B C]
|
||||
tuple_argument_test 'x : (A & B & C) = do_something;
|
||||
|
||||
// ((A1 & A2) | B | C) same to Variant[Tuple[A1 A2] B C]
|
||||
variant_argument_test 'x : ((A1 & A2) | B | C) = do_something;
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(source_file
|
||||
|
|
@ -421,9 +427,9 @@ result_func! 'a 'b -> 'c -> 'd = ?? 'a == 0 => error "some error" !!=> ('c := 'a
|
|||
(simple_name_identifier)
|
||||
(argument_name_identifier)
|
||||
(annotation_identifier)
|
||||
(type
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(type
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(match
|
||||
(name_expression
|
||||
|
|
@ -560,7 +566,7 @@ result_func! 'a 'b -> 'c -> 'd = ?? 'a == 0 => error "some error" !!=> ('c := 'a
|
|||
(simple_name_identifier))
|
||||
(case
|
||||
(constructor
|
||||
(type
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(annotation_identifier)
|
||||
(string_literal)
|
||||
|
|
@ -627,7 +633,7 @@ result_func! 'a 'b -> 'c -> 'd = ?? 'a == 0 => error "some error" !!=> ('c := 'a
|
|||
(simple_name_identifier))
|
||||
(case
|
||||
(constructor
|
||||
(type
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(annotation_identifier)
|
||||
(unit_literal))))
|
||||
|
|
@ -637,21 +643,21 @@ result_func! 'a 'b -> 'c -> 'd = ?? 'a == 0 => error "some error" !!=> ('c := 'a
|
|||
(simple_name_identifier))
|
||||
(case
|
||||
(constructor
|
||||
(type
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(annotation_identifier)
|
||||
(unit_literal))
|
||||
(string_literal))
|
||||
(case
|
||||
(constructor
|
||||
(type
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(annotation_identifier)
|
||||
(unit_literal))
|
||||
(string_literal))
|
||||
(case
|
||||
(constructor
|
||||
(type
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(annotation_identifier)
|
||||
(unit_literal))
|
||||
|
|
@ -736,39 +742,35 @@ result_func! 'a 'b -> 'c -> 'd = ?? 'a == 0 => error "some error" !!=> ('c := 'a
|
|||
(empty_lines)
|
||||
(type_definition
|
||||
(simple_type_identifier)
|
||||
(variant_type
|
||||
(tuple_type
|
||||
(annotation_identifier)
|
||||
(type
|
||||
(simple_type_identifier))
|
||||
(annotation_identifier)
|
||||
(type
|
||||
(simple_type_identifier)))))
|
||||
(tuple_type
|
||||
(annotation_identifier)
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(annotation_identifier)
|
||||
(simple_type
|
||||
(simple_type_identifier))))
|
||||
(empty_lines)
|
||||
(type_definition
|
||||
(simple_type_identifier)
|
||||
(variant_type
|
||||
(tuple_type
|
||||
(annotation_identifier)
|
||||
(type
|
||||
(simple_type_identifier)))
|
||||
(tuple_type
|
||||
(annotation_identifier)
|
||||
(type
|
||||
(simple_type_identifier)))
|
||||
(tuple_type
|
||||
(annotation_identifier)
|
||||
(type
|
||||
(simple_type_identifier)))))
|
||||
(annotation_identifier)
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(annotation_identifier)
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(annotation_identifier)
|
||||
(simple_type
|
||||
(simple_type_identifier))))
|
||||
(empty_lines)
|
||||
(function_definition
|
||||
(definition_info
|
||||
(info))
|
||||
(simple_name_identifier)
|
||||
(argument_name_identifier)
|
||||
(type
|
||||
(simple_type
|
||||
(simple_type_identifier)
|
||||
(type
|
||||
(simple_type
|
||||
(argument_type_identifier)))
|
||||
(block
|
||||
(empty_lines)
|
||||
|
|
@ -839,9 +841,9 @@ result_func! 'a 'b -> 'c -> 'd = ?? 'a == 0 => error "some error" !!=> ('c := 'a
|
|||
(info))
|
||||
(simple_name_identifier)
|
||||
(argument_name_identifier)
|
||||
(type
|
||||
(simple_type
|
||||
(simple_type_identifier)
|
||||
(type
|
||||
(simple_type
|
||||
(argument_type_identifier)))
|
||||
(block
|
||||
(empty_lines)
|
||||
|
|
@ -914,27 +916,28 @@ result_func! 'a 'b -> 'c -> 'd = ?? 'a == 0 => error "some error" !!=> ('c := 'a
|
|||
(simple_type_identifier)
|
||||
(argument_type_identifier)
|
||||
(argument_type_identifier)
|
||||
(variant_type
|
||||
(tuple_type
|
||||
(annotation_identifier)
|
||||
(type
|
||||
(simple_type_identifier))
|
||||
(annotation_identifier)
|
||||
(type
|
||||
(simple_type_identifier))
|
||||
(annotation_identifier)
|
||||
(type
|
||||
(tuple_type
|
||||
(annotation_identifier)
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(annotation_identifier)
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(annotation_identifier)
|
||||
(reference_type
|
||||
(simple_type
|
||||
(simple_type_identifier)
|
||||
(type
|
||||
(simple_type
|
||||
(argument_type_identifier))
|
||||
(type
|
||||
(argument_type_identifier)))
|
||||
(annotation_identifier)
|
||||
(type
|
||||
(simple_type
|
||||
(argument_type_identifier))))
|
||||
(annotation_identifier)
|
||||
(reference_type
|
||||
(simple_type
|
||||
(simple_type_identifier)
|
||||
(type
|
||||
(simple_type
|
||||
(argument_type_identifier))
|
||||
(type
|
||||
(simple_type
|
||||
(argument_type_identifier))))))
|
||||
(empty_lines)
|
||||
(function_definition
|
||||
|
|
@ -975,11 +978,11 @@ result_func! 'a 'b -> 'c -> 'd = ?? 'a == 0 => error "some error" !!=> ('c := 'a
|
|||
(simple_name_identifier))
|
||||
(case
|
||||
(name_expression
|
||||
(type
|
||||
(simple_type
|
||||
(simple_type_identifier)
|
||||
(type
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(type
|
||||
(simple_type
|
||||
(simple_type_identifier)))
|
||||
(simple_name_identifier))))
|
||||
(empty_lines)
|
||||
|
|
@ -988,9 +991,9 @@ result_func! 'a 'b -> 'c -> 'd = ?? 'a == 0 => error "some error" !!=> ('c := 'a
|
|||
(simple_name_identifier))
|
||||
(case
|
||||
(name_expression
|
||||
(type
|
||||
(simple_type
|
||||
(simple_type_identifier)
|
||||
(type
|
||||
(simple_type
|
||||
(simple_type_identifier)))
|
||||
(simple_name_identifier))))
|
||||
(empty_lines)))
|
||||
|
|
@ -1076,9 +1079,9 @@ result_func! 'a 'b -> 'c -> 'd = ?? 'a == 0 => error "some error" !!=> ('c := 'a
|
|||
(simple_name_identifier)
|
||||
(argument_name_identifier)
|
||||
(argument_name_identifier)
|
||||
(type
|
||||
(simple_type
|
||||
(argument_type_identifier))
|
||||
(type
|
||||
(simple_type
|
||||
(argument_type_identifier))
|
||||
(comma_expression
|
||||
(comma_expression
|
||||
|
|
@ -1132,11 +1135,11 @@ result_func! 'a 'b -> 'c -> 'd = ?? 'a == 0 => error "some error" !!=> ('c := 'a
|
|||
(definition_info
|
||||
(info))
|
||||
(simple_name_identifier)
|
||||
(type
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(type
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(type
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(operator_expression
|
||||
(operator_expression
|
||||
|
|
@ -1154,7 +1157,7 @@ result_func! 'a 'b -> 'c -> 'd = ?? 'a == 0 => error "some error" !!=> ('c := 'a
|
|||
(info))
|
||||
(simple_name_identifier)
|
||||
(argument_name_identifier)
|
||||
(type
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(match
|
||||
(name_expression
|
||||
|
|
@ -1169,14 +1172,14 @@ result_func! 'a 'b -> 'c -> 'd = ?? 'a == 0 => error "some error" !!=> ('c := 'a
|
|||
(simple_name_identifier)
|
||||
(argument_name_identifier)
|
||||
(argument_name_identifier)
|
||||
(type
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(type
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(type
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(constructor
|
||||
(type
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(annotation_identifier)
|
||||
(argument_name_identifier)
|
||||
|
|
@ -1189,14 +1192,14 @@ result_func! 'a 'b -> 'c -> 'd = ?? 'a == 0 => error "some error" !!=> ('c := 'a
|
|||
(simple_name_identifier)
|
||||
(argument_name_identifier)
|
||||
(argument_name_identifier)
|
||||
(type
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(type
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(type
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(constructor
|
||||
(type
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(argument_name_identifier)
|
||||
(argument_name_identifier)))
|
||||
|
|
@ -1209,9 +1212,9 @@ result_func! 'a 'b -> 'c -> 'd = ?? 'a == 0 => error "some error" !!=> ('c := 'a
|
|||
(empty_lines)
|
||||
(function_definition
|
||||
(simple_name_identifier)
|
||||
(type
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(type
|
||||
(simple_type
|
||||
(simple_type_identifier)))
|
||||
(empty_lines)
|
||||
(function_definition
|
||||
|
|
@ -1238,8 +1241,9 @@ result_func! 'a 'b -> 'c -> 'd = ?? 'a == 0 => error "some error" !!=> ('c := 'a
|
|||
(definition_info
|
||||
(info))
|
||||
(simple_name_identifier)
|
||||
(type
|
||||
(simple_type_identifier))
|
||||
(modified_type
|
||||
(simple_type
|
||||
(simple_type_identifier)))
|
||||
(block
|
||||
(empty_lines)
|
||||
(match
|
||||
|
|
@ -1247,7 +1251,7 @@ result_func! 'a 'b -> 'c -> 'd = ?? 'a == 0 => error "some error" !!=> ('c := 'a
|
|||
(simple_name_identifier))
|
||||
(case
|
||||
(name_expression
|
||||
(type
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(simple_name_identifier))))
|
||||
(empty_lines)
|
||||
|
|
@ -1257,7 +1261,7 @@ result_func! 'a 'b -> 'c -> 'd = ?? 'a == 0 => error "some error" !!=> ('c := 'a
|
|||
(simple_name_identifier)))
|
||||
(case
|
||||
(name_expression
|
||||
(type
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(simple_name_identifier)
|
||||
(simple_name_identifier))))
|
||||
|
|
@ -1325,4 +1329,37 @@ result_func! 'a 'b -> 'c -> 'd = ?? 'a == 0 => error "some error" !!=> ('c := 'a
|
|||
(name_expression
|
||||
(argument_name_identifier)))))
|
||||
(unit_literal))))
|
||||
(empty_lines)
|
||||
(extra)
|
||||
(empty_lines)
|
||||
(function_definition
|
||||
(simple_name_identifier)
|
||||
(argument_name_identifier)
|
||||
(tuple_type
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(simple_type
|
||||
(simple_type_identifier)))
|
||||
(name_expression
|
||||
(simple_name_identifier)))
|
||||
(empty_lines)
|
||||
(extra)
|
||||
(empty_lines)
|
||||
(function_definition
|
||||
(simple_name_identifier)
|
||||
(argument_name_identifier)
|
||||
(variant_type
|
||||
(tuple_type
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(simple_type
|
||||
(simple_type_identifier)))
|
||||
(simple_type
|
||||
(simple_type_identifier))
|
||||
(simple_type
|
||||
(simple_type_identifier)))
|
||||
(name_expression
|
||||
(simple_name_identifier)))
|
||||
(empty_lines))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue