UNPKG

@scinorandex/sparse

Version:

Yet another parser generator

149 lines 9.37 kB
<S> : <PROGRAM>; <PROGRAM> : [EOF]; <PROGRAM> : <STATEMENT_LIST> [EOF]; <STATEMENT_LIST> : <STATEMENT_LIST> <STATEMENT>; <STATEMENT_LIST> : <STATEMENT>; <STATEMENT> : <IMPORT_STATEMENT>; <STATEMENT> : <IF_STATEMENT>; <STATEMENT> : <VARIABLE_DECLARATION_STATEMENT>; <STATEMENT> : <CONSTANT_DECLARATION>; <STATEMENT> : <BLOCK_STATEMENT>; <STATEMENT> : <RETURN_STATEMENT>; <STATEMENT> : <TRY_CATCH_STATEMENT>; <STATEMENT> : <THROW_STATEMENT>; <STATEMENT> : <SWITCH_STATEMENT>; <STATEMENT> : <LOOP_STATEMENT>; <STATEMENT> : <EXPRESSION_STATEMENT>; <STATEMENT> : <OBJECT_TYPE_DECLARATION>; <STATEMENT> : [SWITCH_BREAK] [SEMICOLON]; <STATEMENT> : [SWITCH_GOTO] [STRING_LITERAL] [SEMICOLON]; <STATEMENT> : [SWITCH_GOTO] [NUMBER_LITERAL] [SEMICOLON]; <STATEMENT> : [LOOP_BREAK] [SEMICOLON]; <STATEMENT> : [LOOP_CONTINUE] [SEMICOLON]; <IMPORT_STATEMENT> : [IMPORT] [STRING_LITERAL] [SEMICOLON]; <IF_STATEMENT> : [IF] [L_PAREN] <EXPRESSION> [R_PAREN] <STATEMENT> <ELSE_IF_STATEMENTS> [ELSE] <STATEMENT>; <IF_STATEMENT> : [IF] [L_PAREN] <EXPRESSION> [R_PAREN] <STATEMENT> <ELSE_IF_STATEMENTS>; <IF_STATEMENT> : [IF] [L_PAREN] <EXPRESSION> [R_PAREN] <STATEMENT> [ELSE] <STATEMENT>; <IF_STATEMENT> : [IF] [L_PAREN] <EXPRESSION> [R_PAREN] <STATEMENT>; <ELSE_IF_STATEMENTS> : <ELSE_IF_STATEMENTS> <ELSE_IF_STATEMENT>; <ELSE_IF_STATEMENTS> : <ELSE_IF_STATEMENT>; <ELSE_IF_STATEMENT> : [ELIF] [L_PAREN] <EXPRESSION> [R_PAREN] <STATEMENT>; <VARIABLE_DECLARATION_STATEMENT> : <VARIABLE_DECLARATION> [SEMICOLON]; <VARIABLE_DECLARATION> : <VARIABLE_DECLARATION_HEADER>; <VARIABLE_DECLARATION> : <VARIABLE_DECLARATION_HEADER> [EQUALS] <EXPRESSION>; <VARIABLE_DECLARATION_HEADER> : [VARIABLE] [IDENTIFIER] [COLON] <TYPE>; <CONSTANT_DECLARATION> : [CONSTANT] [IDENTIFIER] [COLON] <TYPE> [EQUALS] <EXPRESSION> [SEMICOLON]; <BLOCK_STATEMENT> : [L_CURLY_BRACE] [R_CURLY_BRACE]; <BLOCK_STATEMENT> : [L_CURLY_BRACE] <STATEMENT_LIST> [R_CURLY_BRACE]; <RETURN_STATEMENT> : [RETURN] <EXPRESSION> [SEMICOLON]; <RETURN_STATEMENT> : [RETURN] [SEMICOLON]; <TRY_CATCH_STATEMENT> : [TRY] <BLOCK_STATEMENT> [CATCH] [L_PAREN] [IDENTIFIER] [R_PAREN] <BLOCK_STATEMENT>; <THROW_STATEMENT> : [THROW] [STRING_LITERAL] [SEMICOLON]; <SWITCH_STATEMENT> : [SWITCH] [L_PAREN] <EXPRESSION> [R_PAREN] [L_CURLY_BRACE] <SWITCH_CASE_LIST_WITH_DEFAULT> [R_CURLY_BRACE]; <SWITCH_STATEMENT> : [SWITCH] [L_PAREN] <EXPRESSION> [R_PAREN] [L_CURLY_BRACE] [R_CURLY_BRACE]; <SWITCH_CASE_LIST_WITH_DEFAULT> : <SWITCH_CASE_LIST> [DEFAULT] [COLON] <BLOCK_STATEMENT>; <SWITCH_CASE_LIST_WITH_DEFAULT> : [DEFAULT] [COLON] <BLOCK_STATEMENT>; <SWITCH_CASE_LIST_WITH_DEFAULT> : <SWITCH_CASE_LIST>; <SWITCH_CASE_LIST> : <SWITCH_CASE_LIST> <SWITCH_CASE>; <SWITCH_CASE_LIST> : <SWITCH_CASE>; <SWITCH_CASE> : [CASE] [L_PAREN] [STRING_LITERAL] [R_PAREN] [COLON] <BLOCK_STATEMENT>; <SWITCH_CASE> : [CASE] [L_PAREN] [NUMBER_LITERAL] [R_PAREN] [COLON] <BLOCK_STATEMENT>; <LOOP_STATEMENT> : <FOREACH_LOOP>; <LOOP_STATEMENT> : <COUNTER_CONTROLLED_LOOP>; <LOOP_STATEMENT> : <WHILE_LOOP>; <FOREACH_LOOP> : [FOR] [L_PAREN] [VARIABLE] [IDENTIFIER] [COLON] <TYPE> [OF] <EXPRESSION> [R_PAREN] <BLOCK_STATEMENT>; <COUNTER_CONTROLLED_LOOP> : [FOR] [L_PAREN] <COUNTER_LOOP_INIT> [SEMICOLON] <EXPRESSION> [SEMICOLON] <EXPRESSION_LIST> [R_PAREN] <BLOCK_STATEMENT>; <COUNTER_CONTROLLED_LOOP> : [FOR] [L_PAREN] [SEMICOLON] <EXPRESSION> [SEMICOLON] <EXPRESSION_LIST> [R_PAREN] <BLOCK_STATEMENT>; <COUNTER_CONTROLLED_LOOP> : [FOR] [L_PAREN] <COUNTER_LOOP_INIT> [SEMICOLON] [SEMICOLON] <EXPRESSION_LIST> [R_PAREN] <BLOCK_STATEMENT>; <COUNTER_CONTROLLED_LOOP> : [FOR] [L_PAREN] <COUNTER_LOOP_INIT> [SEMICOLON] <EXPRESSION> [SEMICOLON] [R_PAREN] <BLOCK_STATEMENT>; <COUNTER_CONTROLLED_LOOP> : [FOR] [L_PAREN] [SEMICOLON] [SEMICOLON] <EXPRESSION_LIST> [R_PAREN] <BLOCK_STATEMENT>; <COUNTER_CONTROLLED_LOOP> : [FOR] [L_PAREN] <COUNTER_LOOP_INIT> [SEMICOLON] [SEMICOLON] [R_PAREN] <BLOCK_STATEMENT>; <COUNTER_CONTROLLED_LOOP> : [FOR] [L_PAREN] [SEMICOLON] <EXPRESSION> [SEMICOLON] [R_PAREN] <BLOCK_STATEMENT>; <COUNTER_CONTROLLED_LOOP> : [FOR] [L_PAREN] [SEMICOLON] [SEMICOLON] [R_PAREN] <BLOCK_STATEMENT>; <COUNTER_LOOP_INIT> : <VARIABLE_DECLARATION> [COMMA] <COUNTER_LOOP_INIT>; <COUNTER_LOOP_INIT> : <VARIABLE_DECLARATION>; <EXPRESSION_LIST> : <EXPRESSION> [COMMA] <EXPRESSION_LIST>; <EXPRESSION_LIST> : <EXPRESSION>; <WHILE_LOOP> : [WHILE] [L_PAREN] <EXPRESSION> [R_PAREN] <BLOCK_STATEMENT>; <WHILE_LOOP> : [WHILE] [L_PAREN] [R_PAREN] <BLOCK_STATEMENT>; <EXPRESSION_STATEMENT> : <EXPRESSION> [SEMICOLON]; <EXPRESSION> : <FUNCTION_EXPRESSION>; <EXPRESSION> : <ARRAY_LITERAL>; <EXPRESSION> : <OBJECT_LITERAL>; <EXPRESSION> : <LOGICAL_EXPRESSION>; <FUNCTION_EXPRESSION> : [FUNCTION] [L_PAREN] <PARAMETER_LIST> [R_PAREN] [COLON] <TYPE> [MINUS_R_ANGLE_BAR] <BLOCK_STATEMENT>; <FUNCTION_EXPRESSION> : [FUNCTION] [L_PAREN] [R_PAREN] [COLON] <TYPE> [MINUS_R_ANGLE_BAR] <BLOCK_STATEMENT>; <PARAMETER_LIST> : <VARIABLE_DECLARATION_HEADER> [COMMA] <PARAMETER_LIST>; <PARAMETER_LIST> : <VARIABLE_DECLARATION_HEADER>; <ARRAY_LITERAL> : [L_BRACE] <EXPRESSION_LIST> [R_BRACE]; <ARRAY_LITERAL> : [L_BRACE] [R_BRACE]; <OBJECT_LITERAL> : [L_CURLY_BRACE] <OBJECT_LITERAL_FIELD_LIST> [R_CURLY_BRACE]; <OBJECT_LITERAL> : [L_CURLY_BRACE] [R_CURLY_BRACE]; <OBJECT_LITERAL_FIELD_LIST> : <OBJECT_LITERAL_FIELD> [COMMA] <OBJECT_LITERAL_FIELD_LIST>; <OBJECT_LITERAL_FIELD_LIST> : <OBJECT_LITERAL_FIELD>; <OBJECT_LITERAL_FIELD> : [IDENTIFIER] [COLON] <EXPRESSION>; <LOGICAL_EXPRESSION> : <LOGICAL_EXPRESSION> [DOUBLE_AMPERSAND] <BITWISE_EXPRESSION>; <LOGICAL_EXPRESSION> : <LOGICAL_EXPRESSION> [DOUBLE_PIPE] <BITWISE_EXPRESSION>; <LOGICAL_EXPRESSION> : <BITWISE_EXPRESSION>; <BITWISE_EXPRESSION> : <BITWISE_EXPRESSION> [CARAT] <EQUALITY_EXPRESSION>; <BITWISE_EXPRESSION> : <BITWISE_EXPRESSION> [AMPERSAND] <EQUALITY_EXPRESSION>; <BITWISE_EXPRESSION> : <BITWISE_EXPRESSION> [PIPE] <EQUALITY_EXPRESSION>; <BITWISE_EXPRESSION> : <EQUALITY_EXPRESSION>; <EQUALITY_EXPRESSION> : <RELATIONAL_EXPRESSION> [DOUBLE_EQUALS] <RELATIONAL_EXPRESSION>; <EQUALITY_EXPRESSION> : <RELATIONAL_EXPRESSION> [EXCLAMATION_EQUALS] <RELATIONAL_EXPRESSION>; <EQUALITY_EXPRESSION> : <RELATIONAL_EXPRESSION>; <RELATIONAL_EXPRESSION> : <SHIFT_EXPRESSION> [L_ANGLE_BAR] <SHIFT_EXPRESSION>; <RELATIONAL_EXPRESSION> : <SHIFT_EXPRESSION> [L_ANGLE_BAR_EQUALS] <SHIFT_EXPRESSION>; <RELATIONAL_EXPRESSION> : <SHIFT_EXPRESSION> [R_ANGLE_BAR] <SHIFT_EXPRESSION>; <RELATIONAL_EXPRESSION> : <SHIFT_EXPRESSION> [R_ANGLE_BAR_EQUALS] <SHIFT_EXPRESSION>; <RELATIONAL_EXPRESSION> : <SHIFT_EXPRESSION>; <SHIFT_EXPRESSION> : <SHIFT_EXPRESSION> [DOUBLE_L_ANGLE_BAR] <TERM_EXPRESSION>; <SHIFT_EXPRESSION> : <SHIFT_EXPRESSION> [DOUBLE_R_ANGLE_BAR] <TERM_EXPRESSION>; <SHIFT_EXPRESSION> : <TERM_EXPRESSION>; <TERM_EXPRESSION> : <TERM_EXPRESSION> [PLUS] <FACTOR_EXPRESSION>; <TERM_EXPRESSION> : <TERM_EXPRESSION> [MINUS] <FACTOR_EXPRESSION>; <TERM_EXPRESSION> : <FACTOR_EXPRESSION>; <FACTOR_EXPRESSION> : <FACTOR_EXPRESSION> [STAR] <UNARY_EXPRESSION>; <FACTOR_EXPRESSION> : <FACTOR_EXPRESSION> [FORWARD_SLASH] <UNARY_EXPRESSION>; <FACTOR_EXPRESSION> : <FACTOR_EXPRESSION> [PERCENT] <UNARY_EXPRESSION>; <FACTOR_EXPRESSION> : <UNARY_EXPRESSION>; <UNARY_EXPRESSION> : [MINUS] <EXPONENTIATION_EXPRESSION>; <UNARY_EXPRESSION> : [EXCLAMATION] <EXPONENTIATION_EXPRESSION>; <UNARY_EXPRESSION> : <EXPONENTIATION_EXPRESSION>; <EXPONENTIATION_EXPRESSION> : <ENDPOINT> [DOUBLE_STAR] <EXPONENTIATION_EXPRESSION>; <EXPONENTIATION_EXPRESSION> : <ENDPOINT>; <ENDPOINT> : <ASSIGNMENT_EXPRESSION>; <ENDPOINT> : <LITERAL>; <ENDPOINT> : <GROUPING_EXPRESSION>; <ASSIGNMENT_EXPRESSION> : <IDENTIFIER_STACK_EXPRESSION> [DOUBLE_PLUS]; <ASSIGNMENT_EXPRESSION> : <IDENTIFIER_STACK_EXPRESSION> [DOUBLE_MINUS]; <ASSIGNMENT_EXPRESSION> : [DOUBLE_PLUS] <IDENTIFIER_STACK_EXPRESSION>; <ASSIGNMENT_EXPRESSION> : [DOUBLE_MINUS] <IDENTIFIER_STACK_EXPRESSION>; <ASSIGNMENT_EXPRESSION> : <IDENTIFIER_STACK_EXPRESSION> [EQUALS] <EXPRESSION>; <ASSIGNMENT_EXPRESSION> : <IDENTIFIER_STACK_EXPRESSION>; <IDENTIFIER_STACK_EXPRESSION> : [IDENTIFIER]; <IDENTIFIER_STACK_EXPRESSION> : <IDENTIFIER_STACK_EXPRESSION> [DOT] [IDENTIFIER]; <IDENTIFIER_STACK_EXPRESSION> : <IDENTIFIER_STACK_EXPRESSION> [L_BRACE] <EXPRESSION> [R_BRACE]; <IDENTIFIER_STACK_EXPRESSION> : <IDENTIFIER_STACK_EXPRESSION> [L_PAREN] <EXPRESSION_LIST> [R_PAREN]; <IDENTIFIER_STACK_EXPRESSION> : <IDENTIFIER_STACK_EXPRESSION> [L_PAREN] [R_PAREN]; <LITERAL> : [STRING_LITERAL]; <LITERAL> : [NUMBER_LITERAL]; <LITERAL> : [BOOLEAN_LITERAL]; <LITERAL> : [NULL_LITERAL]; <GROUPING_EXPRESSION> : [L_PAREN] <EXPRESSION> [R_PAREN]; <OBJECT_TYPE_DECLARATION> : [OBJECT] [IDENTIFIER] [L_CURLY_BRACE] <PROPERTY_LIST> [R_CURLY_BRACE]; <OBJECT_TYPE_DECLARATION> : [OBJECT] [IDENTIFIER] [L_CURLY_BRACE] [R_CURLY_BRACE]; <PROPERTY_LIST> : <PROPERTY_LIST> <PROPERTY_DEFINITION>; <PROPERTY_LIST> : <PROPERTY_DEFINITION>; <PROPERTY_DEFINITION> : [IDENTIFIER] [COLON] <TYPE> [SEMICOLON]; <TYPE> : <TYPE> [L_BRACE] [R_BRACE]; <TYPE> : [NUMBER_TYPE]; <TYPE> : [BOOLEAN_TYPE]; <TYPE> : [STRING_TYPE]; <TYPE> : [VOID_TYPE]; <TYPE> : [OBJECT] [IDENTIFIER]; <TYPE> : <LAMBDA_TYPE>; <LAMBDA_TYPE> : [FUNCTION] [L_PAREN] <LAMBDA_PARAMETER_LIST> [R_PAREN] [MINUS_R_ANGLE_BAR] <TYPE>; <LAMBDA_TYPE> : [FUNCTION] [L_PAREN] [R_PAREN] [MINUS_R_ANGLE_BAR] <TYPE>; <LAMBDA_PARAMETER_LIST> : <TYPE> [COMMA] <LAMBDA_PARAMETER_LIST>; <LAMBDA_PARAMETER_LIST> : <TYPE>;