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_base_chain.txt | |
| parent | 5b7f983b3912a8d0fbeaf22f7fe0e2c5f1e0ff01 (diff) | |
| download | elna-a9f6cfb6a8b6d38057faca067c015da1f72cf62d.tar.gz | |
Add a treesitter grammar
Diffstat (limited to 'tools/tree-sitter/test/corpus/generic_base_chain.txt')
| -rw-r--r-- | tools/tree-sitter/test/corpus/generic_base_chain.txt | 144 |
1 files changed, 144 insertions, 0 deletions
diff --git a/tools/tree-sitter/test/corpus/generic_base_chain.txt b/tools/tree-sitter/test/corpus/generic_base_chain.txt new file mode 100644 index 0000000..770b7db --- /dev/null +++ b/tools/tree-sitter/test/corpus/generic_base_chain.txt @@ -0,0 +1,144 @@ +================== +generic_base_chain +================== + +program() +type + File = record + fd: Int + end + + Map#[K, V] = record + key: ^K; + value: ^V + end + + Cache#[K, V] = record(Map#[Word8, V]) + newest: ^K + end + +var + store: Cache#[Int, File] + byte_key: ^Word8 + upcast: ^Map#[Word8, File] + +proc put#[K2, V2](target: ^Map#[K2, V2]; key: ^K2) +begin + target^.key := key +return + +begin + upcast := @store; + put(@store, byte_key) +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) + (identifier)) + (record_type + (field_declaration + (identifier_definition + (identifier)) + (pointer_type + (identifier))) + (field_declaration + (identifier_definition + (identifier)) + (pointer_type + (identifier))))) + (type_declaration + (identifier_definition + (identifier)) + (type_parameters + (identifier) + (identifier)) + (record_type + (generic_type + (identifier) + (type_arguments + (identifier) + (identifier))) + (field_declaration + (identifier_definition + (identifier)) + (pointer_type + (identifier)))))) + (var_section + (variable_declaration + (identifier_definition + (identifier)) + (generic_type + (identifier) + (type_arguments + (identifier) + (identifier)))) + (variable_declaration + (identifier_definition + (identifier)) + (pointer_type + (identifier))) + (variable_declaration + (identifier_definition + (identifier)) + (pointer_type + (generic_type + (identifier) + (type_arguments + (identifier) + (identifier)))))) + (procedure_declaration + (identifier_definition + (identifier)) + (type_parameters + (identifier) + (identifier)) + (parameter_list + (field_declaration + (identifier_definition + (identifier)) + (pointer_type + (generic_type + (identifier) + (type_arguments + (identifier) + (identifier))))) + (field_declaration + (identifier_definition + (identifier)) + (pointer_type + (identifier)))) + (procedure_body + (block + (assignment_statement + (field_expression + (dereference_expression + (identifier)) + (identifier)) + (identifier))) + (return_clause))) + (assignment_statement + (identifier) + (unary_expression + (identifier))) + (call_expression + (identifier) + (argument_list + (unary_expression + (identifier)) + (identifier))))) |
