UNPKG

tree-sitter-dart

Version:

Dart grammar attempt for tree-sitter

551 lines (488 loc) 14.4 kB
================================== while statement ================================== class WhileDemo { void main(String args){ int count = 1; while (count < 11) { System.out.println("Count is: " + count); count++; } } } --- (program (class_definition name: (identifier) body: (class_body (method_signature (function_signature (void_type) name: (identifier) (formal_parameter_list (formal_parameter (type_identifier) name: (identifier))) ) ) (function_body (block (local_variable_declaration (initialized_variable_definition (type_identifier) name: (identifier) value: (decimal_integer_literal))) (while_statement condition: (parenthesized_expression (relational_expression (identifier) (relational_operator) (decimal_integer_literal))) body: (block (expression_statement (identifier) (selector (unconditional_assignable_selector (identifier)) ) (selector (unconditional_assignable_selector (identifier)) ) (selector (argument_part (arguments (argument (additive_expression (string_literal) (additive_operator) (identifier) )) )) ) ) (expression_statement (postfix_expression (assignable_expression (identifier)) (postfix_operator (increment_operator))) ) ) ) ) ) ) ) ) ================================== try-with-resources statements ================================== get a { var a; try { int data = input.read(); } on Exception catch (e) { a(); } } --- (program (getter_signature name: (identifier)) (function_body (block (local_variable_declaration (initialized_variable_definition (inferred_type) name: (identifier))) (try_statement body: (block (local_variable_declaration (initialized_variable_definition (type_identifier) name: (identifier) value: (identifier) value: (selector (unconditional_assignable_selector (identifier)) ) value: (selector (argument_part (arguments) ) ) ) ) ) (type_identifier) (catch_clause (catch_parameters (identifier))) (block (expression_statement (identifier) (selector (argument_part (arguments) ) ) ) ) ) ) ) ) ================================== return statement ================================== return x; return x * y; return x + 2; return fire(x); --- (program (return_statement (identifier)) (return_statement (multiplicative_expression (identifier) (multiplicative_operator) (identifier))) (return_statement (additive_expression (identifier) (additive_operator) (decimal_integer_literal))) (return_statement (identifier) (selector (argument_part (arguments (argument (identifier))))))) ================================== annotation ================================== @SuppressWarnings(value = "unchecked") @GwtCompatible(emulated = true) class Duck { } --- (program (annotation (identifier) (arguments (argument (assignment_expression (assignable_expression (identifier)) (string_literal)))) ) (annotation (identifier) (arguments (argument (assignment_expression (assignable_expression (identifier)) (true)))) ) (class_definition (identifier) (class_body) ) ) ================================== marker annotation ================================== @Override class Quack { @bar void foo() { } } --- (program (marker_annotation (identifier)) (class_definition (identifier) (class_body (marker_annotation (identifier)) (method_signature (function_signature (void_type) (identifier) (formal_parameter_list) )) (function_body (block)) ))) ================================== single element annotation ================================== @Duck(waddle.swim) @SuppressWarnings("unchecked") class Quack { } --- (program (annotation (identifier) (arguments (argument (identifier) (selector (unconditional_assignable_selector (identifier))))) ) (annotation (identifier) (arguments (argument (string_literal)))) (class_definition (identifier) (class_body))) ================================== lambda expression ================================== class LambdaTest { void singleton() { var b = (Str version) => create; var d = (Str a) { int destinysChild = 2; }; } } --- (program (class_definition (identifier) (class_body (method_signature (function_signature (void_type) (identifier) (formal_parameter_list))) (function_body (block (local_variable_declaration (initialized_variable_definition (inferred_type) (identifier) (function_expression (formal_parameter_list (formal_parameter (type_identifier) (identifier))) (function_expression_body (identifier)) ) ) ) (local_variable_declaration (initialized_variable_definition (inferred_type) (identifier) (function_expression (formal_parameter_list (formal_parameter (type_identifier) (identifier)) ) (function_expression_body (block (local_variable_declaration (initialized_variable_definition (type_identifier) (identifier) (decimal_integer_literal))) ))) ) )) )))) ================================== switch statement ================================== class SwitchDemo { static void main(String args) { int destinysChild = 2; String destinysChildString; switch (destinysChild) { case 1: destinysChildString = "Beyonce"; break; case 2: destinysChildString = "Kelly"; break; case 3: destinysChildString = "Michelle"; break; default: destinysChildString = "Invalid"; break; } System.out.println(destinysChildString); } } --- (program (class_definition name: (identifier) body: (class_body (method_signature (function_signature (void_type) name: (identifier) (formal_parameter_list (formal_parameter (type_identifier) name: (identifier) ) ) )) (function_body (block (local_variable_declaration (initialized_variable_definition (type_identifier) name: (identifier) value: (decimal_integer_literal) ) ) (local_variable_declaration (initialized_variable_definition (type_identifier) name: (identifier) ) ) (switch_statement condition: (parenthesized_expression (identifier)) body: (switch_block (switch_label (case_builtin) (decimal_integer_literal)) (expression_statement (assignment_expression left: (assignable_expression (identifier)) right: (string_literal))) (break_statement) (switch_label (case_builtin) (decimal_integer_literal)) (expression_statement (assignment_expression left: (assignable_expression (identifier)) right: (string_literal))) (break_statement) (switch_label (case_builtin) (decimal_integer_literal)) (expression_statement (assignment_expression left: (assignable_expression (identifier)) right: (string_literal))) (break_statement) (switch_label) (expression_statement (assignment_expression left: (assignable_expression (identifier)) right: (string_literal))) (break_statement))) (expression_statement (identifier) (selector (unconditional_assignable_selector (identifier)) ) (selector (unconditional_assignable_selector (identifier)) ) (selector (argument_part (arguments (argument (identifier)))) ) ) ) ) ) ) ) ================================== type arguments ================================== class Box <T> { T theObject; Box( T arg) { theObject = arg; } // more code } --- (program (class_definition (identifier) (type_parameters (type_parameter (type_identifier))) (class_body (declaration (type_identifier) (initialized_identifier_list (initialized_identifier (identifier))) ) (method_signature (constructor_signature (identifier) (formal_parameter_list (formal_parameter (type_identifier) (identifier))))) (function_body (block (expression_statement (assignment_expression (assignable_expression (identifier)) (identifier))))) (comment)))) ================================== wildcard ================================== class WildcardDemo { List<B> a; } --- (program (class_definition (identifier) (class_body (declaration (type_identifier) (type_arguments (type_identifier)) (initialized_identifier_list (initialized_identifier (identifier))) )))) ================================== type arguments with generic types ================================== class someClass <T> { List<T> someMethod() { List< T > list = Collections.emptyList<S>(); emptyList<S, H>(g); return list; } void anotherMethod<T>(S arg) { List< S > list = Collections.emptyList<S>(); } } --- (program (class_definition (identifier) (type_parameters (type_parameter (type_identifier))) (class_body (method_signature (function_signature (type_identifier) (type_arguments (type_identifier)) (identifier) (formal_parameter_list) )) (function_body (block (local_variable_declaration (initialized_variable_definition (type_identifier) (type_arguments (type_identifier)) (identifier) (identifier) (selector (unconditional_assignable_selector (identifier)) ) (selector (argument_part (type_arguments (type_identifier) ) (arguments) ) ) ) ) (expression_statement (identifier) (selector (argument_part (type_arguments (type_identifier) (type_identifier) ) (arguments (argument (identifier))) ) ) ) (return_statement (identifier)))) (method_signature (function_signature (void_type) (identifier) (type_parameters (type_parameter (type_identifier))) (formal_parameter_list (formal_parameter (type_identifier) (identifier))) )) (function_body (block (local_variable_declaration (initialized_variable_definition (type_identifier) (type_arguments (type_identifier)) (identifier) (identifier) (selector (unconditional_assignable_selector (identifier) ) ) (selector (argument_part (type_arguments (type_identifier) ) (arguments) ) ) ) ) ) ) ) ) ) ================================== empty type arguments ================================== Box<Integer> integerBox = new Box<>(); --- (program (type_identifier) (type_arguments (type_identifier)) (initialized_identifier_list (initialized_identifier (identifier) (new_expression (type_identifier) (type_arguments) (arguments)))))