diff options
| author | Eugen Wissner <belka@caraus.de> | 2026-10-05 00:26:05 +0200 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2026-10-05 01:00:50 +0200 |
| commit | a9f6cfb6a8b6d38057faca067c015da1f72cf62d (patch) | |
| tree | db4e740db52df8be62bda5d2101603910107b7d4 /tools/tree-sitter/test/corpus/generic_alias.txt | |
| parent | 5b7f983b3912a8d0fbeaf22f7fe0e2c5f1e0ff01 (diff) | |
| download | elna-a9f6cfb6a8b6d38057faca067c015da1f72cf62d.tar.gz | |
Add a treesitter grammar
Diffstat (limited to 'tools/tree-sitter/test/corpus/generic_alias.txt')
| -rw-r--r-- | tools/tree-sitter/test/corpus/generic_alias.txt | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/tools/tree-sitter/test/corpus/generic_alias.txt b/tools/tree-sitter/test/corpus/generic_alias.txt new file mode 100644 index 0000000..54a8ea2 --- /dev/null +++ b/tools/tree-sitter/test/corpus/generic_alias.txt @@ -0,0 +1,132 @@ +================== +generic_alias +================== + +program() +type + File = record + fd: Int + end + + Node#[T] = record + next: ^Node#[T]; + value: ^T + end + + Ref#[T] = ^T + + Boxed#[V] = record + inner: ^Node#[V] + end + +var + chain: Node#[File] + aliased: Ref#[File] + raw: ^File + boxed: Boxed#[File] + +begin + chain.next := nil; + aliased := raw; + raw := aliased; + boxed.inner := @chain +end. + +--- + +(source_file + (program_declaration + (type_section + (type_declaration + (identifier_definition + (identifier)) + (record_type + (field_declaration + (identifier_definition + (identifier)) + (identifier)))) + (type_declaration + (identifier_definition + (identifier)) + (type_parameters + (identifier)) + (record_type + (field_declaration + (identifier_definition + (identifier)) + (pointer_type + (generic_type + (identifier) + (type_arguments + (identifier))))) + (field_declaration + (identifier_definition + (identifier)) + (pointer_type + (identifier))))) + (type_declaration + (identifier_definition + (identifier)) + (type_parameters + (identifier)) + (pointer_type + (identifier))) + (type_declaration + (identifier_definition + (identifier)) + (type_parameters + (identifier)) + (record_type + (field_declaration + (identifier_definition + (identifier)) + (pointer_type + (generic_type + (identifier) + (type_arguments + (identifier)))))))) + (var_section + (variable_declaration + (identifier_definition + (identifier)) + (generic_type + (identifier) + (type_arguments + (identifier)))) + (variable_declaration + (identifier_definition + (identifier)) + (generic_type + (identifier) + (type_arguments + (identifier)))) + (variable_declaration + (identifier_definition + (identifier)) + (pointer_type + (identifier))) + (variable_declaration + (identifier_definition + (identifier)) + (generic_type + (identifier) + (type_arguments + (identifier))))) + (assignment_statement + (field_expression + (identifier) + (identifier)) + (literal + (nil))) + (assignment_statement + (identifier) + (identifier)) + (assignment_statement + (identifier) + (identifier)) + (assignment_statement + (field_expression + (identifier) + (identifier)) + (unary_expression + (identifier))))) |
