aboutsummaryrefslogtreecommitdiff
path: root/tools/tree-sitter/test/corpus/generic_alias.txt
diff options
context:
space:
mode:
Diffstat (limited to 'tools/tree-sitter/test/corpus/generic_alias.txt')
-rw-r--r--tools/tree-sitter/test/corpus/generic_alias.txt132
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)))))