Parser.java
package com.mackenziehigh.autumn.lang.compiler.parser;
import com.mackenziehigh.snowflake.Grammar;
import com.mackenziehigh.snowflake.GrammarBuilder;
import com.mackenziehigh.snowflake.IParser;
import com.mackenziehigh.snowflake.ParserOutput;
/**
* This class was auto-generated using the Snowflake parser-generator.
*
* <p>Generated On: Fri Jan 16 12:55:49 EST 2015</p>
*/
public final class Parser implements IParser
{
private static final Grammar grammar = grammar();
/**
* This method constructs the grammar object.
*/
private static Grammar grammar()
{
final GrammarBuilder g = new GrammarBuilder();
// Character Classes
g.range("@class0", (char) 40, (char) 40);
g.range("@class1", (char) 44, (char) 44);
g.range("@class2", (char) 41, (char) 41);
g.range("@class3", (char) 58, (char) 58);
g.range("@class4", (char) 123, (char) 123);
g.range("@class5", (char) 125, (char) 125);
g.range("@class6", (char) 40, (char) 40);
g.range("@class7", (char) 41, (char) 41);
g.range("@class8", (char) 40, (char) 40);
g.range("@class9", (char) 44, (char) 44);
g.range("@class10", (char) 41, (char) 41);
g.range("@class11", (char) 40, (char) 40);
g.range("@class12", (char) 58, (char) 58);
g.range("@class13", (char) 41, (char) 41);
g.range("@class14", (char) 40, (char) 40);
g.range("@class15", (char) 41, (char) 41);
g.range("@class16", (char) 61, (char) 61);
g.range("@class17", (char) 40, (char) 40);
g.range("@class18", (char) 41, (char) 41);
g.range("@class19", (char) 58, (char) 58);
g.range("@class20", (char) 61, (char) 61);
g.range("@class21", (char) 61, (char) 61);
g.range("@class22", (char) 61, (char) 61);
g.range("@class23", (char) 58, (char) 58);
g.range("@class24", (char) 58, (char) 58);
g.range("@class25", (char) 38, (char) 38);
g.range("@class26", (char) 124, (char) 124);
g.range("@class27", (char) 94, (char) 94);
g.range("@class28", (char) 62, (char) 62);
g.range("@class29", (char) 60, (char) 60);
g.range("@class30", (char) 43, (char) 43);
g.range("@class31", (char) 45, (char) 45);
g.range("@class32", (char) 47, (char) 47);
g.range("@class33", (char) 37, (char) 37);
g.range("@class34", (char) 42, (char) 42);
g.range("@class35", (char) 46, (char) 46);
g.range("@class36", (char) 45, (char) 45);
g.range("@class37", (char) 33, (char) 33);
g.range("@class38", (char) 40, (char) 40);
g.range("@class39", (char) 41, (char) 41);
g.range("@class40", (char) 40, (char) 40);
g.range("@class41", (char) 41, (char) 41);
g.range("@class42", (char) 91, (char) 91);
g.range("@class43", (char) 93, (char) 93);
g.range("@class44", (char) 58, (char) 58);
g.range("@class45", (char) 91, (char) 91);
g.range("@class46", (char) 93, (char) 93);
g.range("@class47", (char) 61, (char) 61);
g.range("@class48", (char) 61, (char) 61);
g.range("@class49", (char) 58, (char) 58);
g.range("@class50", (char) 40, (char) 40);
g.range("@class51", (char) 41, (char) 41);
g.range("@class52", (char) 44, (char) 44);
g.range("@class53", (char) 10, (char) 10);
g.range("@class54", (char) 13, (char) 13);
g.combine("@class55", "@class53", "@class54");
g.negate("@class56", "@class55");
g.range("@class57", (char) 64, (char) 64);
g.range("@class58", (char) 40, (char) 40);
g.range("@class59", (char) 41, (char) 41);
g.range("@class60", (char) 44, (char) 44);
g.range("@class61", (char) 46, (char) 46);
g.range("@class62", (char) 58, (char) 58);
g.range("@class63", (char) 40, (char) 40);
g.range("@class64", (char) 44, (char) 44);
g.range("@class65", (char) 41, (char) 41);
g.range("@class66", (char) 58, (char) 58);
g.range("@class67", (char) 40, (char) 40);
g.range("@class68", (char) 44, (char) 44);
g.range("@class69", (char) 41, (char) 41);
g.range("@class70", (char) 58, (char) 58);
g.range("@class71", (char) 91, (char) 91);
g.range("@class72", (char) 93, (char) 93);
g.range("@class73", (char) 46, (char) 46);
g.range("@class74", (char) 46, (char) 46);
g.range("@class75", (char) 0, (char) 65535);
g.range("@class76", (char) 67, (char) 67);
g.range("@class77", (char) 99, (char) 99);
g.range("@class78", (char) 45, (char) 45);
g.range("@class79", (char) 66, (char) 66);
g.range("@class80", (char) 98, (char) 98);
g.range("@class81", (char) 45, (char) 45);
g.range("@class82", (char) 83, (char) 83);
g.range("@class83", (char) 115, (char) 115);
g.range("@class84", (char) 45, (char) 45);
g.range("@class85", (char) 45, (char) 45);
g.range("@class86", (char) 76, (char) 76);
g.range("@class87", (char) 108, (char) 108);
g.range("@class88", (char) 45, (char) 45);
g.range("@class89", (char) 45, (char) 45);
g.range("@class90", (char) 46, (char) 46);
g.range("@class91", (char) 70, (char) 70);
g.range("@class92", (char) 102, (char) 102);
g.range("@class93", (char) 45, (char) 45);
g.range("@class94", (char) 46, (char) 46);
g.range("@class95", (char) 45, (char) 45);
g.range("@class96", (char) 46, (char) 46);
g.range("@class97", (char) 64, (char) 64);
g.range("@class98", (char) 59, (char) 59);
g.range("@class99", (char) 65, (char) 90);
g.range("@class100", (char) 97, (char) 122);
g.range("@class101", (char) 95, (char) 95);
g.range("@class102", (char) 36, (char) 36);
g.combine("@class103", "@class99", "@class100", "@class101", "@class102");
g.range("@class104", (char) 65, (char) 90);
g.range("@class105", (char) 97, (char) 122);
g.range("@class106", (char) 95, (char) 95);
g.range("@class107", (char) 36, (char) 36);
g.range("@class108", (char) 48, (char) 57);
g.combine("@class109", "@class104", "@class105", "@class106", "@class107", "@class108");
g.range("@class110", (char) 95, (char) 95);
g.range("@class111", (char) 48, (char) 57);
g.range("@class112", (char) 101, (char) 101);
g.range("@class113", (char) 69, (char) 69);
g.combine("@class114", "@class112", "@class113");
g.range("@class115", (char) 45, (char) 45);
g.range("@class116", (char) 43, (char) 43);
g.combine("@class117", "@class115", "@class116");
g.range("@class118", (char) 34, (char) 34);
g.range("@class119", (char) 34, (char) 34);
g.combine("@class120", "@class119");
g.negate("@class121", "@class120");
g.range("@class122", (char) 39, (char) 39);
g.combine("@class123", "@class122");
g.negate("@class124", "@class123");
g.range("@class125", (char) 92, (char) 92);
g.range("@class126", (char) 116, (char) 116);
g.range("@class127", (char) 98, (char) 98);
g.range("@class128", (char) 110, (char) 110);
g.range("@class129", (char) 114, (char) 114);
g.range("@class130", (char) 102, (char) 102);
g.range("@class131", (char) 34, (char) 34);
g.range("@class132", (char) 92, (char) 92);
g.range("@class133", (char) 35, (char) 35);
g.range("@class134", (char) 10, (char) 10);
g.range("@class135", (char) 13, (char) 13);
g.combine("@class136", "@class134", "@class135");
g.negate("@class137", "@class136");
g.range("@class138", (char) 10, (char) 10);
g.range("@class139", (char) 13, (char) 13);
g.combine("@class140", "@class138", "@class139");
g.range("@class141", (char) 0, (char) 65535);
g.combine("@class142", "@class141");
g.range("@class143", (char) 10, (char) 10);
g.range("@class144", (char) 13, (char) 13);
g.combine("@class145", "@class143", "@class144");
g.range("@class146", (char) 10, (char) 10);
g.range("@class147", (char) 13, (char) 13);
g.combine("@class148", "@class146", "@class147");
g.negate("@class149", "@class148");
g.range("@class150", (char) 32, (char) 32);
g.range("@class151", (char) 9, (char) 9);
g.range("@class152", (char) 10, (char) 10);
g.range("@class153", (char) 11, (char) 11);
g.range("@class154", (char) 12, (char) 12);
g.range("@class155", (char) 13, (char) 13);
g.combine("@class156", "@class150", "@class151", "@class152", "@class153", "@class154", "@class155");
// Grammar Rules
g.choose("@203", "@201", "@202");
g.choose("@208", "@206", "@207");
g.choose("@213", "@211", "@212");
g.choose("@220", "@218", "@219");
g.choose("@227", "@223", "@224", "@225", "@226");
g.choose("@233", "@231", "@232");
g.choose("@244", "@240", "@241", "@242", "@243");
g.choose("@256", "DIGIT", "@255");
g.choose("@277", "SP", "COMMENT");
g.choose("@280", "@278", "@279");
g.choose("@69", "do_until", "do_while");
g.choose("COMMENT", "MULTI_LINE_COMMENT", "SINGLE_LINE_COMMENT");
g.choose("ESCAPE_CHAR", "@268", "@269", "@270", "@271", "@272", "@273", "@274", "@275", "@276");
g.choose("NON_QUOTE", "ESCAPE_SEQUENCE", "@261");
g.choose("NON_TRIPLE_QUOTE", "ESCAPE_SEQUENCE", "@265", "@266");
g.choose("STRING_LITERAL", "STRING_LITERAL_STYLE1", "STRING_LITERAL_STYLE2");
g.choose("assertion_echo_opt", "assertion_echo", "assertion_echo_empty");
g.choose("assumption_echo_opt", "assumption_echo", "assumption_echo_empty");
g.choose("boolean_value", "true", "false");
g.choose("char_value", "literal_char_value", "numeric_char_value");
g.choose("datum", "string_datum", "boolean_datum", "char_datum", "big_decimal_datum", "float_datum", "double_datum", "big_integer_datum", "long_datum", "short_datum", "byte_datum", "int_datum", "null_datum", "class_datum", "variable_datum");
g.choose("definition", "function_definition", "exception_definition", "design_definition", "tuple_definition", "struct_definition", "functor_definition", "enum_definition", "annotation_definition");
g.choose("expression", "p1", "keyword_expression", "nested_expression");
g.choose("keyword_expression", "locals_expression", "dispatch_expression", "new_expression", "call_static_method_expression", "call_method_expression", "set_static_expression", "get_static_expression", "set_field_expression", "get_field_expression", "instanceof_expression", "ternary_conditional_expression", "progn_expression", "once_expression");
g.choose("module_member", "module_directive", "import_directive", "definition");
g.choose("module_name", "name_of_anonymous_module", "name_of_named_module");
g.choose("namespace", "namespace_explicit", "namespace_implicit");
g.choose("p1_operation", "as_operation", "is_operation");
g.choose("p3_operation", "and_operation", "or_operation", "xor_operation", "implies_operation");
g.choose("p4_operation", "identity_equals_operation", "identity_not_equals_operation", "equals_operation", "not_equals_operation", "greater_or_equals_operation", "less_or_equals_operation", "greater_operation", "less_operation");
g.choose("p6_operation", "add_operation", "subtract_operation");
g.choose("p7_operation", "divide_operation", "modulo_operation", "multiply_operation");
g.choose("p9", "list_expression", "list_comprehension_expression", "keyword_expression", "nested_expression", "datum", "negate_operation", "not_operation");
g.choose("statement", "sequence_statement", "if_statement", "when_statement", "goto_statement", "marker_statement", "branch_statement", "do_statement", "break_statement", "continue_statement", "redo_statement", "foreach_statement", "for_statement", "until_statement", "while_statement", "forever_statement", "assert_statement", "assume_statement", "throw_statement", "try_catch_statement", "var_statement", "val_statement", "let_statement", "lambda_statement", "delegate_statement", "nop_statement", "return_value_statement", "return_void_statement", "recur_statement", "expression_statement");
g.choose("string_value", "verbatim_string_value", "regular_string_value");
g.choose("supers_list", "supers_list_cons", "supers_list_end");
g.choose("type_namespace", "type_namespace_explicit", "type_namespace_implicit");
g.chr("@102", "@class28");
g.chr("@103", "@class29");
g.chr("@105", "@class30");
g.chr("@106", "@class31");
g.chr("@107", "@class32");
g.chr("@108", "@class33");
g.chr("@109", "@class34");
g.chr("@110", "@class35");
g.chr("@111", "@class36");
g.chr("@112", "@class37");
g.chr("@113", "@class38");
g.chr("@114", "@class39");
g.chr("@115", "@class40");
g.chr("@117", "@class41");
g.chr("@121", "@class42");
g.chr("@122", "@class43");
g.chr("@124", "@class44");
g.chr("@128", "@class45");
g.chr("@129", "@class46");
g.chr("@13", "@class2");
g.chr("@139", "@class47");
g.chr("@142", "@class48");
g.chr("@144", "@class49");
g.chr("@146", "@class50");
g.chr("@147", "@class51");
g.chr("@148", "@class52");
g.chr("@154", "@class56");
g.chr("@156", "@class57");
g.chr("@157", "@class58");
g.chr("@158", "@class59");
g.chr("@159", "@class60");
g.chr("@163", "@class61");
g.chr("@167", "@class62");
g.chr("@170", "@class63");
g.chr("@171", "@class64");
g.chr("@176", "@class65");
g.chr("@177", "@class66");
g.chr("@178", "@class67");
g.chr("@179", "@class68");
g.chr("@18", "@class3");
g.chr("@184", "@class69");
g.chr("@185", "@class70");
g.chr("@187", "@class71");
g.chr("@188", "@class72");
g.chr("@189", "@class73");
g.chr("@192", "@class74");
g.chr("@199", "@class75");
g.chr("@201", "@class76");
g.chr("@202", "@class77");
g.chr("@204", "@class78");
g.chr("@206", "@class79");
g.chr("@207", "@class80");
g.chr("@209", "@class81");
g.chr("@211", "@class82");
g.chr("@212", "@class83");
g.chr("@214", "@class84");
g.chr("@216", "@class85");
g.chr("@218", "@class86");
g.chr("@219", "@class87");
g.chr("@22", "@class4");
g.chr("@221", "@class88");
g.chr("@228", "@class89");
g.chr("@23", "@class5");
g.chr("@230", "@class90");
g.chr("@231", "@class91");
g.chr("@232", "@class92");
g.chr("@234", "@class93");
g.chr("@236", "@class94");
g.chr("@237", "@class95");
g.chr("@239", "@class96");
g.chr("@245", "@class97");
g.chr("@249", "@class98");
g.chr("@250", "@class103");
g.chr("@251", "@class109");
g.chr("@253", "@class110");
g.chr("@258", "@class114");
g.chr("@259", "@class117");
g.chr("@261", "@class121");
g.chr("@266", "@class124");
g.chr("@267", "@class125");
g.chr("@268", "@class126");
g.chr("@269", "@class127");
g.chr("@270", "@class128");
g.chr("@271", "@class129");
g.chr("@272", "@class130");
g.chr("@274", "@class131");
g.chr("@275", "@class132");
g.chr("@279", "@class133");
g.chr("@281", "@class137");
g.chr("@283", "@class140");
g.chr("@287", "@class142");
g.chr("@34", "@class6");
g.chr("@35", "@class7");
g.chr("@36", "@class8");
g.chr("@37", "@class9");
g.chr("@42", "@class10");
g.chr("@50", "@class11");
g.chr("@51", "@class12");
g.chr("@52", "@class13");
g.chr("@57", "@class14");
g.chr("@58", "@class15");
g.chr("@59", "@class16");
g.chr("@61", "@class17");
g.chr("@63", "@class18");
g.chr("@64", "@class19");
g.chr("@7", "@class0");
g.chr("@73", "@class20");
g.chr("@75", "@class21");
g.chr("@79", "@class22");
g.chr("@8", "@class1");
g.chr("@81", "@class23");
g.chr("@84", "@class24");
g.chr("@92", "@class25");
g.chr("@93", "@class26");
g.chr("@94", "@class27");
g.chr("DIGIT", "@class111");
g.chr("NEWLINE", "@class145");
g.chr("NON_NEWLINE", "@class149");
g.chr("QUOTE", "@class118");
g.chr("SP", "@class156");
g.not("@195", "ID");
g.not("@197", "ID");
g.not("@248", "ID");
g.not("@264", "@263");
g.not("@286", "@285");
g.repeat("@10", "@9", 0, 2147483647);
g.repeat("@12", "@11", 0, 1);
g.repeat("@136", "@135", 0, 1);
g.repeat("@150", "@149", 0, 2147483647);
g.repeat("@152", "api_comment_line", 0, 2147483647);
g.repeat("@155", "annotation", 0, 2147483647);
g.repeat("@161", "@160", 0, 2147483647);
g.repeat("@165", "@164", 0, 2147483647);
g.repeat("@173", "@172", 0, 2147483647);
g.repeat("@175", "@174", 0, 1);
g.repeat("@181", "@180", 0, 2147483647);
g.repeat("@183", "@182", 0, 1);
g.repeat("@191", "@190", 1, 2147483647);
g.repeat("@205", "@204", 0, 1);
g.repeat("@210", "@209", 0, 1);
g.repeat("@215", "@214", 0, 1);
g.repeat("@217", "@216", 0, 1);
g.repeat("@222", "@221", 0, 1);
g.repeat("@229", "@228", 0, 1);
g.repeat("@235", "@234", 0, 1);
g.repeat("@238", "@237", 0, 1);
g.repeat("@252", "@251", 0, 2147483647);
g.repeat("@254", "@253", 1, 2147483647);
g.repeat("@257", "@256", 0, 2147483647);
g.repeat("@260", "@259", 0, 1);
g.repeat("@282", "@281", 0, 2147483647);
g.repeat("@289", "@288", 0, 2147483647);
g.repeat("@39", "@38", 0, 2147483647);
g.repeat("@41", "@40", 0, 1);
g.repeat("@78", "@77", 0, 1);
g.repeat("EXPONENT_OPT", "EXPONENT", 0, 1);
g.repeat("NON_NEWLINES", "NON_NEWLINE", 0, 2147483647);
g.repeat("NON_QUOTES", "NON_QUOTE", 0, 2147483647);
g.repeat("NON_TRIPLE_QUOTES", "NON_TRIPLE_QUOTE", 0, 2147483647);
g.repeat("WS", "@277", 0, 2147483647);
g.repeat("annotation_assignment_opt", "annotation_assignment", 0, 1);
g.repeat("annotation_values", "@162", 0, 1);
g.repeat("api_comment_text", "@154", 0, 2147483647);
g.repeat("arguments", "@151", 0, 1);
g.repeat("dimensions", "@186", 0, 2147483647);
g.repeat("elif_cases_opt", "elif_case", 0, 2147483647);
g.repeat("else_case_opt", "else_case", 0, 1);
g.repeat("if_opt", "@127", 0, 1);
g.repeat("module_members", "module_member", 0, 2147483647);
g.repeat("p1_operations", "p1_operation", 0, 2147483647);
g.repeat("p2_operations", "p2_operation", 0, 2147483647);
g.repeat("p3_operations", "p3_operation", 0, 2147483647);
g.repeat("p4_operations", "p4_operation", 0, 2147483647);
g.repeat("p5_operations", "p5_operation", 0, 2147483647);
g.repeat("p6_operations", "p6_operation", 0, 2147483647);
g.repeat("p7_operations", "p7_operation", 0, 2147483647);
g.repeat("p8_operations", "p8_operation", 0, 2147483647);
g.repeat("statements", "statement", 0, 2147483647);
g.repeat("super_functor", "@20", 0, 1);
g.repeat("supers_opt", "supers", 0, 1);
g.repeat("trycatch_handlers", "trycatch_handler", 0, 2147483647);
g.sequence("@11", "enum_constant", "@10");
g.sequence("@127", "@126", "SP", "expression", "WS");
g.sequence("@135", "@134", "SP");
g.sequence("@149", "WS", "@148", "WS", "WS", "argument");
g.sequence("@151", "argument", "@150", "WS");
g.sequence("@160", "WS", "@159", "WS", "annotation_value");
g.sequence("@162", "annotation_value", "@161", "WS");
g.sequence("@164", "@163", "name_id");
g.sequence("@166", "name_id", "@165");
g.sequence("@172", "WS", "@171", "WS", "element");
g.sequence("@174", "element", "@173");
g.sequence("@180", "WS", "@179", "WS", "parameter");
g.sequence("@182", "parameter", "@181");
g.sequence("@186", "dimension", "WS");
g.sequence("@190", "name_id", "@189");
g.sequence("@20", "@19", "SP", "WS", "type", "WS");
g.sequence("@255", "@254", "DIGIT");
g.sequence("@265", "@262", "@264");
g.sequence("@276", "DIGIT", "DIGIT", "DIGIT", "DIGIT", "DIGIT");
g.sequence("@288", "@286", "@287");
g.sequence("@38", "WS", "@37", "WS", "label");
g.sequence("@40", "label", "@39");
g.sequence("@77", "@76", "SP");
g.sequence("@9", "WS", "@8", "WS", "enum_constant");
g.sequence("DIGITS", "DIGIT", "@257");
g.sequence("ESCAPE_SEQUENCE", "@267", "ESCAPE_CHAR");
g.sequence("EXPONENT", "@258", "@260", "DIGITS");
g.sequence("ID", "@250", "@252");
g.sequence("MULTI_LINE_COMMENT", "@284", "@289", "@290", "WS");
g.sequence("SEMICOLON", "@249", "WS");
g.sequence("SINGLE_LINE_COMMENT", "@280", "@282", "@283");
g.sequence("STRING_LITERAL_STYLE1", "QUOTE", "NON_QUOTES", "QUOTE");
g.sequence("STRING_LITERAL_STYLE2", "TRIPLE_QUOTE", "NON_TRIPLE_QUOTES", "TRIPLE_QUOTE");
g.sequence("add_operation", "@105", "WS", "p6_operand");
g.sequence("and_operation", "@92", "WS", "p3_operand");
g.sequence("annotation", "PS", "@156", "WS", "annotation_type", "WS", "annotation_assignment_opt", "WS");
g.sequence("annotation_assignment", "@157", "WS", "annotation_values", "WS", "@158", "WS");
g.sequence("annotation_definition", "PS", "api_comment", "annotation_list", "WS", "@3", "SP", "WS", "name", "WS", "SEMICOLON", "WS");
g.sequence("annotation_list", "PS", "@155");
g.sequence("annotation_type", "type");
g.sequence("annotation_value", "string_value");
g.sequence("api_comment", "PS", "@152");
g.sequence("api_comment_line", "PS", "WS", "@153", "api_comment_text", "WS");
g.sequence("argument", "expression");
g.sequence("argument_list", "@146", "WS", "arguments", "WS", "@147", "WS");
g.sequence("as_operation", "@89", "SP", "WS", "type", "WS");
g.sequence("assert_statement", "PS", "@43", "SP", "WS", "condition", "WS", "assertion_echo_opt", "WS", "SEMICOLON");
g.sequence("assertion_echo", "@44", "SP", "WS", "expression", "WS");
g.sequence("assume_statement", "PS", "@45", "SP", "WS", "condition", "WS", "assumption_echo_opt", "WS", "SEMICOLON");
g.sequence("assumption_echo", "@46", "SP", "WS", "expression", "WS");
g.sequence("big_decimal_datum", "big_decimal_value");
g.sequence("big_decimal_value", "@238", "DIGITS", "@239", "DIGITS", "EXPONENT_OPT", "WS", "@244", "WS");
g.sequence("big_integer_datum", "big_integer_value");
g.sequence("big_integer_value", "@222", "DIGITS", "@227", "WS");
g.sequence("boolean_datum", "boolean_value");
g.sequence("branch_statement", "PS", "@32", "SP", "index", "WS", "labels", "WS", "@33", "SP", "label", "WS", "SEMICOLON");
g.sequence("break_statement", "PS", "@53", "WS", "SEMICOLON");
g.sequence("byte_datum", "byte_value");
g.sequence("byte_value", "@205", "DIGITS", "@208", "WS");
g.sequence("call_method_expression", "PS", "@133", "SP", "WS", "p8_operand", "WS", "p8_operation", "WS");
g.sequence("call_static_method_expression", "PS", "@136", "WS", "static_member_access", "WS", "argument_list", "WS");
g.sequence("char_datum", "char_value");
g.sequence("class_datum", "class_value", "WS");
g.sequence("class_value", "@246", "SP", "WS", "type", "WS");
g.sequence("concat_operation", "@104", "WS", "p5_operand");
g.sequence("condition", "expression");
g.sequence("conditional_case", "PS", "paren_condition", "WS", "sequence_statement", "WS");
g.sequence("continue_statement", "PS", "@54", "WS", "SEMICOLON");
g.sequence("delegate_statement", "PS", "@83", "SP", "WS", "variable", "WS", "@84", "WS", "type", "WS", "@85", "WS", "static_member_access", "WS", "SEMICOLON");
g.sequence("design_definition", "PS", "api_comment", "annotation_list", "WS", "@14", "SP", "WS", "name", "WS", "elements", "WS", "supers_opt", "WS", "SEMICOLON", "WS");
g.sequence("dimension", "@187", "WS", "@188");
g.sequence("dispatch_expression", "PS", "@131", "SP", "WS", "name", "WS", "argument_list", "WS");
g.sequence("divide_operation", "@107", "WS", "p7_operand");
g.sequence("do_statement", "PS", "@68", "WS", "sequence_statement", "WS", "@69", "WS");
g.sequence("do_until", "@70", "WS", "paren_condition", "WS", "do_until_trigger");
g.sequence("do_while", "@71", "WS", "paren_condition", "WS", "do_while_trigger");
g.sequence("double_datum", "double_value");
g.sequence("double_value", "@235", "DIGITS", "@236", "DIGITS", "EXPONENT_OPT", "WS");
g.sequence("element", "PS", "name", "WS", "@177", "WS", "type", "WS");
g.sequence("elements", "PS", "@170", "WS", "@175", "WS", "@176", "WS");
g.sequence("elif_case", "@26", "WS", "conditional_case", "WS");
g.sequence("else_case", "@27", "WS", "sequence_statement", "WS");
g.sequence("enum_constant", "name");
g.sequence("enum_constant_list", "@7", "WS", "@12", "WS", "@13");
g.sequence("enum_definition", "PS", "api_comment", "annotation_list", "WS", "@6", "SP", "WS", "name", "WS", "enum_constant_list", "WS", "SEMICOLON", "WS");
g.sequence("equals_operation", "@98", "WS", "p4_operand");
g.sequence("exception_definition", "PS", "api_comment", "annotation_list", "WS", "@4", "SP", "WS", "name", "WS", "@5", "SP", "WS", "type", "WS", "SEMICOLON", "WS");
g.sequence("expression_statement", "PS", "expression", "SEMICOLON");
g.sequence("false", "@196", "@197", "WS");
g.sequence("filepath", "string_value");
g.sequence("float_datum", "float_value");
g.sequence("float_value", "@229", "DIGITS", "@230", "DIGITS", "EXPONENT_OPT", "@233", "WS");
g.sequence("for_body", "sequence_statement");
g.sequence("for_condition", "expression", "WS");
g.sequence("for_controller", "@57", "WS", "for_init", "WS", "SEMICOLON", "WS", "for_condition", "WS", "SEMICOLON", "WS", "for_modifier", "WS", "@58", "WS");
g.sequence("for_init", "variable", "WS", "@59", "WS", "expression", "WS");
g.sequence("for_modifier", "expression");
g.sequence("for_statement", "PS", "@56", "WS", "for_controller", "WS", "for_body", "WS");
g.sequence("foreach_body", "sequence_statement");
g.sequence("foreach_controller", "@61", "WS", "foreach_vardec", "@62", "WS", "foreach_iterator", "@63");
g.sequence("foreach_iterator", "expression", "WS");
g.sequence("foreach_statement", "PS", "@60", "WS", "foreach_controller", "WS", "foreach_body", "WS");
g.sequence("foreach_vardec", "variable", "WS", "@64", "WS", "type", "WS");
g.sequence("forever_statement", "PS", "@65", "WS", "sequence_statement", "WS");
g.sequence("formals", "PS", "@178", "WS", "@183", "WS", "@184", "WS");
g.sequence("function_definition", "PS", "api_comment", "annotation_list", "WS", "@21", "SP", "WS", "signature", "WS", "sequence_statement", "WS");
g.sequence("functor_definition", "PS", "api_comment", "annotation_list", "WS", "@17", "SP", "WS", "name", "WS", "formals", "WS", "@18", "WS", "type", "WS", "super_functor", "WS", "SEMICOLON", "WS");
g.sequence("get_field_expression", "PS", "@137", "SP", "WS", "instance_member_access", "WS");
g.sequence("get_static_expression", "PS", "@140", "SP", "WS", "static_member_access", "WS");
g.sequence("goto_statement", "PS", "@30", "SP", "WS", "label", "WS", "SEMICOLON");
g.sequence("greater_operation", "@102", "WS", "p4_operand");
g.sequence("greater_or_equals_operation", "@100", "WS", "p4_operand");
g.sequence("identity_equals_operation", "@96", "WS", "p4_operand");
g.sequence("identity_not_equals_operation", "@97", "WS", "p4_operand");
g.sequence("if_case", "@25", "WS", "conditional_case", "WS");
g.sequence("if_statement", "PS", "if_case", "elif_cases_opt", "WS", "else_case_opt", "WS");
g.sequence("implies_operation", "@95", "WS", "p3_operand");
g.sequence("import_directive", "PS", "@2", "SP", "WS", "type", "WS", "SEMICOLON");
g.sequence("index", "@34", "WS", "expression", "WS", "@35");
g.sequence("instance_member_access", "expression", "WS", "@192", "WS", "name", "WS");
g.sequence("instanceof_expression", "PS", "@143", "SP", "WS", "expression", "WS", "@144", "WS", "type", "WS");
g.sequence("int_datum", "int_value");
g.sequence("int_value", "@215", "DIGITS", "WS");
g.sequence("is_operation", "@90", "SP", "WS", "type", "WS");
g.sequence("label", "ID", "WS");
g.sequence("labels", "@36", "WS", "@41", "WS", "@42", "WS");
g.sequence("lambda_statement", "PS", "@80", "SP", "WS", "variable", "WS", "@81", "WS", "type", "WS", "@82", "WS", "expression", "WS", "SEMICOLON", "WS");
g.sequence("less_operation", "@103", "WS", "p4_operand");
g.sequence("less_or_equals_operation", "@101", "WS", "p4_operand");
g.sequence("let_statement", "PS", "@78", "WS", "variable", "WS", "@79", "WS", "expression", "WS", "SEMICOLON");
g.sequence("list_comprehension_body", "expression", "WS", "@123", "SP", "variable", "WS", "@124", "WS", "type", "WS", "@125", "SP", "expression", "WS", "if_opt", "WS");
g.sequence("list_comprehension_expression", "PS", "@121", "WS", "list_comprehension_body", "WS", "@122", "WS");
g.sequence("list_expression", "PS", "@128", "WS", "arguments", "WS", "@129", "WS");
g.sequence("literal_char_value", "@198", "@199", "@200", "WS");
g.sequence("locals_expression", "PS", "@115", "WS", "@116", "WS", "@117", "WS");
g.sequence("long_datum", "long_value");
g.sequence("long_value", "@217", "DIGITS", "@220", "WS");
g.sequence("marker_statement", "PS", "@31", "SP", "WS", "label", "WS", "SEMICOLON");
g.sequence("module", "WS", "module_members", "END");
g.sequence("module_directive", "PS", "api_comment", "annotation_list", "WS", "@0", "SP", "WS", "module_name", "WS", "@1", "WS", "namespace", "WS", "SEMICOLON");
g.sequence("modulo_operation", "@108", "WS", "p7_operand");
g.sequence("multiply_operation", "@109", "WS", "p7_operand");
g.sequence("name", "name_id", "WS");
g.sequence("name_id", "ID");
g.sequence("name_of_named_module", "name");
g.sequence("namespace_explicit", "PS", "@166");
g.sequence("negate_operation", "@111", "WS", "p8", "WS");
g.sequence("nested_expression", "@113", "WS", "expression", "WS", "@114", "WS");
g.sequence("new_expression", "PS", "@132", "SP", "WS", "type", "WS", "argument_list", "WS");
g.sequence("nop_statement", "PS", "@24", "SEMICOLON");
g.sequence("not_equals_operation", "@99", "WS", "p4_operand");
g.sequence("not_operation", "@112", "WS", "p8", "WS");
g.sequence("null_coalescing_operation", "@91", "WS", "p2_operand");
g.sequence("null_datum", "null_value", "WS");
g.sequence("null_value", "@247", "@248", "WS");
g.sequence("numeric_char_value", "DIGITS", "@203", "WS");
g.sequence("once_expression", "PS", "@145", "SP", "WS", "expression", "WS");
g.sequence("or_operation", "@93", "WS", "p3_operand");
g.sequence("p1", "p1_operand", "p1_operations");
g.sequence("p1_operand", "p2");
g.sequence("p2", "p2_operand", "p2_operations");
g.sequence("p2_operand", "p3");
g.sequence("p2_operation", "null_coalescing_operation");
g.sequence("p3", "p3_operand", "p3_operations");
g.sequence("p3_operand", "p4");
g.sequence("p4", "p4_operand", "p4_operations");
g.sequence("p4_operand", "p5");
g.sequence("p5", "p5_operand", "p5_operations");
g.sequence("p5_operand", "p6");
g.sequence("p5_operation", "concat_operation");
g.sequence("p6", "p6_operand", "p6_operations");
g.sequence("p6_operand", "p7");
g.sequence("p7", "p7_operand", "p7_operations");
g.sequence("p7_operand", "p8");
g.sequence("p8", "PS", "p8_operand", "p8_operations");
g.sequence("p8_operand", "p9");
g.sequence("p8_operation", "WS", "@110", "WS", "name", "WS", "argument_list", "WS");
g.sequence("parameter", "PS", "variable", "WS", "@185", "WS", "type", "WS");
g.sequence("paren_condition", "nested_expression");
g.sequence("paren_expression", "nested_expression");
g.sequence("progn_expression", "PS", "@130", "WS", "argument_list", "WS");
g.sequence("recur_statement", "PS", "@86", "WS", "arguments", "WS", "SEMICOLON");
g.sequence("redo_statement", "PS", "@55", "WS", "SEMICOLON");
g.sequence("regular_string_value", "STRING_LITERAL", "WS");
g.sequence("return_type", "type");
g.sequence("return_value_statement", "PS", "@88", "SP", "WS", "expression", "WS", "SEMICOLON");
g.sequence("return_void_statement", "PS", "@87", "WS", "SEMICOLON");
g.sequence("sequence_statement", "PS", "@22", "WS", "statements", "WS", "@23", "WS");
g.sequence("set_field_expression", "PS", "@138", "SP", "WS", "instance_member_access", "@139", "WS", "expression", "WS");
g.sequence("set_static_expression", "PS", "@141", "SP", "WS", "static_member_access", "WS", "@142", "WS", "expression", "WS");
g.sequence("short_datum", "short_value");
g.sequence("short_value", "@210", "DIGITS", "@213", "WS");
g.sequence("signature", "name", "WS", "formals", "WS", "@167", "WS", "return_type", "WS");
g.sequence("simple_name", "name_id");
g.sequence("static_member_access", "static_owner", "WS", "name", "WS");
g.sequence("static_owner", "static_owner_explicit");
g.sequence("static_owner_explicit", "type", "WS", "@193");
g.sequence("string_datum", "string_value");
g.sequence("struct_definition", "PS", "api_comment", "annotation_list", "WS", "@16", "SP", "WS", "name", "WS", "elements", "WS", "supers_opt", "WS", "SEMICOLON", "WS");
g.sequence("subtract_operation", "@106", "WS", "p6_operand");
g.sequence("supers", "@168", "WS", "supers_list", "WS");
g.sequence("supers_list_cons", "type", "WS", "@169", "WS", "supers_list");
g.sequence("supers_list_end", "type");
g.sequence("ternary_conditional_expression", "PS", "WS", "@118", "SP", "WS", "condition", "WS", "@119", "SP", "WS", "expression", "@120", "SP", "WS", "expression", "WS");
g.sequence("throw_statement", "PS", "@47", "SP", "WS", "expression", "WS", "SEMICOLON");
g.sequence("true", "@194", "@195", "WS");
g.sequence("try_catch_statement", "PS", "@48", "WS", "trycatch_body", "WS", "trycatch_handlers", "WS");
g.sequence("trycatch_body", "sequence_statement");
g.sequence("trycatch_handler", "PS", "@49", "WS", "trycatch_vardec", "WS", "sequence_statement", "WS");
g.sequence("trycatch_vardec", "@50", "WS", "variable", "WS", "@51", "WS", "type", "WS", "@52");
g.sequence("tuple_definition", "PS", "api_comment", "annotation_list", "WS", "@15", "SP", "WS", "name", "WS", "elements", "WS", "supers_opt", "WS", "SEMICOLON", "WS");
g.sequence("type", "type_name", "WS", "dimensions", "WS");
g.sequence("type_name", "type_namespace", "simple_name", "WS");
g.sequence("type_namespace_explicit", "PS", "@191");
g.sequence("until_statement", "PS", "@66", "WS", "paren_condition", "WS", "sequence_statement", "WS");
g.sequence("val_statement", "PS", "@74", "SP", "WS", "variable", "WS", "@75", "WS", "expression", "WS", "SEMICOLON");
g.sequence("var_statement", "PS", "@72", "SP", "WS", "variable", "WS", "@73", "WS", "expression", "WS", "SEMICOLON");
g.sequence("variable", "ID", "WS");
g.sequence("variable_datum", "variable");
g.sequence("verbatim_string_value", "@245", "WS", "STRING_LITERAL", "WS");
g.sequence("when_statement", "PS", "@28", "SP", "WS", "paren_condition", "WS", "@29", "WS", "statement", "WS");
g.sequence("while_statement", "PS", "@67", "WS", "paren_condition", "WS", "sequence_statement", "WS");
g.sequence("xor_operation", "@94", "WS", "p3_operand");
g.str("@0", "module");
g.str("@1", "in");
g.str("@100", ">=");
g.str("@101", "<=");
g.str("@104", "..");
g.str("@116", "locals");
g.str("@118", "if");
g.str("@119", "then");
g.str("@120", "else");
g.str("@123", "for");
g.str("@125", "in");
g.str("@126", "if");
g.str("@130", "progn");
g.str("@131", "dispatch");
g.str("@132", "new");
g.str("@133", "call");
g.str("@134", "call");
g.str("@137", "field");
g.str("@138", "field");
g.str("@14", "design");
g.str("@140", "field");
g.str("@141", "field");
g.str("@143", "instanceof");
g.str("@145", "once");
g.str("@15", "tuple");
g.str("@153", "''");
g.str("@16", "struct");
g.str("@168", "extends");
g.str("@169", "&");
g.str("@17", "functor");
g.str("@19", "extends");
g.str("@193", "::");
g.str("@194", "true");
g.str("@196", "false");
g.str("@198", "'");
g.str("@2", "import");
g.str("@200", "'");
g.str("@21", "defun");
g.str("@223", "BI");
g.str("@224", "Bi");
g.str("@225", "bI");
g.str("@226", "bi");
g.str("@24", "nop");
g.str("@240", "BD");
g.str("@241", "Bd");
g.str("@242", "bD");
g.str("@243", "bd");
g.str("@246", "class");
g.str("@247", "null");
g.str("@25", "if");
g.str("@26", "elif");
g.str("@262", "'");
g.str("@263", "''");
g.str("@27", "else");
g.str("@273", "'");
g.str("@278", "//");
g.str("@28", "when");
g.str("@284", "/*");
g.str("@285", "*/");
g.str("@29", "then");
g.str("@290", "*/");
g.str("@3", "annotation");
g.str("@30", "goto");
g.str("@31", "marker");
g.str("@32", "branch");
g.str("@33", "default");
g.str("@4", "exception");
g.str("@43", "assert");
g.str("@44", "echo");
g.str("@45", "assume");
g.str("@46", "echo");
g.str("@47", "throw");
g.str("@48", "try");
g.str("@49", "catch");
g.str("@5", "extends");
g.str("@53", "break");
g.str("@54", "continue");
g.str("@55", "redo");
g.str("@56", "for");
g.str("@6", "enum");
g.str("@60", "foreach");
g.str("@62", "in");
g.str("@65", "forever");
g.str("@66", "until");
g.str("@67", "while");
g.str("@68", "do");
g.str("@70", "until");
g.str("@71", "while");
g.str("@72", "var");
g.str("@74", "val");
g.str("@76", "let");
g.str("@80", "lambda");
g.str("@82", "=>");
g.str("@83", "delegate");
g.str("@85", "=>");
g.str("@86", "recur");
g.str("@87", "return");
g.str("@88", "return");
g.str("@89", "as");
g.str("@90", "is");
g.str("@91", "??");
g.str("@95", "->");
g.str("@96", "===");
g.str("@97", "!==");
g.str("@98", "==");
g.str("@99", "!=");
g.str("PS", "");
g.str("TRIPLE_QUOTE", "'''");
g.str("assertion_echo_empty", "");
g.str("assumption_echo_empty", "");
g.str("do_until_trigger", "");
g.str("do_while_trigger", "");
g.str("name_of_anonymous_module", "*");
g.str("namespace_implicit", "");
g.str("static_owner_implicit", "");
g.str("type_namespace_implicit", "");
// Specify which rule is the root of the grammar.
g.setRoot("module");
// Specify the number of tracing records to store concurrently.
g.setTraceCount(1024);
// Perform the actual construction of the grammar object.
return g.build();
}
/**
* {@inheritDoc}
*/
@Override
public ParserOutput parse(final char[] input)
{
return grammar.newParser().parse(input);
}
/**
* {@inheritDoc}
*/
@Override
public ParserOutput parse(final String input)
{
return parse(input.toCharArray());
}
}