+
+
diff --git a/lib/javascript/editorGrammar.js b/lib/javascript/editorGrammar.js
new file mode 100644
index 000000000..f27ddd884
--- /dev/null
+++ b/lib/javascript/editorGrammar.js
@@ -0,0 +1 @@
+var Editor = new GFGrammar(new GFAbstract("Sentence",{Available: new Type([], "Adjective"), Bulgarian: new Type([], "Noun"), Command: new Type(["Verb", "Determiner", "Noun"], "Sentence"), CommandAdj: new Type(["Verb", "Determiner", "Adjective", "Noun"], "Sentence"), Copy: new Type([], "Verb"), Cut: new Type([], "Verb"), Danish: new Type([], "Noun"), DefPlDet: new Type([], "Determiner"), DefSgDet: new Type([], "Determiner"), Delete: new Type([], "Verb"), English: new Type([], "Noun"), Enter: new Type([], "Verb"), ErrorMessage: new Type(["Adjective", "Noun"], "Sentence"), Finnish: new Type([], "Noun"), Float_N: new Type([], "Noun"), French: new Type([], "Noun"), German: new Type([], "Noun"), IndefPlDet: new Type([], "Determiner"), IndefSgDet: new Type([], "Determiner"), Integer_N: new Type([], "Noun"), Italian: new Type([], "Noun"), Label: new Type(["Noun"], "Sentence"), Language: new Type([], "Noun"), Next: new Type([], "Adjective"), Node: new Type([], "Noun"), Norwegian: new Type([], "Noun"), Page: new Type([], "Noun"), Parse: new Type([], "Verb"), Paste: new Type([], "Verb"), Previous: new Type([], "Adjective"), RandomlyCommand: new Type(["Verb", "Determiner", "Noun"], "Sentence"), Redo: new Type([], "Verb"), Refine: new Type([], "Verb"), Refinement: new Type([], "Noun"), Replace: new Type([], "Verb"), Russian: new Type([], "Noun"), Select: new Type([], "Verb"), Show: new Type([], "Verb"), SingleWordCommand: new Type(["Verb"], "Sentence"), Spanish: new Type([], "Noun"), String_N: new Type([], "Noun"), Swedish: new Type([], "Noun"), This: new Type([], "Determiner"), Tree: new Type([], "Noun"), Undo: new Type([], "Verb"), Wrap: new Type([], "Verb"), Wrapper: new Type([], "Noun")}),{EditorEng: new GFConcrete({Available: function(cs){return new Arr(new Suffix("available", new Arr(new Str(""), new Str("r"), new Str("st"), new Str("ly"))));}, Bulgarian: function(cs){return new Arr(new Arr(Editor.concretes["EditorEng"].rule("_4", cs), Editor.concretes["EditorEng"].rule("_4", cs)));}, Command: function(cs){return new Arr(new Seq(Editor.concretes["EditorEng"].rule("_8", cs),(new Arr(new Arr(new Seq(Editor.concretes["EditorEng"].rule("_12", cs), Editor.concretes["EditorEng"].rule("_13", cs), Editor.concretes["EditorEng"].rule("_17", cs)), new Seq(Editor.concretes["EditorEng"].rule("_20", cs), Editor.concretes["EditorEng"].rule("_13", cs), Editor.concretes["EditorEng"].rule("_17", cs)), new Seq(Editor.concretes["EditorEng"].rule("_23", cs), Editor.concretes["EditorEng"].rule("_13", cs), Editor.concretes["EditorEng"].rule("_17", cs))), new Arr(new Seq(Editor.concretes["EditorEng"].rule("_27", cs), Editor.concretes["EditorEng"].rule("_13", cs), Editor.concretes["EditorEng"].rule("_17", cs)), new Seq(Editor.concretes["EditorEng"].rule("_30", cs), Editor.concretes["EditorEng"].rule("_13", cs), Editor.concretes["EditorEng"].rule("_17", cs)), new Seq(Editor.concretes["EditorEng"].rule("_33", cs), Editor.concretes["EditorEng"].rule("_13", cs), Editor.concretes["EditorEng"].rule("_17", cs))))).sel(Editor.concretes["EditorEng"].rule("_38", cs)).sel(Editor.concretes["EditorEng"].rule("_40", cs))));}, CommandAdj: function(cs){return new Arr(new Seq(Editor.concretes["EditorEng"].rule("_8", cs),(new Arr(new Arr(new Seq(Editor.concretes["EditorEng"].rule("_12", cs), Editor.concretes["EditorEng"].rule("_13", cs), Editor.concretes["EditorEng"].rule("_53", cs)), new Seq(Editor.concretes["EditorEng"].rule("_20", cs), Editor.concretes["EditorEng"].rule("_13", cs), Editor.concretes["EditorEng"].rule("_53", cs)), new Seq(Editor.concretes["EditorEng"].rule("_23", cs), Editor.concretes["EditorEng"].rule("_13", cs), Editor.concretes["EditorEng"].rule("_53", cs))), new Arr(new Seq(Editor.concretes["EditorEng"].rule("_27", cs), Editor.concretes["EditorEng"].rule("_13", cs), Editor.concretes["EditorEng"].rule("_53", cs)), new Seq(Editor.concretes["EditorEng"].rule("_30", cs), Editor.concretes["EditorEng"].rule("_13", cs), Editor.concretes["EditorEng"].rule("_53", cs)), new Seq(Editor.concretes["EditorEng"].rule("_33", cs), Editor.concretes["EditorEng"].rule("_13", cs), Editor.concretes["EditorEng"].rule("_53", cs))))).sel(Editor.concretes["EditorEng"].rule("_38", cs)).sel(Editor.concretes["EditorEng"].rule("_40", cs))));}, Copy: function(cs){return new Arr(new Int(1), new Suffix("Cop", new Arr(new Str("y"), new Str("ies"), new Str("ied"), new Str("ying"))));}, Cut: function(cs){return new Arr(new Int(1), new Suffix("Cut", Editor.concretes["EditorEng"].rule("_70", cs)));}, Danish: function(cs){return new Arr(new Arr(Editor.concretes["EditorEng"].rule("_73", cs), Editor.concretes["EditorEng"].rule("_73", cs)));}, DefPlDet: function(cs){return new Arr(new Int(1), new Str("the"));}, DefSgDet: function(cs){return new Arr(new Int(0), new Str("the"));}, Delete: function(cs){return new Arr(new Int(1), new Suffix("Delet", Editor.concretes["EditorEng"].rule("_78", cs)));}, English: function(cs){return new Arr(new Arr(Editor.concretes["EditorEng"].rule("_81", cs), Editor.concretes["EditorEng"].rule("_81", cs)));}, Enter: function(cs){return new Arr(new Int(1), new Suffix("Enter", Editor.concretes["EditorEng"].rule("_70", cs)));}, ErrorMessage: function(cs){return new Arr(new Seq(new Str("there"),(new Arr(new Arr(new Seq(new Str("am"), new Str("not")), new Str("aren't"), new Str("isn't")), new Arr(new Str("aren't"), new Str("aren't"), new Str("aren't")))).sel(Editor.concretes["EditorEng"].rule("_91", cs)).sel(Editor.concretes["EditorEng"].rule("_93", cs)), Editor.concretes["EditorEng"].rule("_98", cs), Editor.concretes["EditorEng"].rule("_98", cs), Editor.concretes["EditorEng"].rule("_98", cs),(new Arr(Editor.concretes["EditorEng"].rule("_103", cs), Editor.concretes["EditorEng"].rule("_103", cs))).sel(Editor.concretes["EditorEng"].rule("_91", cs)).sel(Editor.concretes["EditorEng"].rule("_93", cs))));}, Finnish: function(cs){return new Arr(new Arr(Editor.concretes["EditorEng"].rule("_109", cs), Editor.concretes["EditorEng"].rule("_109", cs)));}, Float_N: function(cs){return new Arr(new Arr(new Suffix("float", Editor.concretes["EditorEng"].rule("_3", cs)), new Suffix("floats", Editor.concretes["EditorEng"].rule("_113", cs))));}, French: function(cs){return new Arr(new Arr(Editor.concretes["EditorEng"].rule("_117", cs), Editor.concretes["EditorEng"].rule("_117", cs)));}, German: function(cs){return new Arr(new Arr(Editor.concretes["EditorEng"].rule("_120", cs), Editor.concretes["EditorEng"].rule("_120", cs)));}, IndefPlDet: function(cs){return new Arr(new Int(1), Editor.concretes["EditorEng"].rule("_9", cs));}, IndefSgDet: function(cs){return new Arr(new Int(0), new Str("a"));}, Integer_N: function(cs){return new Arr(new Arr(new Suffix("integer", Editor.concretes["EditorEng"].rule("_3", cs)), new Suffix("integers", Editor.concretes["EditorEng"].rule("_113", cs))));}, Italian: function(cs){return new Arr(new Arr(Editor.concretes["EditorEng"].rule("_129", cs), Editor.concretes["EditorEng"].rule("_129", cs)));}, Label: function(cs){return new Arr(Editor.concretes["EditorEng"].rule("_99", cs).sel(new Int(0)));}, Language: function(cs){return new Arr(new Arr(new Suffix("language", Editor.concretes["EditorEng"].rule("_3", cs)), new Suffix("languages", Editor.concretes["EditorEng"].rule("_113", cs))));}, Next: function(cs){return new Arr(new Suffix("next", Editor.concretes["EditorEng"].rule("_138", cs)));}, Node: function(cs){return new Arr(new Arr(new Suffix("node", Editor.concretes["EditorEng"].rule("_3", cs)), new Suffix("nodes", Editor.concretes["EditorEng"].rule("_113", cs))));}, Norwegian: function(cs){return new Arr(new Arr(Editor.concretes["EditorEng"].rule("_145", cs), Editor.concretes["EditorEng"].rule("_145", cs)));}, Page: function(cs){return new Arr(new Arr(new Suffix("page", Editor.concretes["EditorEng"].rule("_3", cs)), new Suffix("pages", Editor.concretes["EditorEng"].rule("_113", cs))));}, Parse: function(cs){return new Arr(new Int(1), new Suffix("Pars", Editor.concretes["EditorEng"].rule("_78", cs)));}, Paste: function(cs){return new Arr(new Int(1), new Suffix("Past", Editor.concretes["EditorEng"].rule("_78", cs)));}, Previous: function(cs){return new Arr(new Suffix("previous", Editor.concretes["EditorEng"].rule("_138", cs)));}, RandomlyCommand: function(cs){return new Arr(new Seq(Editor.concretes["EditorEng"].rule("_8", cs), Editor.concretes["EditorEng"].rule("_20", cs), Editor.concretes["EditorEng"].rule("_13", cs), Editor.concretes["EditorEng"].rule("_17", cs), new Str("at"), new Str("random")));}, Redo: function(cs){return new Arr(new Int(1), new Suffix("Redo", Editor.concretes["EditorEng"].rule("_160", cs)));}, Refine: function(cs){return new Arr(new Int(1), new Suffix("Refin", Editor.concretes["EditorEng"].rule("_78", cs)));}, Refinement: function(cs){return new Arr(new Arr(new Suffix("refinement", Editor.concretes["EditorEng"].rule("_3", cs)), new Suffix("refinements", Editor.concretes["EditorEng"].rule("_113", cs))));}, Replace: function(cs){return new Arr(new Int(1), new Suffix("Replac", Editor.concretes["EditorEng"].rule("_78", cs)));}, Russian: function(cs){return new Arr(new Arr(Editor.concretes["EditorEng"].rule("_171", cs), Editor.concretes["EditorEng"].rule("_171", cs)));}, Select: function(cs){return new Arr(new Int(1), new Suffix("Select", Editor.concretes["EditorEng"].rule("_70", cs)));}, Show: function(cs){return new Arr(new Int(1), new Suffix("Show", Editor.concretes["EditorEng"].rule("_70", cs)));}, SingleWordCommand: function(cs){return new Arr(new Seq(Editor.concretes["EditorEng"].rule("_8", cs),(new Arr(new Arr(Editor.concretes["EditorEng"].rule("_12", cs), Editor.concretes["EditorEng"].rule("_20", cs), Editor.concretes["EditorEng"].rule("_23", cs)), new Arr(Editor.concretes["EditorEng"].rule("_27", cs), Editor.concretes["EditorEng"].rule("_30", cs), Editor.concretes["EditorEng"].rule("_33", cs)))).sel(Editor.concretes["EditorEng"].rule("_38", cs)).sel(Editor.concretes["EditorEng"].rule("_40", cs))));}, Spanish: function(cs){return new Arr(new Arr(Editor.concretes["EditorEng"].rule("_185", cs), Editor.concretes["EditorEng"].rule("_185", cs)));}, String_N: function(cs){return new Arr(new Arr(new Suffix("string", Editor.concretes["EditorEng"].rule("_3", cs)), new Suffix("strings", Editor.concretes["EditorEng"].rule("_113", cs))));}, Swedish: function(cs){return new Arr(new Arr(Editor.concretes["EditorEng"].rule("_192", cs), Editor.concretes["EditorEng"].rule("_192", cs)));}, This: function(cs){return new Arr(new Int(0), new Str("this"));}, Tree: function(cs){return new Arr(new Arr(new Suffix("tree", Editor.concretes["EditorEng"].rule("_3", cs)), new Suffix("trees", Editor.concretes["EditorEng"].rule("_113", cs))));}, Undo: function(cs){return new Arr(new Int(1), new Suffix("Undo", Editor.concretes["EditorEng"].rule("_160", cs)));}, Wrap: function(cs){return new Arr(new Int(1), new Suffix("Wrap", Editor.concretes["EditorEng"].rule("_70", cs)));}, Wrapper: function(cs){return new Arr(new Arr(new Suffix("wrapper", Editor.concretes["EditorEng"].rule("_3", cs)), new Suffix("wrappers", Editor.concretes["EditorEng"].rule("_113", cs))));}, _10: function(cs){return new Arr(new Str("myself"), Editor.concretes["EditorEng"].rule("_9", cs));}, _100: function(cs){return Editor.concretes["EditorEng"].rule("_15", cs).sel(new Int(1));}, _101: function(cs){return Editor.concretes["EditorEng"].rule("_100", cs).sel(new Int(1));}, _102: function(cs){return new Seq(Editor.concretes["EditorEng"].rule("_99", cs), Editor.concretes["EditorEng"].rule("_101", cs));}, _103: function(cs){return new Arr(Editor.concretes["EditorEng"].rule("_102", cs), Editor.concretes["EditorEng"].rule("_102", cs), Editor.concretes["EditorEng"].rule("_102", cs));}, _109: function(cs){return new Suffix("Finnish", Editor.concretes["EditorEng"].rule("_3", cs));}, _11: function(cs){return cs[0].sel(new Int(0));}, _113: function(cs){return new Arr(new Str(""), new Str(""), new Str("'"));}, _117: function(cs){return new Suffix("French", Editor.concretes["EditorEng"].rule("_3", cs));}, _12: function(cs){return Editor.concretes["EditorEng"].rule("_10", cs).sel(Editor.concretes["EditorEng"].rule("_11", cs));}, _120: function(cs){return new Suffix("German", Editor.concretes["EditorEng"].rule("_3", cs));}, _129: function(cs){return new Suffix("Italian", Editor.concretes["EditorEng"].rule("_3", cs));}, _13: function(cs){return cs[1].sel(new Int(1));}, _138: function(cs){return new Arr(new Str(""), new Str("er"), new Str("est"), new Str("ly"));}, _14: function(cs){return cs[2].sel(new Int(0));}, _145: function(cs){return new Suffix("Norwegian", Editor.concretes["EditorEng"].rule("_3", cs));}, _15: function(cs){return cs[1].sel(new Int(0));}, _16: function(cs){return Editor.concretes["EditorEng"].rule("_14", cs).sel(Editor.concretes["EditorEng"].rule("_15", cs));}, _160: function(cs){return new Arr(new Str(""), new Str("es"), new Str("ed"), new Str("ing"));}, _17: function(cs){return Editor.concretes["EditorEng"].rule("_16", cs).sel(new Int(1));}, _171: function(cs){return new Suffix("Russian", Editor.concretes["EditorEng"].rule("_3", cs));}, _185: function(cs){return new Suffix("Spanish", Editor.concretes["EditorEng"].rule("_3", cs));}, _19: function(cs){return new Arr(new Str("yourself"), Editor.concretes["EditorEng"].rule("_9", cs));}, _192: function(cs){return new Suffix("Swedish", Editor.concretes["EditorEng"].rule("_3", cs));}, _20: function(cs){return Editor.concretes["EditorEng"].rule("_19", cs).sel(Editor.concretes["EditorEng"].rule("_11", cs));}, _208: function(cs){return new Arr(cs[0], cs[0], cs[0], cs[0]);}, _211: function(cs){return new Arr(cs[0], cs[0], cs[0]);}, _22: function(cs){return new Arr(new Str("itself"), Editor.concretes["EditorEng"].rule("_9", cs));}, _23: function(cs){return Editor.concretes["EditorEng"].rule("_22", cs).sel(Editor.concretes["EditorEng"].rule("_11", cs));}, _26: function(cs){return new Arr(new Str("ourselves"), Editor.concretes["EditorEng"].rule("_9", cs));}, _27: function(cs){return Editor.concretes["EditorEng"].rule("_26", cs).sel(Editor.concretes["EditorEng"].rule("_11", cs));}, _29: function(cs){return new Arr(new Str("yourselves"), Editor.concretes["EditorEng"].rule("_9", cs));}, _3: function(cs){return new Arr(new Str(""), new Str(""), new Str("'s"));}, _30: function(cs){return Editor.concretes["EditorEng"].rule("_29", cs).sel(Editor.concretes["EditorEng"].rule("_11", cs));}, _32: function(cs){return new Arr(new Str("themselves"), Editor.concretes["EditorEng"].rule("_9", cs));}, _33: function(cs){return Editor.concretes["EditorEng"].rule("_32", cs).sel(Editor.concretes["EditorEng"].rule("_11", cs));}, _37: function(cs){return new Arr(new Int(0), new Int(1));}, _38: function(cs){return Editor.concretes["EditorEng"].rule("_37", cs).sel(new Int(0));}, _4: function(cs){return new Suffix("Bulgarian", Editor.concretes["EditorEng"].rule("_3", cs));}, _40: function(cs){return Editor.concretes["EditorEng"].rule("_37", cs).sel(new Int(1));}, _44: function(cs){return Editor.concretes["EditorEng"].rule("_14", cs).sel(new Int(0));}, _45: function(cs){return cs[3].sel(new Int(0));}, _46: function(cs){return Editor.concretes["EditorEng"].rule("_45", cs).sel(new Int(0));}, _47: function(cs){return Editor.concretes["EditorEng"].rule("_46", cs).sel(new Int(1));}, _48: function(cs){return new Seq(Editor.concretes["EditorEng"].rule("_44", cs), Editor.concretes["EditorEng"].rule("_47", cs));}, _49: function(cs){return Editor.concretes["EditorEng"].rule("_45", cs).sel(new Int(1));}, _50: function(cs){return Editor.concretes["EditorEng"].rule("_49", cs).sel(new Int(1));}, _51: function(cs){return new Seq(Editor.concretes["EditorEng"].rule("_44", cs), Editor.concretes["EditorEng"].rule("_50", cs));}, _52: function(cs){return new Arr(Editor.concretes["EditorEng"].rule("_48", cs), Editor.concretes["EditorEng"].rule("_51", cs));}, _53: function(cs){return Editor.concretes["EditorEng"].rule("_52", cs).sel(Editor.concretes["EditorEng"].rule("_15", cs));}, _7: function(cs){return cs[0].sel(new Int(1));}, _70: function(cs){return new Arr(new Str(""), new Str("s"), new Str("ed"), new Str("ing"));}, _73: function(cs){return new Suffix("Danish", Editor.concretes["EditorEng"].rule("_3", cs));}, _78: function(cs){return new Arr(new Str("e"), new Str("es"), new Str("ed"), new Str("ing"));}, _8: function(cs){return Editor.concretes["EditorEng"].rule("_7", cs).sel(new Int(0));}, _81: function(cs){return new Suffix("English", Editor.concretes["EditorEng"].rule("_3", cs));}, _9: function(cs){return new Seq();}, _90: function(cs){return new Arr(new Int(1), new Int(2));}, _91: function(cs){return Editor.concretes["EditorEng"].rule("_90", cs).sel(new Int(0));}, _93: function(cs){return Editor.concretes["EditorEng"].rule("_90", cs).sel(new Int(1));}, _95: function(cs){return new Arr(Editor.concretes["EditorEng"].rule("_9", cs), Editor.concretes["EditorEng"].rule("_9", cs), Editor.concretes["EditorEng"].rule("_9", cs));}, _96: function(cs){return new Arr(Editor.concretes["EditorEng"].rule("_95", cs), Editor.concretes["EditorEng"].rule("_95", cs));}, _97: function(cs){return Editor.concretes["EditorEng"].rule("_96", cs).sel(Editor.concretes["EditorEng"].rule("_91", cs));}, _98: function(cs){return Editor.concretes["EditorEng"].rule("_97", cs).sel(Editor.concretes["EditorEng"].rule("_93", cs));}, _99: function(cs){return Editor.concretes["EditorEng"].rule("_11", cs).sel(new Int(0));}, Adjective: function(cs){return new Arr(Editor.concretes["EditorEng"].rule("_208", cs));}, Determiner: function(cs){return new Arr(new Int(0), cs[0]);}, Noun: function(cs){return new Arr(new Arr(Editor.concretes["EditorEng"].rule("_211", cs), Editor.concretes["EditorEng"].rule("_211", cs)));}, Sentence: function(cs){return new Arr(cs[0]);}, Verb: function(cs){return new Arr(new Int(0), Editor.concretes["EditorEng"].rule("_208", cs));}, Int: function(cs){return new Arr(cs[0]);}, Float: function(cs){return new Arr(cs[0]);}, String: function(cs){return new Arr(cs[0]);}}, new Parser("Sentence",[new Rule(10, new FunApp("Wrapper",[]),[],[[new Terminal("wrapper")]]), new Rule(9, new FunApp("Wrapper",[]),[],[[new Terminal("wrapper")]]), new Rule(8, new FunApp("Wrapper",[]),[],[[new Terminal("wrapper's")]]), new Rule(7, new FunApp("Wrapper",[]),[],[[new Terminal("wrappers")]]), new Rule(6, new FunApp("Wrapper",[]),[],[[new Terminal("wrappers")]]), new Rule(5, new FunApp("Wrapper",[]),[],[[new Terminal("wrappers'")]]), new Rule(14, new FunApp("Wrap",[]),[],[[new Terminal("Wrap")]]), new Rule(18, new FunApp("Wrap",[]),[],[[new Terminal("Wraps")]]), new Rule(17, new FunApp("Wrap",[]),[],[[new Terminal("Wraped")]]), new Rule(16, new FunApp("Wrap",[]),[],[[new Terminal("Wraping")]]), new Rule(14, new FunApp("Undo",[]),[],[[new Terminal("Undo")]]), new Rule(18, new FunApp("Undo",[]),[],[[new Terminal("Undoes")]]), new Rule(17, new FunApp("Undo",[]),[],[[new Terminal("Undoed")]]), new Rule(16, new FunApp("Undo",[]),[],[[new Terminal("Undoing")]]), new Rule(10, new FunApp("Tree",[]),[],[[new Terminal("tree")]]), new Rule(9, new FunApp("Tree",[]),[],[[new Terminal("tree")]]), new Rule(8, new FunApp("Tree",[]),[],[[new Terminal("tree's")]]), new Rule(7, new FunApp("Tree",[]),[],[[new Terminal("trees")]]), new Rule(6, new FunApp("Tree",[]),[],[[new Terminal("trees")]]), new Rule(5, new FunApp("Tree",[]),[],[[new Terminal("trees'")]]), new Rule(12, new FunApp("This",[]),[],[[new Terminal("this")]]), new Rule(10, new FunApp("Swedish",[]),[],[[new Terminal("Swedish")]]), new Rule(9, new FunApp("Swedish",[]),[],[[new Terminal("Swedish")]]), new Rule(8, new FunApp("Swedish",[]),[],[[new Terminal("Swedish's")]]), new Rule(7, new FunApp("Swedish",[]),[],[[new Terminal("Swedish")]]), new Rule(6, new FunApp("Swedish",[]),[],[[new Terminal("Swedish")]]), new Rule(5, new FunApp("Swedish",[]),[],[[new Terminal("Swedish's")]]), new Rule(10, new FunApp("String_N",[]),[],[[new Terminal("string")]]), new Rule(9, new FunApp("String_N",[]),[],[[new Terminal("string")]]), new Rule(8, new FunApp("String_N",[]),[],[[new Terminal("string's")]]), new Rule(7, new FunApp("String_N",[]),[],[[new Terminal("strings")]]), new Rule(6, new FunApp("String_N",[]),[],[[new Terminal("strings")]]), new Rule(5, new FunApp("String_N",[]),[],[[new Terminal("strings'")]]), new Rule(10, new FunApp("Spanish",[]),[],[[new Terminal("Spanish")]]), new Rule(9, new FunApp("Spanish",[]),[],[[new Terminal("Spanish")]]), new Rule(8, new FunApp("Spanish",[]),[],[[new Terminal("Spanish's")]]), new Rule(7, new FunApp("Spanish",[]),[],[[new Terminal("Spanish")]]), new Rule(6, new FunApp("Spanish",[]),[],[[new Terminal("Spanish")]]), new Rule(5, new FunApp("Spanish",[]),[],[[new Terminal("Spanish's")]]), new Rule(11, new FunApp("SingleWordCommand",[new Arg(0)]),[14],[[new ArgProj(0, 0)]]), new Rule(11, new FunApp("SingleWordCommand",[new Arg(0)]),[13],[[new ArgProj(0, 0), new Terminal("yourself")]]), new Rule(14, new FunApp("Show",[]),[],[[new Terminal("Show")]]), new Rule(18, new FunApp("Show",[]),[],[[new Terminal("Shows")]]), new Rule(17, new FunApp("Show",[]),[],[[new Terminal("Showed")]]), new Rule(16, new FunApp("Show",[]),[],[[new Terminal("Showing")]]), new Rule(14, new FunApp("Select",[]),[],[[new Terminal("Select")]]), new Rule(18, new FunApp("Select",[]),[],[[new Terminal("Selects")]]), new Rule(17, new FunApp("Select",[]),[],[[new Terminal("Selected")]]), new Rule(16, new FunApp("Select",[]),[],[[new Terminal("Selecting")]]), new Rule(10, new FunApp("Russian",[]),[],[[new Terminal("Russian")]]), new Rule(9, new FunApp("Russian",[]),[],[[new Terminal("Russian")]]), new Rule(8, new FunApp("Russian",[]),[],[[new Terminal("Russian's")]]), new Rule(7, new FunApp("Russian",[]),[],[[new Terminal("Russian")]]), new Rule(6, new FunApp("Russian",[]),[],[[new Terminal("Russian")]]), new Rule(5, new FunApp("Russian",[]),[],[[new Terminal("Russian's")]]), new Rule(14, new FunApp("Replace",[]),[],[[new Terminal("Replace")]]), new Rule(18, new FunApp("Replace",[]),[],[[new Terminal("Replaces")]]), new Rule(17, new FunApp("Replace",[]),[],[[new Terminal("Replaced")]]), new Rule(16, new FunApp("Replace",[]),[],[[new Terminal("Replacing")]]), new Rule(10, new FunApp("Refinement",[]),[],[[new Terminal("refinement")]]), new Rule(9, new FunApp("Refinement",[]),[],[[new Terminal("refinement")]]), new Rule(8, new FunApp("Refinement",[]),[],[[new Terminal("refinement's")]]), new Rule(7, new FunApp("Refinement",[]),[],[[new Terminal("refinements")]]), new Rule(6, new FunApp("Refinement",[]),[],[[new Terminal("refinements")]]), new Rule(5, new FunApp("Refinement",[]),[],[[new Terminal("refinements'")]]), new Rule(14, new FunApp("Refine",[]),[],[[new Terminal("Refine")]]), new Rule(18, new FunApp("Refine",[]),[],[[new Terminal("Refines")]]), new Rule(17, new FunApp("Refine",[]),[],[[new Terminal("Refined")]]), new Rule(16, new FunApp("Refine",[]),[],[[new Terminal("Refining")]]), new Rule(14, new FunApp("Redo",[]),[],[[new Terminal("Redo")]]), new Rule(18, new FunApp("Redo",[]),[],[[new Terminal("Redoes")]]), new Rule(17, new FunApp("Redo",[]),[],[[new Terminal("Redoed")]]), new Rule(16, new FunApp("Redo",[]),[],[[new Terminal("Redoing")]]), new Rule(11, new FunApp("RandomlyCommand",[new Arg(0), new Arg(1), new Arg(2)]),[14, 15, 6],[[new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new Terminal("at"), new Terminal("random")]]), new Rule(11, new FunApp("RandomlyCommand",[new Arg(0), new Arg(1), new Arg(2)]),[13, 15, 6],[[new ArgProj(0, 0), new Terminal("yourself"), new ArgProj(1, 0), new ArgProj(2, 0), new Terminal("at"), new Terminal("random")]]), new Rule(11, new FunApp("RandomlyCommand",[new Arg(0), new Arg(1), new Arg(2)]),[14, 12, 9],[[new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new Terminal("at"), new Terminal("random")]]), new Rule(11, new FunApp("RandomlyCommand",[new Arg(0), new Arg(1), new Arg(2)]),[13, 12, 9],[[new ArgProj(0, 0), new Terminal("yourself"), new ArgProj(1, 0), new ArgProj(2, 0), new Terminal("at"), new Terminal("random")]]), new Rule(4, new FunApp("Previous",[]),[],[[new Terminal("previous")]]), new Rule(3, new FunApp("Previous",[]),[],[[new Terminal("previouser")]]), new Rule(2, new FunApp("Previous",[]),[],[[new Terminal("previousest")]]), new Rule(1, new FunApp("Previous",[]),[],[[new Terminal("previously")]]), new Rule(14, new FunApp("Paste",[]),[],[[new Terminal("Paste")]]), new Rule(18, new FunApp("Paste",[]),[],[[new Terminal("Pastes")]]), new Rule(17, new FunApp("Paste",[]),[],[[new Terminal("Pasted")]]), new Rule(16, new FunApp("Paste",[]),[],[[new Terminal("Pasting")]]), new Rule(14, new FunApp("Parse",[]),[],[[new Terminal("Parse")]]), new Rule(18, new FunApp("Parse",[]),[],[[new Terminal("Parses")]]), new Rule(17, new FunApp("Parse",[]),[],[[new Terminal("Parsed")]]), new Rule(16, new FunApp("Parse",[]),[],[[new Terminal("Parsing")]]), new Rule(10, new FunApp("Page",[]),[],[[new Terminal("page")]]), new Rule(9, new FunApp("Page",[]),[],[[new Terminal("page")]]), new Rule(8, new FunApp("Page",[]),[],[[new Terminal("page's")]]), new Rule(7, new FunApp("Page",[]),[],[[new Terminal("pages")]]), new Rule(6, new FunApp("Page",[]),[],[[new Terminal("pages")]]), new Rule(5, new FunApp("Page",[]),[],[[new Terminal("pages'")]]), new Rule(10, new FunApp("Norwegian",[]),[],[[new Terminal("Norwegian")]]), new Rule(9, new FunApp("Norwegian",[]),[],[[new Terminal("Norwegian")]]), new Rule(8, new FunApp("Norwegian",[]),[],[[new Terminal("Norwegian's")]]), new Rule(7, new FunApp("Norwegian",[]),[],[[new Terminal("Norwegian")]]), new Rule(6, new FunApp("Norwegian",[]),[],[[new Terminal("Norwegian")]]), new Rule(5, new FunApp("Norwegian",[]),[],[[new Terminal("Norwegian's")]]), new Rule(10, new FunApp("Node",[]),[],[[new Terminal("node")]]), new Rule(9, new FunApp("Node",[]),[],[[new Terminal("node")]]), new Rule(8, new FunApp("Node",[]),[],[[new Terminal("node's")]]), new Rule(7, new FunApp("Node",[]),[],[[new Terminal("nodes")]]), new Rule(6, new FunApp("Node",[]),[],[[new Terminal("nodes")]]), new Rule(5, new FunApp("Node",[]),[],[[new Terminal("nodes'")]]), new Rule(4, new FunApp("Next",[]),[],[[new Terminal("next")]]), new Rule(3, new FunApp("Next",[]),[],[[new Terminal("nexter")]]), new Rule(2, new FunApp("Next",[]),[],[[new Terminal("nextest")]]), new Rule(1, new FunApp("Next",[]),[],[[new Terminal("nextly")]]), new Rule(10, new FunApp("Language",[]),[],[[new Terminal("language")]]), new Rule(9, new FunApp("Language",[]),[],[[new Terminal("language")]]), new Rule(8, new FunApp("Language",[]),[],[[new Terminal("language's")]]), new Rule(7, new FunApp("Language",[]),[],[[new Terminal("languages")]]), new Rule(6, new FunApp("Language",[]),[],[[new Terminal("languages")]]), new Rule(5, new FunApp("Language",[]),[],[[new Terminal("languages'")]]), new Rule(11, new FunApp("Label",[new Arg(0)]),[10],[[new ArgProj(0, 0)]]), new Rule(10, new FunApp("Italian",[]),[],[[new Terminal("Italian")]]), new Rule(9, new FunApp("Italian",[]),[],[[new Terminal("Italian")]]), new Rule(8, new FunApp("Italian",[]),[],[[new Terminal("Italian's")]]), new Rule(7, new FunApp("Italian",[]),[],[[new Terminal("Italian")]]), new Rule(6, new FunApp("Italian",[]),[],[[new Terminal("Italian")]]), new Rule(5, new FunApp("Italian",[]),[],[[new Terminal("Italian's")]]), new Rule(10, new FunApp("Integer_N",[]),[],[[new Terminal("integer")]]), new Rule(9, new FunApp("Integer_N",[]),[],[[new Terminal("integer")]]), new Rule(8, new FunApp("Integer_N",[]),[],[[new Terminal("integer's")]]), new Rule(7, new FunApp("Integer_N",[]),[],[[new Terminal("integers")]]), new Rule(6, new FunApp("Integer_N",[]),[],[[new Terminal("integers")]]), new Rule(5, new FunApp("Integer_N",[]),[],[[new Terminal("integers'")]]), new Rule(12, new FunApp("IndefSgDet",[]),[],[[new Terminal("an")]]), new Rule(12, new FunApp("IndefSgDet",[]),[],[[new Terminal("a")]]), new Rule(15, new FunApp("IndefPlDet",[]),[],[[]]), new Rule(10, new FunApp("German",[]),[],[[new Terminal("German")]]), new Rule(9, new FunApp("German",[]),[],[[new Terminal("German")]]), new Rule(8, new FunApp("German",[]),[],[[new Terminal("German's")]]), new Rule(7, new FunApp("German",[]),[],[[new Terminal("German")]]), new Rule(6, new FunApp("German",[]),[],[[new Terminal("German")]]), new Rule(5, new FunApp("German",[]),[],[[new Terminal("German's")]]), new Rule(10, new FunApp("French",[]),[],[[new Terminal("French")]]), new Rule(9, new FunApp("French",[]),[],[[new Terminal("French")]]), new Rule(8, new FunApp("French",[]),[],[[new Terminal("French's")]]), new Rule(7, new FunApp("French",[]),[],[[new Terminal("French")]]), new Rule(6, new FunApp("French",[]),[],[[new Terminal("French")]]), new Rule(5, new FunApp("French",[]),[],[[new Terminal("French's")]]), new Rule(10, new FunApp("Float_N",[]),[],[[new Terminal("float")]]), new Rule(9, new FunApp("Float_N",[]),[],[[new Terminal("float")]]), new Rule(8, new FunApp("Float_N",[]),[],[[new Terminal("float's")]]), new Rule(7, new FunApp("Float_N",[]),[],[[new Terminal("floats")]]), new Rule(6, new FunApp("Float_N",[]),[],[[new Terminal("floats")]]), new Rule(5, new FunApp("Float_N",[]),[],[[new Terminal("floats'")]]), new Rule(10, new FunApp("Finnish",[]),[],[[new Terminal("Finnish")]]), new Rule(9, new FunApp("Finnish",[]),[],[[new Terminal("Finnish")]]), new Rule(8, new FunApp("Finnish",[]),[],[[new Terminal("Finnish's")]]), new Rule(7, new FunApp("Finnish",[]),[],[[new Terminal("Finnish")]]), new Rule(6, new FunApp("Finnish",[]),[],[[new Terminal("Finnish")]]), new Rule(5, new FunApp("Finnish",[]),[],[[new Terminal("Finnish's")]]), new Rule(11, new FunApp("ErrorMessage",[new Arg(0), new Arg(1)]),[4, 6],[[new Terminal("there"), new Terminal("aren't"), new ArgProj(0, 0), new ArgProj(1, 0)]]), new Rule(14, new FunApp("Enter",[]),[],[[new Terminal("Enter")]]), new Rule(18, new FunApp("Enter",[]),[],[[new Terminal("Enters")]]), new Rule(17, new FunApp("Enter",[]),[],[[new Terminal("Entered")]]), new Rule(16, new FunApp("Enter",[]),[],[[new Terminal("Entering")]]), new Rule(10, new FunApp("English",[]),[],[[new Terminal("English")]]), new Rule(9, new FunApp("English",[]),[],[[new Terminal("English")]]), new Rule(8, new FunApp("English",[]),[],[[new Terminal("English's")]]), new Rule(7, new FunApp("English",[]),[],[[new Terminal("English")]]), new Rule(6, new FunApp("English",[]),[],[[new Terminal("English")]]), new Rule(5, new FunApp("English",[]),[],[[new Terminal("English's")]]), new Rule(14, new FunApp("Delete",[]),[],[[new Terminal("Delete")]]), new Rule(18, new FunApp("Delete",[]),[],[[new Terminal("Deletes")]]), new Rule(17, new FunApp("Delete",[]),[],[[new Terminal("Deleted")]]), new Rule(16, new FunApp("Delete",[]),[],[[new Terminal("Deleting")]]), new Rule(12, new FunApp("DefSgDet",[]),[],[[new Terminal("the")]]), new Rule(15, new FunApp("DefPlDet",[]),[],[[new Terminal("the")]]), new Rule(10, new FunApp("Danish",[]),[],[[new Terminal("Danish")]]), new Rule(9, new FunApp("Danish",[]),[],[[new Terminal("Danish")]]), new Rule(8, new FunApp("Danish",[]),[],[[new Terminal("Danish's")]]), new Rule(7, new FunApp("Danish",[]),[],[[new Terminal("Danish")]]), new Rule(6, new FunApp("Danish",[]),[],[[new Terminal("Danish")]]), new Rule(5, new FunApp("Danish",[]),[],[[new Terminal("Danish's")]]), new Rule(14, new FunApp("Cut",[]),[],[[new Terminal("Cut")]]), new Rule(18, new FunApp("Cut",[]),[],[[new Terminal("Cuts")]]), new Rule(17, new FunApp("Cut",[]),[],[[new Terminal("Cuted")]]), new Rule(16, new FunApp("Cut",[]),[],[[new Terminal("Cuting")]]), new Rule(14, new FunApp("Copy",[]),[],[[new Terminal("Copy")]]), new Rule(18, new FunApp("Copy",[]),[],[[new Terminal("Copies")]]), new Rule(17, new FunApp("Copy",[]),[],[[new Terminal("Copied")]]), new Rule(16, new FunApp("Copy",[]),[],[[new Terminal("Copying")]]), new Rule(11, new FunApp("CommandAdj",[new Arg(0), new Arg(1), new Arg(2), new Arg(3)]),[14, 15, 4, 6],[[new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new ArgProj(3, 0)]]), new Rule(11, new FunApp("CommandAdj",[new Arg(0), new Arg(1), new Arg(2), new Arg(3)]),[13, 15, 4, 6],[[new ArgProj(0, 0), new Terminal("yourself"), new ArgProj(1, 0), new ArgProj(2, 0), new ArgProj(3, 0)]]), new Rule(11, new FunApp("CommandAdj",[new Arg(0), new Arg(1), new Arg(2), new Arg(3)]),[14, 12, 4, 9],[[new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new ArgProj(3, 0)]]), new Rule(11, new FunApp("CommandAdj",[new Arg(0), new Arg(1), new Arg(2), new Arg(3)]),[13, 12, 4, 9],[[new ArgProj(0, 0), new Terminal("yourself"), new ArgProj(1, 0), new ArgProj(2, 0), new ArgProj(3, 0)]]), new Rule(11, new FunApp("Command",[new Arg(0), new Arg(1), new Arg(2)]),[14, 15, 6],[[new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0)]]), new Rule(11, new FunApp("Command",[new Arg(0), new Arg(1), new Arg(2)]),[13, 15, 6],[[new ArgProj(0, 0), new Terminal("yourself"), new ArgProj(1, 0), new ArgProj(2, 0)]]), new Rule(11, new FunApp("Command",[new Arg(0), new Arg(1), new Arg(2)]),[14, 12, 9],[[new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0)]]), new Rule(11, new FunApp("Command",[new Arg(0), new Arg(1), new Arg(2)]),[13, 12, 9],[[new ArgProj(0, 0), new Terminal("yourself"), new ArgProj(1, 0), new ArgProj(2, 0)]]), new Rule(10, new FunApp("Bulgarian",[]),[],[[new Terminal("Bulgarian")]]), new Rule(9, new FunApp("Bulgarian",[]),[],[[new Terminal("Bulgarian")]]), new Rule(8, new FunApp("Bulgarian",[]),[],[[new Terminal("Bulgarian's")]]), new Rule(7, new FunApp("Bulgarian",[]),[],[[new Terminal("Bulgarian")]]), new Rule(6, new FunApp("Bulgarian",[]),[],[[new Terminal("Bulgarian")]]), new Rule(5, new FunApp("Bulgarian",[]),[],[[new Terminal("Bulgarian's")]]), new Rule(4, new FunApp("Available",[]),[],[[new Terminal("available")]]), new Rule(3, new FunApp("Available",[]),[],[[new Terminal("availabler")]]), new Rule(2, new FunApp("Available",[]),[],[[new Terminal("availablest")]]), new Rule(1, new FunApp("Available",[]),[],[[new Terminal("availablely")]])],{Adjective:[4, 3, 2, 1], Determiner:[12, 15], Float:[-3], Int:[-2], Noun:[10, 7, 9, 6, 8, 5], Sentence:[11], String:[-1], Verb:[13, 14, 18, 17, 16], _Var:[-4]})), EditorSwe: new GFConcrete({Available: function(cs){return new Arr(new Int(1), new Suffix("tillgänglig", Editor.concretes["EditorSwe"].rule("_0", cs)));}, Bulgarian: function(cs){return new Arr(new Int(0), new Arr(new Arr(new Suffix("Bulgariska", Editor.concretes["EditorSwe"].rule("_3", cs)), new Suffix("Bulgariskan", Editor.concretes["EditorSwe"].rule("_3", cs))), new Arr(new Suffix("Bulgariskor", Editor.concretes["EditorSwe"].rule("_3", cs)), new Suffix("Bulgariskorna", Editor.concretes["EditorSwe"].rule("_3", cs)))));}, Command: function(cs){return new Arr(new Seq(Editor.concretes["EditorSwe"].rule("_16", cs), Editor.concretes["EditorSwe"].rule("_17", cs), Editor.concretes["EditorSwe"].rule("_79", cs)));}, CommandAdj: function(cs){return new Arr(new Seq(Editor.concretes["EditorSwe"].rule("_16", cs), Editor.concretes["EditorSwe"].rule("_17", cs),(new Arr(Editor.concretes["EditorSwe"].rule("_179", cs), Editor.concretes["EditorSwe"].rule("_179", cs), new Arr(new Seq(Editor.concretes["EditorSwe"].rule("_68", cs), Editor.concretes["EditorSwe"].rule("_84", cs), Editor.concretes["EditorSwe"].rule("_175", cs)), new Seq(Editor.concretes["EditorSwe"].rule("_71", cs), Editor.concretes["EditorSwe"].rule("_84", cs), Editor.concretes["EditorSwe"].rule("_175", cs)), Editor.concretes["EditorSwe"].rule("_178", cs)))).sel(Editor.concretes["EditorSwe"].rule("_76", cs)).sel(Editor.concretes["EditorSwe"].rule("_78", cs))));}, Copy: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_18", cs), new Suffix("Kopiera", Editor.concretes["EditorSwe"].rule("_188", cs)), new Int(0));}, Cut: function(cs){return new Arr(new Str("ut"), new Suffix("Klipp", Editor.concretes["EditorSwe"].rule("_191", cs)), new Int(0));}, Danish: function(cs){return new Arr(new Int(0), new Arr(new Arr(new Suffix("Danska", Editor.concretes["EditorSwe"].rule("_3", cs)), new Suffix("Danskan", Editor.concretes["EditorSwe"].rule("_3", cs))), new Arr(new Suffix("Danskor", Editor.concretes["EditorSwe"].rule("_3", cs)), new Suffix("Danskorna", Editor.concretes["EditorSwe"].rule("_3", cs)))));}, DefPlDet: function(cs){return new Arr(new Int(2), new Int(1), new Arr(new Suffix("de", new Arr(new Str(""), new Str(""))), Editor.concretes["EditorSwe"].rule("_204", cs)));}, DefSgDet: function(cs){return new Arr(new Int(2), new Int(0), new Arr(new Suffix("de", new Arr(new Str("n"), new Str("t"))), Editor.concretes["EditorSwe"].rule("_204", cs)));}, Delete: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_18", cs), new Suffix("Radera", Editor.concretes["EditorSwe"].rule("_188", cs)), new Int(0));}, English: function(cs){return new Arr(new Int(0), new Arr(new Arr(new Suffix("Engelska", Editor.concretes["EditorSwe"].rule("_3", cs)), new Suffix("Engelskan", Editor.concretes["EditorSwe"].rule("_3", cs))), new Arr(new Suffix("Engelskor", Editor.concretes["EditorSwe"].rule("_3", cs)), new Suffix("Engelskorna", Editor.concretes["EditorSwe"].rule("_3", cs)))));}, Enter: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_18", cs), new Suffix("Skriv", new Arr(new Str("er"), new Str("s"), new Str(""), new Str("s"), new Str("a"), new Str("as"), new Str("d"), new Str("ds"), new Str("t"), new Str("ts"), new Str("da"), new Str("das"), new Str("da"), new Str("das"), new Str("da"), new Str("das"))), new Int(0));}, ErrorMessage: function(cs){return new Arr(new Seq(new Str("det"), new Str("finns"), new Str("inte"), Editor.concretes["EditorSwe"].rule("_204", cs).sel(Editor.concretes["EditorSwe"].rule("_40", cs)),(new Arr(new Seq(Editor.concretes["EditorSwe"].rule("_230", cs).sel(Editor.concretes["EditorSwe"].rule("_234", cs).sel(Editor.concretes["EditorSwe"].rule("_240", cs).sel(new Int(0))).sel(Editor.concretes["EditorSwe"].rule("_240", cs).sel(new Int(1)))), Editor.concretes["EditorSwe"].rule("_248", cs)), new Seq(Editor.concretes["EditorSwe"].rule("_230", cs).sel(Editor.concretes["EditorSwe"].rule("_234", cs).sel(Editor.concretes["EditorSwe"].rule("_250", cs).sel(new Int(0))).sel(Editor.concretes["EditorSwe"].rule("_250", cs).sel(new Int(1)))), Editor.concretes["EditorSwe"].rule("_248", cs)), new Seq(Editor.concretes["EditorSwe"].rule("_230", cs).sel(Editor.concretes["EditorSwe"].rule("_234", cs).sel(Editor.concretes["EditorSwe"].rule("_257", cs).sel(new Int(0))).sel(Editor.concretes["EditorSwe"].rule("_257", cs).sel(new Int(1)))), Editor.concretes["EditorSwe"].rule("_246", cs).sel(new Int(1)).sel(new Int(0))))).sel(Editor.concretes["EditorSwe"].rule("_39", cs).sel(Editor.concretes["EditorSwe"].rule("_267", cs).sel(new Int(0))).sel(Editor.concretes["EditorSwe"].rule("_267", cs).sel(new Int(1))).sel(Editor.concretes["EditorSwe"].rule("_267", cs).sel(new Int(2))))));}, Finnish: function(cs){return new Arr(new Int(0), new Arr(new Arr(new Suffix("Finska", Editor.concretes["EditorSwe"].rule("_3", cs)), new Suffix("Finskan", Editor.concretes["EditorSwe"].rule("_3", cs))), new Arr(new Suffix("Finskor", Editor.concretes["EditorSwe"].rule("_3", cs)), new Suffix("Finskorna", Editor.concretes["EditorSwe"].rule("_3", cs)))));}, Float_N: function(cs){return new Arr(new Int(1), new Arr(new Arr(Editor.concretes["EditorSwe"].rule("_285", cs), new Suffix("flyttalet", Editor.concretes["EditorSwe"].rule("_3", cs))), new Arr(Editor.concretes["EditorSwe"].rule("_285", cs), new Suffix("flyttalen", Editor.concretes["EditorSwe"].rule("_3", cs)))));}, French: function(cs){return new Arr(new Int(0), new Arr(new Arr(new Suffix("Franska", Editor.concretes["EditorSwe"].rule("_3", cs)), new Suffix("Franskan", Editor.concretes["EditorSwe"].rule("_3", cs))), new Arr(new Suffix("Franskor", Editor.concretes["EditorSwe"].rule("_3", cs)), new Suffix("Franskorna", Editor.concretes["EditorSwe"].rule("_3", cs)))));}, German: function(cs){return new Arr(new Int(0), new Arr(new Arr(new Suffix("Tyska", Editor.concretes["EditorSwe"].rule("_3", cs)), new Suffix("Tyskan", Editor.concretes["EditorSwe"].rule("_3", cs))), new Arr(new Suffix("Tyskor", Editor.concretes["EditorSwe"].rule("_3", cs)), new Suffix("Tyskorna", Editor.concretes["EditorSwe"].rule("_3", cs)))));}, IndefPlDet: function(cs){return new Arr(new Int(0), new Int(1), new Arr(Editor.concretes["EditorSwe"].rule("_204", cs), Editor.concretes["EditorSwe"].rule("_204", cs)));}, IndefSgDet: function(cs){return new Arr(new Int(0), new Int(0), new Arr(Editor.concretes["EditorSwe"].rule("_311", cs), Editor.concretes["EditorSwe"].rule("_311", cs)));}, Integer_N: function(cs){return new Arr(new Int(1), new Arr(new Arr(Editor.concretes["EditorSwe"].rule("_314", cs), new Suffix("heltalet", Editor.concretes["EditorSwe"].rule("_3", cs))), new Arr(Editor.concretes["EditorSwe"].rule("_314", cs), new Suffix("heltalen", Editor.concretes["EditorSwe"].rule("_3", cs)))));}, Italian: function(cs){return new Arr(new Int(0), new Arr(new Arr(new Suffix("Italienska", Editor.concretes["EditorSwe"].rule("_3", cs)), new Suffix("Italienskan", Editor.concretes["EditorSwe"].rule("_3", cs))), new Arr(new Suffix("Italienskor", Editor.concretes["EditorSwe"].rule("_3", cs)), new Suffix("Italienskorna", Editor.concretes["EditorSwe"].rule("_3", cs)))));}, Label: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_225", cs).sel(new Int(0)).sel(new Int(0)));}, Language: function(cs){return new Arr(new Int(1), new Arr(new Arr(Editor.concretes["EditorSwe"].rule("_332", cs), new Suffix("språket", Editor.concretes["EditorSwe"].rule("_3", cs))), new Arr(Editor.concretes["EditorSwe"].rule("_332", cs), new Suffix("språken", Editor.concretes["EditorSwe"].rule("_3", cs)))));}, Next: function(cs){return new Arr(new Int(1), new Suffix("näst", Editor.concretes["EditorSwe"].rule("_0", cs)));}, Node: function(cs){return new Arr(new Int(0), new Arr(new Arr(new Suffix("nod", Editor.concretes["EditorSwe"].rule("_3", cs)), new Suffix("noden", Editor.concretes["EditorSwe"].rule("_3", cs))), new Arr(new Suffix("nodar", Editor.concretes["EditorSwe"].rule("_3", cs)), new Suffix("nodarna", Editor.concretes["EditorSwe"].rule("_3", cs)))));}, Norwegian: function(cs){return new Arr(new Int(0), new Arr(new Arr(new Suffix("Norska", Editor.concretes["EditorSwe"].rule("_3", cs)), new Suffix("Norskan", Editor.concretes["EditorSwe"].rule("_3", cs))), new Arr(new Suffix("Norskor", Editor.concretes["EditorSwe"].rule("_3", cs)), new Suffix("Norskorna", Editor.concretes["EditorSwe"].rule("_3", cs)))));}, Page: function(cs){return new Arr(new Int(0), new Arr(new Arr(new Suffix("sida", Editor.concretes["EditorSwe"].rule("_3", cs)), new Suffix("sidan", Editor.concretes["EditorSwe"].rule("_3", cs))), new Arr(new Suffix("sidor", Editor.concretes["EditorSwe"].rule("_3", cs)), new Suffix("sidorna", Editor.concretes["EditorSwe"].rule("_3", cs)))));}, Parse: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_18", cs), new Suffix("Parsa", Editor.concretes["EditorSwe"].rule("_188", cs)), new Int(0));}, Paste: function(cs){return new Arr(new Str("in"), new Suffix("Klistra", Editor.concretes["EditorSwe"].rule("_188", cs)), new Int(0));}, Previous: function(cs){return new Arr(new Int(1), new Arr(new Str("föregående"), new Str("föregåendes"), new Str("föregående"), new Str("föregåendes"), new Str("föregående"), new Str("föregåendes"), new Str("föregående"), new Str("föregåendes"), new Str("föregående"), new Str("föregåendes"), Editor.concretes["EditorSwe"].rule("_18", cs), new Str("s"), Editor.concretes["EditorSwe"].rule("_18", cs), new Str("s"), new Str("a"), new Str("as")));}, RandomlyCommand: function(cs){return new Arr(new Seq(Editor.concretes["EditorSwe"].rule("_16", cs), Editor.concretes["EditorSwe"].rule("_17", cs), Editor.concretes["EditorSwe"].rule("_79", cs), new Str("slumpmässigt")));}, Redo: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_18", cs), new Suffix("Upprepa", Editor.concretes["EditorSwe"].rule("_188", cs)), new Int(0));}, Refine: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_18", cs), new Suffix("Raffinera", Editor.concretes["EditorSwe"].rule("_188", cs)), new Int(0));}, Refinement: function(cs){return new Arr(new Int(0), new Arr(new Arr(new Suffix("raffinemang", Editor.concretes["EditorSwe"].rule("_3", cs)), new Suffix("raffinemangen", Editor.concretes["EditorSwe"].rule("_3", cs))), new Arr(new Suffix("raffinemangar", Editor.concretes["EditorSwe"].rule("_3", cs)), new Suffix("raffinemangarna", Editor.concretes["EditorSwe"].rule("_3", cs)))));}, Replace: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_18", cs), new Suffix("Ersätt", Editor.concretes["EditorSwe"].rule("_191", cs)), new Int(0));}, Russian: function(cs){return new Arr(new Int(0), new Arr(new Arr(new Suffix("Ryska", Editor.concretes["EditorSwe"].rule("_3", cs)), new Suffix("Ryskan", Editor.concretes["EditorSwe"].rule("_3", cs))), new Arr(new Suffix("Ryskor", Editor.concretes["EditorSwe"].rule("_3", cs)), new Suffix("Ryskorna", Editor.concretes["EditorSwe"].rule("_3", cs)))));}, Select: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_18", cs), new Suffix("Välj", Editor.concretes["EditorSwe"].rule("_191", cs)), new Int(0));}, Show: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_18", cs), new Suffix("Visa", Editor.concretes["EditorSwe"].rule("_188", cs)), new Int(0));}, SingleWordCommand: function(cs){return new Arr(new Seq(Editor.concretes["EditorSwe"].rule("_16", cs), Editor.concretes["EditorSwe"].rule("_17", cs),(new Arr(Editor.concretes["EditorSwe"].rule("_399", cs), Editor.concretes["EditorSwe"].rule("_399", cs), new Arr(Editor.concretes["EditorSwe"].rule("_68", cs), Editor.concretes["EditorSwe"].rule("_71", cs), Editor.concretes["EditorSwe"].rule("_64", cs)))).sel(Editor.concretes["EditorSwe"].rule("_76", cs)).sel(Editor.concretes["EditorSwe"].rule("_78", cs))));}, Spanish: function(cs){return new Arr(new Int(0), new Arr(new Arr(new Suffix("Spanska", Editor.concretes["EditorSwe"].rule("_3", cs)), new Suffix("Spanskan", Editor.concretes["EditorSwe"].rule("_3", cs))), new Arr(new Suffix("Spanskor", Editor.concretes["EditorSwe"].rule("_3", cs)), new Suffix("Spanskorna", Editor.concretes["EditorSwe"].rule("_3", cs)))));}, String_N: function(cs){return new Arr(new Int(0), new Arr(new Arr(new Suffix("sträng", Editor.concretes["EditorSwe"].rule("_3", cs)), new Suffix("strängen", Editor.concretes["EditorSwe"].rule("_3", cs))), new Arr(new Suffix("strängar", Editor.concretes["EditorSwe"].rule("_3", cs)), new Suffix("strängarna", Editor.concretes["EditorSwe"].rule("_3", cs)))));}, Swedish: function(cs){return new Arr(new Int(0), new Arr(new Arr(new Suffix("Svenska", Editor.concretes["EditorSwe"].rule("_3", cs)), new Suffix("Svenskan", Editor.concretes["EditorSwe"].rule("_3", cs))), new Arr(new Suffix("Svenskor", Editor.concretes["EditorSwe"].rule("_3", cs)), new Suffix("Svenskorna", Editor.concretes["EditorSwe"].rule("_3", cs)))));}, This: function(cs){return new Arr(new Int(2), new Int(0), new Arr(Editor.concretes["EditorSwe"].rule("_432", cs), Editor.concretes["EditorSwe"].rule("_432", cs)));}, Tree: function(cs){return new Arr(new Int(1), new Arr(new Arr(Editor.concretes["EditorSwe"].rule("_435", cs), new Suffix("trädet", Editor.concretes["EditorSwe"].rule("_3", cs))), new Arr(Editor.concretes["EditorSwe"].rule("_435", cs), new Suffix("träden", Editor.concretes["EditorSwe"].rule("_3", cs)))));}, Undo: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_18", cs), new Suffix("Ångra", Editor.concretes["EditorSwe"].rule("_188", cs)), new Int(0));}, Wrap: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_18", cs), new Suffix("Förpacka", Editor.concretes["EditorSwe"].rule("_188", cs)), new Int(0));}, Wrapper: function(cs){return new Arr(new Int(0), new Arr(new Arr(new Suffix("förpackning", Editor.concretes["EditorSwe"].rule("_3", cs)), new Suffix("förpackningen", Editor.concretes["EditorSwe"].rule("_3", cs))), new Arr(new Suffix("förpackningar", Editor.concretes["EditorSwe"].rule("_3", cs)), new Suffix("förpackningarna", Editor.concretes["EditorSwe"].rule("_3", cs)))));}, _0: function(cs){return new Arr(new Str(""), new Str("s"), new Str("t"), new Str("ts"), new Str("a"), new Str("as"), new Str("a"), new Str("as"), new Str("a"), new Str("as"), new Str("are"), new Str("ares"), new Str("ast"), new Str("asts"), new Str("aste"), new Str("astes"));}, _100: function(cs){return Editor.concretes["EditorSwe"].rule("_98", cs).sel(Editor.concretes["EditorSwe"].rule("_99", cs));}, _101: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_100", cs), new Int(0));}, _102: function(cs){return Editor.concretes["EditorSwe"].rule("_101", cs).sel(new Int(0));}, _103: function(cs){return Editor.concretes["EditorSwe"].rule("_93", cs).sel(Editor.concretes["EditorSwe"].rule("_102", cs));}, _104: function(cs){return Editor.concretes["EditorSwe"].rule("_101", cs).sel(new Int(1));}, _105: function(cs){return Editor.concretes["EditorSwe"].rule("_103", cs).sel(Editor.concretes["EditorSwe"].rule("_104", cs));}, _106: function(cs){return Editor.concretes["EditorSwe"].rule("_89", cs).sel(Editor.concretes["EditorSwe"].rule("_105", cs));}, _107: function(cs){return cs[3].sel(new Int(1));}, _108: function(cs){return Editor.concretes["EditorSwe"].rule("_107", cs).sel(new Int(0));}, _109: function(cs){return Editor.concretes["EditorSwe"].rule("_108", cs).sel(new Int(0));}, _110: function(cs){return Editor.concretes["EditorSwe"].rule("_109", cs).sel(new Int(0));}, _111: function(cs){return new Seq(Editor.concretes["EditorSwe"].rule("_106", cs), Editor.concretes["EditorSwe"].rule("_110", cs));}, _112: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_100", cs), new Int(1));}, _113: function(cs){return Editor.concretes["EditorSwe"].rule("_112", cs).sel(new Int(0));}, _114: function(cs){return Editor.concretes["EditorSwe"].rule("_93", cs).sel(Editor.concretes["EditorSwe"].rule("_113", cs));}, _115: function(cs){return Editor.concretes["EditorSwe"].rule("_112", cs).sel(new Int(1));}, _116: function(cs){return Editor.concretes["EditorSwe"].rule("_114", cs).sel(Editor.concretes["EditorSwe"].rule("_115", cs));}, _117: function(cs){return Editor.concretes["EditorSwe"].rule("_89", cs).sel(Editor.concretes["EditorSwe"].rule("_116", cs));}, _118: function(cs){return new Seq(Editor.concretes["EditorSwe"].rule("_117", cs), Editor.concretes["EditorSwe"].rule("_110", cs));}, _119: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_100", cs), new Int(2));}, _12: function(cs){return cs[0].sel(new Int(1));}, _120: function(cs){return Editor.concretes["EditorSwe"].rule("_119", cs).sel(new Int(0));}, _121: function(cs){return Editor.concretes["EditorSwe"].rule("_93", cs).sel(Editor.concretes["EditorSwe"].rule("_120", cs));}, _122: function(cs){return Editor.concretes["EditorSwe"].rule("_119", cs).sel(new Int(1));}, _123: function(cs){return Editor.concretes["EditorSwe"].rule("_121", cs).sel(Editor.concretes["EditorSwe"].rule("_122", cs));}, _124: function(cs){return Editor.concretes["EditorSwe"].rule("_89", cs).sel(Editor.concretes["EditorSwe"].rule("_123", cs));}, _125: function(cs){return Editor.concretes["EditorSwe"].rule("_108", cs).sel(new Int(1));}, _126: function(cs){return Editor.concretes["EditorSwe"].rule("_125", cs).sel(new Int(0));}, _127: function(cs){return new Seq(Editor.concretes["EditorSwe"].rule("_124", cs), Editor.concretes["EditorSwe"].rule("_126", cs));}, _128: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_111", cs), Editor.concretes["EditorSwe"].rule("_118", cs), Editor.concretes["EditorSwe"].rule("_127", cs));}, _129: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_40", cs), new Int(1), new Int(0));}, _13: function(cs){return new Arr(new Int(2), new Int(3), new Int(2));}, _130: function(cs){return Editor.concretes["EditorSwe"].rule("_129", cs).sel(new Int(0));}, _131: function(cs){return Editor.concretes["EditorSwe"].rule("_39", cs).sel(Editor.concretes["EditorSwe"].rule("_130", cs));}, _132: function(cs){return Editor.concretes["EditorSwe"].rule("_129", cs).sel(new Int(1));}, _133: function(cs){return Editor.concretes["EditorSwe"].rule("_131", cs).sel(Editor.concretes["EditorSwe"].rule("_132", cs));}, _134: function(cs){return Editor.concretes["EditorSwe"].rule("_129", cs).sel(new Int(2));}, _135: function(cs){return Editor.concretes["EditorSwe"].rule("_133", cs).sel(Editor.concretes["EditorSwe"].rule("_134", cs));}, _136: function(cs){return Editor.concretes["EditorSwe"].rule("_128", cs).sel(Editor.concretes["EditorSwe"].rule("_135", cs));}, _137: function(cs){return Editor.concretes["EditorSwe"].rule("_37", cs).sel(Editor.concretes["EditorSwe"].rule("_83", cs));}, _138: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_137", cs), new Int(3), new Int(3));}, _139: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_137", cs), new Int(4), new Int(4));}, _14: function(cs){return cs[0].sel(new Int(2));}, _140: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_138", cs), Editor.concretes["EditorSwe"].rule("_138", cs), Editor.concretes["EditorSwe"].rule("_139", cs));}, _141: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_83", cs), new Int(1));}, _142: function(cs){return Editor.concretes["EditorSwe"].rule("_141", cs).sel(new Int(0));}, _143: function(cs){return Editor.concretes["EditorSwe"].rule("_95", cs).sel(Editor.concretes["EditorSwe"].rule("_142", cs));}, _144: function(cs){return Editor.concretes["EditorSwe"].rule("_141", cs).sel(new Int(1));}, _145: function(cs){return Editor.concretes["EditorSwe"].rule("_143", cs).sel(Editor.concretes["EditorSwe"].rule("_144", cs));}, _146: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_145", cs), new Int(0));}, _147: function(cs){return Editor.concretes["EditorSwe"].rule("_146", cs).sel(new Int(0));}, _148: function(cs){return Editor.concretes["EditorSwe"].rule("_140", cs).sel(Editor.concretes["EditorSwe"].rule("_147", cs));}, _149: function(cs){return Editor.concretes["EditorSwe"].rule("_146", cs).sel(new Int(1));}, _15: function(cs){return Editor.concretes["EditorSwe"].rule("_13", cs).sel(Editor.concretes["EditorSwe"].rule("_14", cs));}, _150: function(cs){return Editor.concretes["EditorSwe"].rule("_148", cs).sel(Editor.concretes["EditorSwe"].rule("_149", cs));}, _151: function(cs){return Editor.concretes["EditorSwe"].rule("_89", cs).sel(Editor.concretes["EditorSwe"].rule("_150", cs));}, _152: function(cs){return Editor.concretes["EditorSwe"].rule("_107", cs).sel(new Int(1));}, _153: function(cs){return Editor.concretes["EditorSwe"].rule("_152", cs).sel(new Int(0));}, _154: function(cs){return Editor.concretes["EditorSwe"].rule("_153", cs).sel(new Int(0));}, _155: function(cs){return new Seq(Editor.concretes["EditorSwe"].rule("_151", cs), Editor.concretes["EditorSwe"].rule("_154", cs));}, _156: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_145", cs), new Int(1));}, _157: function(cs){return Editor.concretes["EditorSwe"].rule("_156", cs).sel(new Int(0));}, _158: function(cs){return Editor.concretes["EditorSwe"].rule("_140", cs).sel(Editor.concretes["EditorSwe"].rule("_157", cs));}, _159: function(cs){return Editor.concretes["EditorSwe"].rule("_156", cs).sel(new Int(1));}, _16: function(cs){return Editor.concretes["EditorSwe"].rule("_12", cs).sel(Editor.concretes["EditorSwe"].rule("_15", cs));}, _160: function(cs){return Editor.concretes["EditorSwe"].rule("_158", cs).sel(Editor.concretes["EditorSwe"].rule("_159", cs));}, _161: function(cs){return Editor.concretes["EditorSwe"].rule("_89", cs).sel(Editor.concretes["EditorSwe"].rule("_160", cs));}, _162: function(cs){return new Seq(Editor.concretes["EditorSwe"].rule("_161", cs), Editor.concretes["EditorSwe"].rule("_154", cs));}, _163: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_145", cs), new Int(2));}, _164: function(cs){return Editor.concretes["EditorSwe"].rule("_163", cs).sel(new Int(0));}, _165: function(cs){return Editor.concretes["EditorSwe"].rule("_140", cs).sel(Editor.concretes["EditorSwe"].rule("_164", cs));}, _166: function(cs){return Editor.concretes["EditorSwe"].rule("_163", cs).sel(new Int(1));}, _167: function(cs){return Editor.concretes["EditorSwe"].rule("_165", cs).sel(Editor.concretes["EditorSwe"].rule("_166", cs));}, _168: function(cs){return Editor.concretes["EditorSwe"].rule("_89", cs).sel(Editor.concretes["EditorSwe"].rule("_167", cs));}, _169: function(cs){return Editor.concretes["EditorSwe"].rule("_152", cs).sel(new Int(1));}, _17: function(cs){return cs[0].sel(new Int(0));}, _170: function(cs){return Editor.concretes["EditorSwe"].rule("_169", cs).sel(new Int(0));}, _171: function(cs){return new Seq(Editor.concretes["EditorSwe"].rule("_168", cs), Editor.concretes["EditorSwe"].rule("_170", cs));}, _172: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_155", cs), Editor.concretes["EditorSwe"].rule("_162", cs), Editor.concretes["EditorSwe"].rule("_171", cs));}, _173: function(cs){return Editor.concretes["EditorSwe"].rule("_172", cs).sel(Editor.concretes["EditorSwe"].rule("_135", cs));}, _174: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_136", cs), Editor.concretes["EditorSwe"].rule("_173", cs));}, _175: function(cs){return Editor.concretes["EditorSwe"].rule("_174", cs).sel(Editor.concretes["EditorSwe"].rule("_57", cs));}, _176: function(cs){return new Seq(Editor.concretes["EditorSwe"].rule("_20", cs), Editor.concretes["EditorSwe"].rule("_84", cs), Editor.concretes["EditorSwe"].rule("_175", cs));}, _177: function(cs){return new Seq(Editor.concretes["EditorSwe"].rule("_61", cs), Editor.concretes["EditorSwe"].rule("_84", cs), Editor.concretes["EditorSwe"].rule("_175", cs));}, _178: function(cs){return new Seq(Editor.concretes["EditorSwe"].rule("_64", cs), Editor.concretes["EditorSwe"].rule("_84", cs), Editor.concretes["EditorSwe"].rule("_175", cs));}, _179: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_176", cs), Editor.concretes["EditorSwe"].rule("_177", cs), Editor.concretes["EditorSwe"].rule("_178", cs));}, _18: function(cs){return new Seq();}, _188: function(cs){return new Arr(new Str("r"), new Str("s"), new Str(""), new Str("s"), new Str(""), new Str("s"), new Str("d"), new Str("ds"), new Str("t"), new Str("ts"), new Str("de"), new Str("des"), new Str("de"), new Str("des"), new Str("de"), new Str("des"));}, _19: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_18", cs), Editor.concretes["EditorSwe"].rule("_18", cs), new Str("mig"));}, _191: function(cs){return new Arr(new Str("er"), new Str("s"), new Str(""), new Str("s"), new Str("a"), new Str("as"), new Str("t"), new Str("ts"), new Str("t"), new Str("ts"), new Str("ta"), new Str("tas"), new Str("ta"), new Str("tas"), new Str("ta"), new Str("tas"));}, _20: function(cs){return Editor.concretes["EditorSwe"].rule("_19", cs).sel(Editor.concretes["EditorSwe"].rule("_14", cs));}, _204: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_18", cs), Editor.concretes["EditorSwe"].rule("_18", cs));}, _21: function(cs){return cs[1].sel(new Int(2));}, _22: function(cs){return Editor.concretes["EditorSwe"].rule("_21", cs).sel(new Int(1));}, _225: function(cs){return Editor.concretes["EditorSwe"].rule("_12", cs).sel(new Int(0));}, _226: function(cs){return Editor.concretes["EditorSwe"].rule("_12", cs).sel(new Int(2));}, _227: function(cs){return Editor.concretes["EditorSwe"].rule("_12", cs).sel(new Int(4));}, _228: function(cs){return Editor.concretes["EditorSwe"].rule("_12", cs).sel(new Int(6));}, _229: function(cs){return Editor.concretes["EditorSwe"].rule("_12", cs).sel(new Int(8));}, _23: function(cs){return cs[2].sel(new Int(0));}, _230: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_225", cs), Editor.concretes["EditorSwe"].rule("_226", cs), Editor.concretes["EditorSwe"].rule("_227", cs), Editor.concretes["EditorSwe"].rule("_228", cs), Editor.concretes["EditorSwe"].rule("_229", cs));}, _231: function(cs){return Editor.concretes["EditorSwe"].rule("_37", cs).sel(Editor.concretes["EditorSwe"].rule("_40", cs));}, _232: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_231", cs), new Int(3), new Int(3));}, _233: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_231", cs), new Int(4), new Int(4));}, _234: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_232", cs), Editor.concretes["EditorSwe"].rule("_232", cs), Editor.concretes["EditorSwe"].rule("_233", cs));}, _235: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_40", cs), new Int(1));}, _236: function(cs){return Editor.concretes["EditorSwe"].rule("_235", cs).sel(new Int(0));}, _237: function(cs){return Editor.concretes["EditorSwe"].rule("_95", cs).sel(Editor.concretes["EditorSwe"].rule("_236", cs));}, _238: function(cs){return Editor.concretes["EditorSwe"].rule("_235", cs).sel(new Int(1));}, _239: function(cs){return Editor.concretes["EditorSwe"].rule("_237", cs).sel(Editor.concretes["EditorSwe"].rule("_238", cs));}, _24: function(cs){return Editor.concretes["EditorSwe"].rule("_22", cs).sel(Editor.concretes["EditorSwe"].rule("_23", cs));}, _240: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_239", cs), new Int(0));}, _246: function(cs){return Editor.concretes["EditorSwe"].rule("_57", cs).sel(new Int(1));}, _247: function(cs){return Editor.concretes["EditorSwe"].rule("_246", cs).sel(new Int(0));}, _248: function(cs){return Editor.concretes["EditorSwe"].rule("_247", cs).sel(new Int(0));}, _25: function(cs){return cs[2].sel(new Int(1));}, _250: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_239", cs), new Int(1));}, _257: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_239", cs), new Int(2));}, _26: function(cs){return Editor.concretes["EditorSwe"].rule("_25", cs).sel(new Int(0));}, _267: function(cs){return new Arr(new Int(0), new Int(1), new Int(0));}, _27: function(cs){return Editor.concretes["EditorSwe"].rule("_26", cs).sel(new Int(0));}, _28: function(cs){return Editor.concretes["EditorSwe"].rule("_27", cs).sel(new Int(0));}, _285: function(cs){return new Suffix("flyttal", Editor.concretes["EditorSwe"].rule("_3", cs));}, _29: function(cs){return Editor.concretes["EditorSwe"].rule("_26", cs).sel(new Int(1));}, _3: function(cs){return new Arr(new Str(""), new Str("s"));}, _30: function(cs){return Editor.concretes["EditorSwe"].rule("_29", cs).sel(new Int(0));}, _31: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_28", cs), Editor.concretes["EditorSwe"].rule("_28", cs), Editor.concretes["EditorSwe"].rule("_30", cs));}, _310: function(cs){return new Arr(new Str("n"), new Str("tt"));}, _311: function(cs){return new Suffix("e", Editor.concretes["EditorSwe"].rule("_310", cs));}, _314: function(cs){return new Suffix("heltal", Editor.concretes["EditorSwe"].rule("_3", cs));}, _32: function(cs){return new Arr(new Int(0), new Int(0));}, _33: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_32", cs), Editor.concretes["EditorSwe"].rule("_32", cs));}, _332: function(cs){return new Suffix("språk", Editor.concretes["EditorSwe"].rule("_3", cs));}, _34: function(cs){return new Arr(new Int(1), new Int(1));}, _35: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_34", cs), Editor.concretes["EditorSwe"].rule("_34", cs));}, _36: function(cs){return new Arr(new Int(1), new Int(2));}, _37: function(cs){return new Arr(new Int(2), new Int(2));}, _38: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_36", cs), Editor.concretes["EditorSwe"].rule("_37", cs));}, _39: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_33", cs), Editor.concretes["EditorSwe"].rule("_35", cs), Editor.concretes["EditorSwe"].rule("_38", cs));}, _399: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_20", cs), Editor.concretes["EditorSwe"].rule("_61", cs), Editor.concretes["EditorSwe"].rule("_64", cs));}, _40: function(cs){return cs[1].sel(new Int(0));}, _41: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_40", cs), new Int(1), new Int(1));}, _42: function(cs){return Editor.concretes["EditorSwe"].rule("_41", cs).sel(new Int(0));}, _43: function(cs){return Editor.concretes["EditorSwe"].rule("_39", cs).sel(Editor.concretes["EditorSwe"].rule("_42", cs));}, _430: function(cs){return new Seq(new Str("den"), new Str("här"));}, _431: function(cs){return new Seq(new Str("det"), new Str("här"));}, _432: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_430", cs), Editor.concretes["EditorSwe"].rule("_431", cs));}, _435: function(cs){return new Suffix("träd", Editor.concretes["EditorSwe"].rule("_3", cs));}, _44: function(cs){return Editor.concretes["EditorSwe"].rule("_41", cs).sel(new Int(1));}, _45: function(cs){return Editor.concretes["EditorSwe"].rule("_43", cs).sel(Editor.concretes["EditorSwe"].rule("_44", cs));}, _454: function(cs){return new Arr(cs[0], cs[0], cs[0], cs[0], cs[0], cs[0], cs[0], cs[0], cs[0], cs[0], cs[0], cs[0], cs[0], cs[0], cs[0], cs[0]);}, _456: function(cs){return new Arr(cs[0], cs[0]);}, _457: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_456", cs), Editor.concretes["EditorSwe"].rule("_456", cs));}, _46: function(cs){return Editor.concretes["EditorSwe"].rule("_41", cs).sel(new Int(2));}, _47: function(cs){return Editor.concretes["EditorSwe"].rule("_45", cs).sel(Editor.concretes["EditorSwe"].rule("_46", cs));}, _48: function(cs){return Editor.concretes["EditorSwe"].rule("_31", cs).sel(Editor.concretes["EditorSwe"].rule("_47", cs));}, _49: function(cs){return Editor.concretes["EditorSwe"].rule("_25", cs).sel(new Int(1));}, _50: function(cs){return Editor.concretes["EditorSwe"].rule("_49", cs).sel(new Int(0));}, _51: function(cs){return Editor.concretes["EditorSwe"].rule("_50", cs).sel(new Int(0));}, _52: function(cs){return Editor.concretes["EditorSwe"].rule("_49", cs).sel(new Int(1));}, _53: function(cs){return Editor.concretes["EditorSwe"].rule("_52", cs).sel(new Int(0));}, _54: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_51", cs), Editor.concretes["EditorSwe"].rule("_51", cs), Editor.concretes["EditorSwe"].rule("_53", cs));}, _55: function(cs){return Editor.concretes["EditorSwe"].rule("_54", cs).sel(Editor.concretes["EditorSwe"].rule("_47", cs));}, _56: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_48", cs), Editor.concretes["EditorSwe"].rule("_55", cs));}, _57: function(cs){return cs[1].sel(new Int(1));}, _58: function(cs){return Editor.concretes["EditorSwe"].rule("_56", cs).sel(Editor.concretes["EditorSwe"].rule("_57", cs));}, _59: function(cs){return new Seq(Editor.concretes["EditorSwe"].rule("_20", cs), Editor.concretes["EditorSwe"].rule("_24", cs), Editor.concretes["EditorSwe"].rule("_58", cs));}, _60: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_18", cs), Editor.concretes["EditorSwe"].rule("_18", cs), new Str("dig"));}, _61: function(cs){return Editor.concretes["EditorSwe"].rule("_60", cs).sel(Editor.concretes["EditorSwe"].rule("_14", cs));}, _62: function(cs){return new Seq(Editor.concretes["EditorSwe"].rule("_61", cs), Editor.concretes["EditorSwe"].rule("_24", cs), Editor.concretes["EditorSwe"].rule("_58", cs));}, _63: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_18", cs), Editor.concretes["EditorSwe"].rule("_18", cs), new Str("sig"));}, _64: function(cs){return Editor.concretes["EditorSwe"].rule("_63", cs).sel(Editor.concretes["EditorSwe"].rule("_14", cs));}, _65: function(cs){return new Seq(Editor.concretes["EditorSwe"].rule("_64", cs), Editor.concretes["EditorSwe"].rule("_24", cs), Editor.concretes["EditorSwe"].rule("_58", cs));}, _66: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_59", cs), Editor.concretes["EditorSwe"].rule("_62", cs), Editor.concretes["EditorSwe"].rule("_65", cs));}, _67: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_18", cs), Editor.concretes["EditorSwe"].rule("_18", cs), new Str("oss"));}, _68: function(cs){return Editor.concretes["EditorSwe"].rule("_67", cs).sel(Editor.concretes["EditorSwe"].rule("_14", cs));}, _69: function(cs){return new Seq(Editor.concretes["EditorSwe"].rule("_68", cs), Editor.concretes["EditorSwe"].rule("_24", cs), Editor.concretes["EditorSwe"].rule("_58", cs));}, _70: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_18", cs), Editor.concretes["EditorSwe"].rule("_18", cs), new Str("er"));}, _71: function(cs){return Editor.concretes["EditorSwe"].rule("_70", cs).sel(Editor.concretes["EditorSwe"].rule("_14", cs));}, _72: function(cs){return new Seq(Editor.concretes["EditorSwe"].rule("_71", cs), Editor.concretes["EditorSwe"].rule("_24", cs), Editor.concretes["EditorSwe"].rule("_58", cs));}, _73: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_69", cs), Editor.concretes["EditorSwe"].rule("_72", cs), Editor.concretes["EditorSwe"].rule("_65", cs));}, _74: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_66", cs), Editor.concretes["EditorSwe"].rule("_66", cs), Editor.concretes["EditorSwe"].rule("_73", cs));}, _75: function(cs){return new Arr(new Int(0), new Int(1));}, _76: function(cs){return Editor.concretes["EditorSwe"].rule("_75", cs).sel(new Int(0));}, _77: function(cs){return Editor.concretes["EditorSwe"].rule("_74", cs).sel(Editor.concretes["EditorSwe"].rule("_76", cs));}, _78: function(cs){return Editor.concretes["EditorSwe"].rule("_75", cs).sel(new Int(1));}, _79: function(cs){return Editor.concretes["EditorSwe"].rule("_77", cs).sel(Editor.concretes["EditorSwe"].rule("_78", cs));}, _82: function(cs){return Editor.concretes["EditorSwe"].rule("_21", cs).sel(new Int(0));}, _83: function(cs){return cs[3].sel(new Int(0));}, _84: function(cs){return Editor.concretes["EditorSwe"].rule("_82", cs).sel(Editor.concretes["EditorSwe"].rule("_83", cs));}, _85: function(cs){return Editor.concretes["EditorSwe"].rule("_25", cs).sel(new Int(2));}, _86: function(cs){return Editor.concretes["EditorSwe"].rule("_25", cs).sel(new Int(4));}, _87: function(cs){return Editor.concretes["EditorSwe"].rule("_25", cs).sel(new Int(6));}, _88: function(cs){return Editor.concretes["EditorSwe"].rule("_25", cs).sel(new Int(8));}, _89: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_26", cs), Editor.concretes["EditorSwe"].rule("_85", cs), Editor.concretes["EditorSwe"].rule("_86", cs), Editor.concretes["EditorSwe"].rule("_87", cs), Editor.concretes["EditorSwe"].rule("_88", cs));}, _90: function(cs){return Editor.concretes["EditorSwe"].rule("_75", cs).sel(Editor.concretes["EditorSwe"].rule("_83", cs));}, _91: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_90", cs), new Int(3), new Int(3));}, _92: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_90", cs), new Int(4), new Int(4));}, _93: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_91", cs), Editor.concretes["EditorSwe"].rule("_91", cs), Editor.concretes["EditorSwe"].rule("_92", cs));}, _94: function(cs){return new Arr(new Int(0), new Int(2));}, _95: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_94", cs), Editor.concretes["EditorSwe"].rule("_36", cs));}, _96: function(cs){return new Arr(Editor.concretes["EditorSwe"].rule("_83", cs), new Int(0));}, _97: function(cs){return Editor.concretes["EditorSwe"].rule("_96", cs).sel(new Int(0));}, _98: function(cs){return Editor.concretes["EditorSwe"].rule("_95", cs).sel(Editor.concretes["EditorSwe"].rule("_97", cs));}, _99: function(cs){return Editor.concretes["EditorSwe"].rule("_96", cs).sel(new Int(1));}, Adjective: function(cs){return new Arr(new Int(0), Editor.concretes["EditorSwe"].rule("_454", cs));}, Determiner: function(cs){return new Arr(new Int(0), new Int(0), Editor.concretes["EditorSwe"].rule("_457", cs));}, Noun: function(cs){return new Arr(new Int(0), new Arr(Editor.concretes["EditorSwe"].rule("_457", cs), Editor.concretes["EditorSwe"].rule("_457", cs)));}, Sentence: function(cs){return new Arr(cs[0]);}, Verb: function(cs){return new Arr(cs[0], Editor.concretes["EditorSwe"].rule("_454", cs), new Int(0));}, Int: function(cs){return new Arr(cs[0]);}, Float: function(cs){return new Arr(cs[0]);}, String: function(cs){return new Arr(cs[0]);}}, new Parser("Sentence",[new Rule(27, new FunApp("Copy",[]),[],[[],[new Terminal("Kopiera")]]), new Rule(27, new FunApp("Cut",[]),[],[[new Terminal("ut")],[new Terminal("Klipp")]]), new Rule(27, new FunApp("Delete",[]),[],[[],[new Terminal("Radera")]]), new Rule(27, new FunApp("Enter",[]),[],[[],[new Terminal("Skriv")]]), new Rule(27, new FunApp("Parse",[]),[],[[],[new Terminal("Parsa")]]), new Rule(27, new FunApp("Paste",[]),[],[[new Terminal("in")],[new Terminal("Klistra")]]), new Rule(27, new FunApp("Redo",[]),[],[[],[new Terminal("Upprepa")]]), new Rule(27, new FunApp("Refine",[]),[],[[],[new Terminal("Raffinera")]]), new Rule(27, new FunApp("Replace",[]),[],[[],[new Terminal("Ersätt")]]), new Rule(27, new FunApp("Select",[]),[],[[],[new Terminal("Välj")]]), new Rule(27, new FunApp("Show",[]),[],[[],[new Terminal("Visa")]]), new Rule(27, new FunApp("Undo",[]),[],[[],[new Terminal("Ångra")]]), new Rule(27, new FunApp("Wrap",[]),[],[[],[new Terminal("Förpacka")]]), new Rule(24, new FunApp("Wrapper",[]),[],[[new Terminal("förpackning")]]), new Rule(23, new FunApp("Wrapper",[]),[],[[new Terminal("förpacknings")]]), new Rule(22, new FunApp("Wrapper",[]),[],[[new Terminal("förpackningen")]]), new Rule(21, new FunApp("Wrapper",[]),[],[[new Terminal("förpackningens")]]), new Rule(20, new FunApp("Wrapper",[]),[],[[new Terminal("förpackningar")]]), new Rule(19, new FunApp("Wrapper",[]),[],[[new Terminal("förpackningars")]]), new Rule(18, new FunApp("Wrapper",[]),[],[[new Terminal("förpackningarna")]]), new Rule(17, new FunApp("Wrapper",[]),[],[[new Terminal("förpackningarnas")]]), new Rule(83, new FunApp("Wrap",[]),[],[[]]), new Rule(82, new FunApp("Wrap",[]),[],[[new Terminal("Förpackar")]]), new Rule(81, new FunApp("Wrap",[]),[],[[new Terminal("Förpackas")]]), new Rule(80, new FunApp("Wrap",[]),[],[[new Terminal("Förpacka")]]), new Rule(79, new FunApp("Wrap",[]),[],[[new Terminal("Förpackas")]]), new Rule(78, new FunApp("Wrap",[]),[],[[new Terminal("Förpacka")]]), new Rule(77, new FunApp("Wrap",[]),[],[[new Terminal("Förpackas")]]), new Rule(76, new FunApp("Wrap",[]),[],[[new Terminal("Förpackad")]]), new Rule(75, new FunApp("Wrap",[]),[],[[new Terminal("Förpackads")]]), new Rule(74, new FunApp("Wrap",[]),[],[[new Terminal("Förpackat")]]), new Rule(73, new FunApp("Wrap",[]),[],[[new Terminal("Förpackats")]]), new Rule(72, new FunApp("Wrap",[]),[],[[new Terminal("Förpackade")]]), new Rule(71, new FunApp("Wrap",[]),[],[[new Terminal("Förpackades")]]), new Rule(70, new FunApp("Wrap",[]),[],[[new Terminal("Förpackade")]]), new Rule(69, new FunApp("Wrap",[]),[],[[new Terminal("Förpackades")]]), new Rule(68, new FunApp("Wrap",[]),[],[[new Terminal("Förpackade")]]), new Rule(67, new FunApp("Wrap",[]),[],[[new Terminal("Förpackades")]]), new Rule(83, new FunApp("Undo",[]),[],[[]]), new Rule(82, new FunApp("Undo",[]),[],[[new Terminal("Ångrar")]]), new Rule(81, new FunApp("Undo",[]),[],[[new Terminal("Ångras")]]), new Rule(80, new FunApp("Undo",[]),[],[[new Terminal("Ångra")]]), new Rule(79, new FunApp("Undo",[]),[],[[new Terminal("Ångras")]]), new Rule(78, new FunApp("Undo",[]),[],[[new Terminal("Ångra")]]), new Rule(77, new FunApp("Undo",[]),[],[[new Terminal("Ångras")]]), new Rule(76, new FunApp("Undo",[]),[],[[new Terminal("Ångrad")]]), new Rule(75, new FunApp("Undo",[]),[],[[new Terminal("Ångrads")]]), new Rule(74, new FunApp("Undo",[]),[],[[new Terminal("Ångrat")]]), new Rule(73, new FunApp("Undo",[]),[],[[new Terminal("Ångrats")]]), new Rule(72, new FunApp("Undo",[]),[],[[new Terminal("Ångrade")]]), new Rule(71, new FunApp("Undo",[]),[],[[new Terminal("Ångrades")]]), new Rule(70, new FunApp("Undo",[]),[],[[new Terminal("Ångrade")]]), new Rule(69, new FunApp("Undo",[]),[],[[new Terminal("Ångrades")]]), new Rule(68, new FunApp("Undo",[]),[],[[new Terminal("Ångrade")]]), new Rule(67, new FunApp("Undo",[]),[],[[new Terminal("Ångrades")]]), new Rule(30, new FunApp("Tree",[]),[],[[new Terminal("träd")]]), new Rule(87, new FunApp("Tree",[]),[],[[new Terminal("träds")]]), new Rule(35, new FunApp("Tree",[]),[],[[new Terminal("trädet")]]), new Rule(86, new FunApp("Tree",[]),[],[[new Terminal("trädets")]]), new Rule(38, new FunApp("Tree",[]),[],[[new Terminal("träd")]]), new Rule(85, new FunApp("Tree",[]),[],[[new Terminal("träds")]]), new Rule(43, new FunApp("Tree",[]),[],[[new Terminal("träden")]]), new Rule(84, new FunApp("Tree",[]),[],[[new Terminal("trädens")]]), new Rule(55, new FunApp("This",[]),[],[[new Terminal("den"), new Terminal("här")]]), new Rule(56, new FunApp("This",[]),[],[[new Terminal("det"), new Terminal("här")]]), new Rule(34, new FunApp("This",[]),[],[[new Terminal("den"), new Terminal("här")]]), new Rule(36, new FunApp("This",[]),[],[[new Terminal("det"), new Terminal("här")]]), new Rule(24, new FunApp("Swedish",[]),[],[[new Terminal("Svenska")]]), new Rule(23, new FunApp("Swedish",[]),[],[[new Terminal("Svenskas")]]), new Rule(22, new FunApp("Swedish",[]),[],[[new Terminal("Svenskan")]]), new Rule(21, new FunApp("Swedish",[]),[],[[new Terminal("Svenskans")]]), new Rule(20, new FunApp("Swedish",[]),[],[[new Terminal("Svenskor")]]), new Rule(19, new FunApp("Swedish",[]),[],[[new Terminal("Svenskors")]]), new Rule(18, new FunApp("Swedish",[]),[],[[new Terminal("Svenskorna")]]), new Rule(17, new FunApp("Swedish",[]),[],[[new Terminal("Svenskornas")]]), new Rule(24, new FunApp("String_N",[]),[],[[new Terminal("sträng")]]), new Rule(23, new FunApp("String_N",[]),[],[[new Terminal("strängs")]]), new Rule(22, new FunApp("String_N",[]),[],[[new Terminal("strängen")]]), new Rule(21, new FunApp("String_N",[]),[],[[new Terminal("strängens")]]), new Rule(20, new FunApp("String_N",[]),[],[[new Terminal("strängar")]]), new Rule(19, new FunApp("String_N",[]),[],[[new Terminal("strängars")]]), new Rule(18, new FunApp("String_N",[]),[],[[new Terminal("strängarna")]]), new Rule(17, new FunApp("String_N",[]),[],[[new Terminal("strängarnas")]]), new Rule(24, new FunApp("Spanish",[]),[],[[new Terminal("Spanska")]]), new Rule(23, new FunApp("Spanish",[]),[],[[new Terminal("Spanskas")]]), new Rule(22, new FunApp("Spanish",[]),[],[[new Terminal("Spanskan")]]), new Rule(21, new FunApp("Spanish",[]),[],[[new Terminal("Spanskans")]]), new Rule(20, new FunApp("Spanish",[]),[],[[new Terminal("Spanskor")]]), new Rule(19, new FunApp("Spanish",[]),[],[[new Terminal("Spanskors")]]), new Rule(18, new FunApp("Spanish",[]),[],[[new Terminal("Spanskorna")]]), new Rule(17, new FunApp("Spanish",[]),[],[[new Terminal("Spanskornas")]]), new Rule(25, new FunApp("SingleWordCommand",[new Arg(0)]),[29],[[new ArgProj(0, 1), new ArgProj(0, 0), new Terminal("dig")]]), new Rule(25, new FunApp("SingleWordCommand",[new Arg(0)]),[28],[[new ArgProj(0, 1), new ArgProj(0, 0)]]), new Rule(25, new FunApp("SingleWordCommand",[new Arg(0)]),[27],[[new ArgProj(0, 1), new ArgProj(0, 0)]]), new Rule(83, new FunApp("Show",[]),[],[[]]), new Rule(82, new FunApp("Show",[]),[],[[new Terminal("Visar")]]), new Rule(81, new FunApp("Show",[]),[],[[new Terminal("Visas")]]), new Rule(80, new FunApp("Show",[]),[],[[new Terminal("Visa")]]), new Rule(79, new FunApp("Show",[]),[],[[new Terminal("Visas")]]), new Rule(78, new FunApp("Show",[]),[],[[new Terminal("Visa")]]), new Rule(77, new FunApp("Show",[]),[],[[new Terminal("Visas")]]), new Rule(76, new FunApp("Show",[]),[],[[new Terminal("Visad")]]), new Rule(75, new FunApp("Show",[]),[],[[new Terminal("Visads")]]), new Rule(74, new FunApp("Show",[]),[],[[new Terminal("Visat")]]), new Rule(73, new FunApp("Show",[]),[],[[new Terminal("Visats")]]), new Rule(72, new FunApp("Show",[]),[],[[new Terminal("Visade")]]), new Rule(71, new FunApp("Show",[]),[],[[new Terminal("Visades")]]), new Rule(70, new FunApp("Show",[]),[],[[new Terminal("Visade")]]), new Rule(69, new FunApp("Show",[]),[],[[new Terminal("Visades")]]), new Rule(68, new FunApp("Show",[]),[],[[new Terminal("Visade")]]), new Rule(67, new FunApp("Show",[]),[],[[new Terminal("Visades")]]), new Rule(83, new FunApp("Select",[]),[],[[]]), new Rule(82, new FunApp("Select",[]),[],[[new Terminal("Väljer")]]), new Rule(81, new FunApp("Select",[]),[],[[new Terminal("Väljs")]]), new Rule(80, new FunApp("Select",[]),[],[[new Terminal("Välj")]]), new Rule(79, new FunApp("Select",[]),[],[[new Terminal("Väljs")]]), new Rule(78, new FunApp("Select",[]),[],[[new Terminal("Välja")]]), new Rule(77, new FunApp("Select",[]),[],[[new Terminal("Väljas")]]), new Rule(76, new FunApp("Select",[]),[],[[new Terminal("Väljt")]]), new Rule(75, new FunApp("Select",[]),[],[[new Terminal("Väljts")]]), new Rule(74, new FunApp("Select",[]),[],[[new Terminal("Väljt")]]), new Rule(73, new FunApp("Select",[]),[],[[new Terminal("Väljts")]]), new Rule(72, new FunApp("Select",[]),[],[[new Terminal("Väljta")]]), new Rule(71, new FunApp("Select",[]),[],[[new Terminal("Väljtas")]]), new Rule(70, new FunApp("Select",[]),[],[[new Terminal("Väljta")]]), new Rule(69, new FunApp("Select",[]),[],[[new Terminal("Väljtas")]]), new Rule(68, new FunApp("Select",[]),[],[[new Terminal("Väljta")]]), new Rule(67, new FunApp("Select",[]),[],[[new Terminal("Väljtas")]]), new Rule(24, new FunApp("Russian",[]),[],[[new Terminal("Ryska")]]), new Rule(23, new FunApp("Russian",[]),[],[[new Terminal("Ryskas")]]), new Rule(22, new FunApp("Russian",[]),[],[[new Terminal("Ryskan")]]), new Rule(21, new FunApp("Russian",[]),[],[[new Terminal("Ryskans")]]), new Rule(20, new FunApp("Russian",[]),[],[[new Terminal("Ryskor")]]), new Rule(19, new FunApp("Russian",[]),[],[[new Terminal("Ryskors")]]), new Rule(18, new FunApp("Russian",[]),[],[[new Terminal("Ryskorna")]]), new Rule(17, new FunApp("Russian",[]),[],[[new Terminal("Ryskornas")]]), new Rule(83, new FunApp("Replace",[]),[],[[]]), new Rule(82, new FunApp("Replace",[]),[],[[new Terminal("Ersätter")]]), new Rule(81, new FunApp("Replace",[]),[],[[new Terminal("Ersätts")]]), new Rule(80, new FunApp("Replace",[]),[],[[new Terminal("Ersätt")]]), new Rule(79, new FunApp("Replace",[]),[],[[new Terminal("Ersätts")]]), new Rule(78, new FunApp("Replace",[]),[],[[new Terminal("Ersätta")]]), new Rule(77, new FunApp("Replace",[]),[],[[new Terminal("Ersättas")]]), new Rule(76, new FunApp("Replace",[]),[],[[new Terminal("Ersättt")]]), new Rule(75, new FunApp("Replace",[]),[],[[new Terminal("Ersättts")]]), new Rule(74, new FunApp("Replace",[]),[],[[new Terminal("Ersättt")]]), new Rule(73, new FunApp("Replace",[]),[],[[new Terminal("Ersättts")]]), new Rule(72, new FunApp("Replace",[]),[],[[new Terminal("Ersättta")]]), new Rule(71, new FunApp("Replace",[]),[],[[new Terminal("Ersätttas")]]), new Rule(70, new FunApp("Replace",[]),[],[[new Terminal("Ersättta")]]), new Rule(69, new FunApp("Replace",[]),[],[[new Terminal("Ersätttas")]]), new Rule(68, new FunApp("Replace",[]),[],[[new Terminal("Ersättta")]]), new Rule(67, new FunApp("Replace",[]),[],[[new Terminal("Ersätttas")]]), new Rule(24, new FunApp("Refinement",[]),[],[[new Terminal("raffinemang")]]), new Rule(23, new FunApp("Refinement",[]),[],[[new Terminal("raffinemangs")]]), new Rule(22, new FunApp("Refinement",[]),[],[[new Terminal("raffinemangen")]]), new Rule(21, new FunApp("Refinement",[]),[],[[new Terminal("raffinemangens")]]), new Rule(20, new FunApp("Refinement",[]),[],[[new Terminal("raffinemangar")]]), new Rule(19, new FunApp("Refinement",[]),[],[[new Terminal("raffinemangars")]]), new Rule(18, new FunApp("Refinement",[]),[],[[new Terminal("raffinemangarna")]]), new Rule(17, new FunApp("Refinement",[]),[],[[new Terminal("raffinemangarnas")]]), new Rule(83, new FunApp("Refine",[]),[],[[]]), new Rule(82, new FunApp("Refine",[]),[],[[new Terminal("Raffinerar")]]), new Rule(81, new FunApp("Refine",[]),[],[[new Terminal("Raffineras")]]), new Rule(80, new FunApp("Refine",[]),[],[[new Terminal("Raffinera")]]), new Rule(79, new FunApp("Refine",[]),[],[[new Terminal("Raffineras")]]), new Rule(78, new FunApp("Refine",[]),[],[[new Terminal("Raffinera")]]), new Rule(77, new FunApp("Refine",[]),[],[[new Terminal("Raffineras")]]), new Rule(76, new FunApp("Refine",[]),[],[[new Terminal("Raffinerad")]]), new Rule(75, new FunApp("Refine",[]),[],[[new Terminal("Raffinerads")]]), new Rule(74, new FunApp("Refine",[]),[],[[new Terminal("Raffinerat")]]), new Rule(73, new FunApp("Refine",[]),[],[[new Terminal("Raffinerats")]]), new Rule(72, new FunApp("Refine",[]),[],[[new Terminal("Raffinerade")]]), new Rule(71, new FunApp("Refine",[]),[],[[new Terminal("Raffinerades")]]), new Rule(70, new FunApp("Refine",[]),[],[[new Terminal("Raffinerade")]]), new Rule(69, new FunApp("Refine",[]),[],[[new Terminal("Raffinerades")]]), new Rule(68, new FunApp("Refine",[]),[],[[new Terminal("Raffinerade")]]), new Rule(67, new FunApp("Refine",[]),[],[[new Terminal("Raffinerades")]]), new Rule(83, new FunApp("Redo",[]),[],[[]]), new Rule(82, new FunApp("Redo",[]),[],[[new Terminal("Upprepar")]]), new Rule(81, new FunApp("Redo",[]),[],[[new Terminal("Upprepas")]]), new Rule(80, new FunApp("Redo",[]),[],[[new Terminal("Upprepa")]]), new Rule(79, new FunApp("Redo",[]),[],[[new Terminal("Upprepas")]]), new Rule(78, new FunApp("Redo",[]),[],[[new Terminal("Upprepa")]]), new Rule(77, new FunApp("Redo",[]),[],[[new Terminal("Upprepas")]]), new Rule(76, new FunApp("Redo",[]),[],[[new Terminal("Upprepad")]]), new Rule(75, new FunApp("Redo",[]),[],[[new Terminal("Upprepads")]]), new Rule(74, new FunApp("Redo",[]),[],[[new Terminal("Upprepat")]]), new Rule(73, new FunApp("Redo",[]),[],[[new Terminal("Upprepats")]]), new Rule(72, new FunApp("Redo",[]),[],[[new Terminal("Upprepade")]]), new Rule(71, new FunApp("Redo",[]),[],[[new Terminal("Upprepades")]]), new Rule(70, new FunApp("Redo",[]),[],[[new Terminal("Upprepade")]]), new Rule(69, new FunApp("Redo",[]),[],[[new Terminal("Upprepades")]]), new Rule(68, new FunApp("Redo",[]),[],[[new Terminal("Upprepade")]]), new Rule(67, new FunApp("Redo",[]),[],[[new Terminal("Upprepades")]]), new Rule(25, new FunApp("RandomlyCommand",[new Arg(0), new Arg(1), new Arg(2)]),[29, 44, 43],[[new ArgProj(0, 1), new ArgProj(0, 0), new Terminal("dig"), new ArgProj(1, 0), new ArgProj(2, 0), new Terminal("slumpmässigt")]]), new Rule(25, new FunApp("RandomlyCommand",[new Arg(0), new Arg(1), new Arg(2)]),[28, 44, 43],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new Terminal("slumpmässigt")]]), new Rule(25, new FunApp("RandomlyCommand",[new Arg(0), new Arg(1), new Arg(2)]),[27, 44, 43],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new Terminal("slumpmässigt")]]), new Rule(25, new FunApp("RandomlyCommand",[new Arg(0), new Arg(1), new Arg(2)]),[29, 42, 18],[[new ArgProj(0, 1), new ArgProj(0, 0), new Terminal("dig"), new ArgProj(1, 0), new ArgProj(2, 0), new Terminal("slumpmässigt")]]), new Rule(25, new FunApp("RandomlyCommand",[new Arg(0), new Arg(1), new Arg(2)]),[28, 42, 18],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new Terminal("slumpmässigt")]]), new Rule(25, new FunApp("RandomlyCommand",[new Arg(0), new Arg(1), new Arg(2)]),[27, 42, 18],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new Terminal("slumpmässigt")]]), new Rule(25, new FunApp("RandomlyCommand",[new Arg(0), new Arg(1), new Arg(2)]),[29, 41, 38],[[new ArgProj(0, 1), new ArgProj(0, 0), new Terminal("dig"), new ArgProj(1, 0), new ArgProj(2, 0), new Terminal("slumpmässigt")]]), new Rule(25, new FunApp("RandomlyCommand",[new Arg(0), new Arg(1), new Arg(2)]),[28, 41, 38],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new Terminal("slumpmässigt")]]), new Rule(25, new FunApp("RandomlyCommand",[new Arg(0), new Arg(1), new Arg(2)]),[27, 41, 38],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new Terminal("slumpmässigt")]]), new Rule(25, new FunApp("RandomlyCommand",[new Arg(0), new Arg(1), new Arg(2)]),[29, 40, 20],[[new ArgProj(0, 1), new ArgProj(0, 0), new Terminal("dig"), new ArgProj(1, 0), new ArgProj(2, 0), new Terminal("slumpmässigt")]]), new Rule(25, new FunApp("RandomlyCommand",[new Arg(0), new Arg(1), new Arg(2)]),[28, 40, 20],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new Terminal("slumpmässigt")]]), new Rule(25, new FunApp("RandomlyCommand",[new Arg(0), new Arg(1), new Arg(2)]),[27, 40, 20],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new Terminal("slumpmässigt")]]), new Rule(25, new FunApp("RandomlyCommand",[new Arg(0), new Arg(1), new Arg(2)]),[29, 39, 38],[[new ArgProj(0, 1), new ArgProj(0, 0), new Terminal("dig"), new ArgProj(1, 0), new ArgProj(2, 0), new Terminal("slumpmässigt")]]), new Rule(25, new FunApp("RandomlyCommand",[new Arg(0), new Arg(1), new Arg(2)]),[28, 39, 38],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new Terminal("slumpmässigt")]]), new Rule(25, new FunApp("RandomlyCommand",[new Arg(0), new Arg(1), new Arg(2)]),[27, 39, 38],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new Terminal("slumpmässigt")]]), new Rule(25, new FunApp("RandomlyCommand",[new Arg(0), new Arg(1), new Arg(2)]),[29, 37, 20],[[new ArgProj(0, 1), new ArgProj(0, 0), new Terminal("dig"), new ArgProj(1, 0), new ArgProj(2, 0), new Terminal("slumpmässigt")]]), new Rule(25, new FunApp("RandomlyCommand",[new Arg(0), new Arg(1), new Arg(2)]),[28, 37, 20],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new Terminal("slumpmässigt")]]), new Rule(25, new FunApp("RandomlyCommand",[new Arg(0), new Arg(1), new Arg(2)]),[27, 37, 20],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new Terminal("slumpmässigt")]]), new Rule(25, new FunApp("RandomlyCommand",[new Arg(0), new Arg(1), new Arg(2)]),[29, 36, 35],[[new ArgProj(0, 1), new ArgProj(0, 0), new Terminal("dig"), new ArgProj(1, 0), new ArgProj(2, 0), new Terminal("slumpmässigt")]]), new Rule(25, new FunApp("RandomlyCommand",[new Arg(0), new Arg(1), new Arg(2)]),[28, 36, 35],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new Terminal("slumpmässigt")]]), new Rule(25, new FunApp("RandomlyCommand",[new Arg(0), new Arg(1), new Arg(2)]),[27, 36, 35],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new Terminal("slumpmässigt")]]), new Rule(25, new FunApp("RandomlyCommand",[new Arg(0), new Arg(1), new Arg(2)]),[29, 34, 22],[[new ArgProj(0, 1), new ArgProj(0, 0), new Terminal("dig"), new ArgProj(1, 0), new ArgProj(2, 0), new Terminal("slumpmässigt")]]), new Rule(25, new FunApp("RandomlyCommand",[new Arg(0), new Arg(1), new Arg(2)]),[28, 34, 22],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new Terminal("slumpmässigt")]]), new Rule(25, new FunApp("RandomlyCommand",[new Arg(0), new Arg(1), new Arg(2)]),[27, 34, 22],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new Terminal("slumpmässigt")]]), new Rule(25, new FunApp("RandomlyCommand",[new Arg(0), new Arg(1), new Arg(2)]),[29, 33, 30],[[new ArgProj(0, 1), new ArgProj(0, 0), new Terminal("dig"), new ArgProj(1, 0), new ArgProj(2, 0), new Terminal("slumpmässigt")]]), new Rule(25, new FunApp("RandomlyCommand",[new Arg(0), new Arg(1), new Arg(2)]),[28, 33, 30],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new Terminal("slumpmässigt")]]), new Rule(25, new FunApp("RandomlyCommand",[new Arg(0), new Arg(1), new Arg(2)]),[27, 33, 30],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new Terminal("slumpmässigt")]]), new Rule(25, new FunApp("RandomlyCommand",[new Arg(0), new Arg(1), new Arg(2)]),[29, 32, 24],[[new ArgProj(0, 1), new ArgProj(0, 0), new Terminal("dig"), new ArgProj(1, 0), new ArgProj(2, 0), new Terminal("slumpmässigt")]]), new Rule(25, new FunApp("RandomlyCommand",[new Arg(0), new Arg(1), new Arg(2)]),[28, 32, 24],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new Terminal("slumpmässigt")]]), new Rule(25, new FunApp("RandomlyCommand",[new Arg(0), new Arg(1), new Arg(2)]),[27, 32, 24],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new Terminal("slumpmässigt")]]), new Rule(25, new FunApp("RandomlyCommand",[new Arg(0), new Arg(1), new Arg(2)]),[29, 31, 30],[[new ArgProj(0, 1), new ArgProj(0, 0), new Terminal("dig"), new ArgProj(1, 0), new ArgProj(2, 0), new Terminal("slumpmässigt")]]), new Rule(25, new FunApp("RandomlyCommand",[new Arg(0), new Arg(1), new Arg(2)]),[28, 31, 30],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new Terminal("slumpmässigt")]]), new Rule(25, new FunApp("RandomlyCommand",[new Arg(0), new Arg(1), new Arg(2)]),[27, 31, 30],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new Terminal("slumpmässigt")]]), new Rule(25, new FunApp("RandomlyCommand",[new Arg(0), new Arg(1), new Arg(2)]),[29, 26, 24],[[new ArgProj(0, 1), new ArgProj(0, 0), new Terminal("dig"), new ArgProj(1, 0), new ArgProj(2, 0), new Terminal("slumpmässigt")]]), new Rule(25, new FunApp("RandomlyCommand",[new Arg(0), new Arg(1), new Arg(2)]),[28, 26, 24],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new Terminal("slumpmässigt")]]), new Rule(25, new FunApp("RandomlyCommand",[new Arg(0), new Arg(1), new Arg(2)]),[27, 26, 24],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new Terminal("slumpmässigt")]]), new Rule(16, new FunApp("Previous",[]),[],[[new Terminal("föregående")]]), new Rule(15, new FunApp("Previous",[]),[],[[new Terminal("föregåendes")]]), new Rule(14, new FunApp("Previous",[]),[],[[new Terminal("föregående")]]), new Rule(13, new FunApp("Previous",[]),[],[[new Terminal("föregåendes")]]), new Rule(12, new FunApp("Previous",[]),[],[[new Terminal("föregående")]]), new Rule(11, new FunApp("Previous",[]),[],[[new Terminal("föregåendes")]]), new Rule(10, new FunApp("Previous",[]),[],[[new Terminal("föregående")]]), new Rule(9, new FunApp("Previous",[]),[],[[new Terminal("föregåendes")]]), new Rule(8, new FunApp("Previous",[]),[],[[new Terminal("föregående")]]), new Rule(7, new FunApp("Previous",[]),[],[[new Terminal("föregåendes")]]), new Rule(6, new FunApp("Previous",[]),[],[[]]), new Rule(5, new FunApp("Previous",[]),[],[[new Terminal("s")]]), new Rule(4, new FunApp("Previous",[]),[],[[]]), new Rule(3, new FunApp("Previous",[]),[],[[new Terminal("s")]]), new Rule(2, new FunApp("Previous",[]),[],[[new Terminal("a")]]), new Rule(1, new FunApp("Previous",[]),[],[[new Terminal("as")]]), new Rule(83, new FunApp("Paste",[]),[],[[new Terminal("in")]]), new Rule(82, new FunApp("Paste",[]),[],[[new Terminal("Klistrar")]]), new Rule(81, new FunApp("Paste",[]),[],[[new Terminal("Klistras")]]), new Rule(80, new FunApp("Paste",[]),[],[[new Terminal("Klistra")]]), new Rule(79, new FunApp("Paste",[]),[],[[new Terminal("Klistras")]]), new Rule(78, new FunApp("Paste",[]),[],[[new Terminal("Klistra")]]), new Rule(77, new FunApp("Paste",[]),[],[[new Terminal("Klistras")]]), new Rule(76, new FunApp("Paste",[]),[],[[new Terminal("Klistrad")]]), new Rule(75, new FunApp("Paste",[]),[],[[new Terminal("Klistrads")]]), new Rule(74, new FunApp("Paste",[]),[],[[new Terminal("Klistrat")]]), new Rule(73, new FunApp("Paste",[]),[],[[new Terminal("Klistrats")]]), new Rule(72, new FunApp("Paste",[]),[],[[new Terminal("Klistrade")]]), new Rule(71, new FunApp("Paste",[]),[],[[new Terminal("Klistrades")]]), new Rule(70, new FunApp("Paste",[]),[],[[new Terminal("Klistrade")]]), new Rule(69, new FunApp("Paste",[]),[],[[new Terminal("Klistrades")]]), new Rule(68, new FunApp("Paste",[]),[],[[new Terminal("Klistrade")]]), new Rule(67, new FunApp("Paste",[]),[],[[new Terminal("Klistrades")]]), new Rule(83, new FunApp("Parse",[]),[],[[]]), new Rule(82, new FunApp("Parse",[]),[],[[new Terminal("Parsar")]]), new Rule(81, new FunApp("Parse",[]),[],[[new Terminal("Parsas")]]), new Rule(80, new FunApp("Parse",[]),[],[[new Terminal("Parsa")]]), new Rule(79, new FunApp("Parse",[]),[],[[new Terminal("Parsas")]]), new Rule(78, new FunApp("Parse",[]),[],[[new Terminal("Parsa")]]), new Rule(77, new FunApp("Parse",[]),[],[[new Terminal("Parsas")]]), new Rule(76, new FunApp("Parse",[]),[],[[new Terminal("Parsad")]]), new Rule(75, new FunApp("Parse",[]),[],[[new Terminal("Parsads")]]), new Rule(74, new FunApp("Parse",[]),[],[[new Terminal("Parsat")]]), new Rule(73, new FunApp("Parse",[]),[],[[new Terminal("Parsats")]]), new Rule(72, new FunApp("Parse",[]),[],[[new Terminal("Parsade")]]), new Rule(71, new FunApp("Parse",[]),[],[[new Terminal("Parsades")]]), new Rule(70, new FunApp("Parse",[]),[],[[new Terminal("Parsade")]]), new Rule(69, new FunApp("Parse",[]),[],[[new Terminal("Parsades")]]), new Rule(68, new FunApp("Parse",[]),[],[[new Terminal("Parsade")]]), new Rule(67, new FunApp("Parse",[]),[],[[new Terminal("Parsades")]]), new Rule(24, new FunApp("Page",[]),[],[[new Terminal("sida")]]), new Rule(23, new FunApp("Page",[]),[],[[new Terminal("sidas")]]), new Rule(22, new FunApp("Page",[]),[],[[new Terminal("sidan")]]), new Rule(21, new FunApp("Page",[]),[],[[new Terminal("sidans")]]), new Rule(20, new FunApp("Page",[]),[],[[new Terminal("sidor")]]), new Rule(19, new FunApp("Page",[]),[],[[new Terminal("sidors")]]), new Rule(18, new FunApp("Page",[]),[],[[new Terminal("sidorna")]]), new Rule(17, new FunApp("Page",[]),[],[[new Terminal("sidornas")]]), new Rule(24, new FunApp("Norwegian",[]),[],[[new Terminal("Norska")]]), new Rule(23, new FunApp("Norwegian",[]),[],[[new Terminal("Norskas")]]), new Rule(22, new FunApp("Norwegian",[]),[],[[new Terminal("Norskan")]]), new Rule(21, new FunApp("Norwegian",[]),[],[[new Terminal("Norskans")]]), new Rule(20, new FunApp("Norwegian",[]),[],[[new Terminal("Norskor")]]), new Rule(19, new FunApp("Norwegian",[]),[],[[new Terminal("Norskors")]]), new Rule(18, new FunApp("Norwegian",[]),[],[[new Terminal("Norskorna")]]), new Rule(17, new FunApp("Norwegian",[]),[],[[new Terminal("Norskornas")]]), new Rule(24, new FunApp("Node",[]),[],[[new Terminal("nod")]]), new Rule(23, new FunApp("Node",[]),[],[[new Terminal("nods")]]), new Rule(22, new FunApp("Node",[]),[],[[new Terminal("noden")]]), new Rule(21, new FunApp("Node",[]),[],[[new Terminal("nodens")]]), new Rule(20, new FunApp("Node",[]),[],[[new Terminal("nodar")]]), new Rule(19, new FunApp("Node",[]),[],[[new Terminal("nodars")]]), new Rule(18, new FunApp("Node",[]),[],[[new Terminal("nodarna")]]), new Rule(17, new FunApp("Node",[]),[],[[new Terminal("nodarnas")]]), new Rule(16, new FunApp("Next",[]),[],[[new Terminal("näst")]]), new Rule(15, new FunApp("Next",[]),[],[[new Terminal("nästs")]]), new Rule(14, new FunApp("Next",[]),[],[[new Terminal("nästt")]]), new Rule(13, new FunApp("Next",[]),[],[[new Terminal("nästts")]]), new Rule(12, new FunApp("Next",[]),[],[[new Terminal("nästa")]]), new Rule(11, new FunApp("Next",[]),[],[[new Terminal("nästas")]]), new Rule(10, new FunApp("Next",[]),[],[[new Terminal("nästa")]]), new Rule(9, new FunApp("Next",[]),[],[[new Terminal("nästas")]]), new Rule(8, new FunApp("Next",[]),[],[[new Terminal("nästa")]]), new Rule(7, new FunApp("Next",[]),[],[[new Terminal("nästas")]]), new Rule(6, new FunApp("Next",[]),[],[[new Terminal("nästare")]]), new Rule(5, new FunApp("Next",[]),[],[[new Terminal("nästares")]]), new Rule(4, new FunApp("Next",[]),[],[[new Terminal("nästast")]]), new Rule(3, new FunApp("Next",[]),[],[[new Terminal("nästasts")]]), new Rule(2, new FunApp("Next",[]),[],[[new Terminal("nästaste")]]), new Rule(1, new FunApp("Next",[]),[],[[new Terminal("nästastes")]]), new Rule(30, new FunApp("Language",[]),[],[[new Terminal("språk")]]), new Rule(87, new FunApp("Language",[]),[],[[new Terminal("språks")]]), new Rule(35, new FunApp("Language",[]),[],[[new Terminal("språket")]]), new Rule(86, new FunApp("Language",[]),[],[[new Terminal("språkets")]]), new Rule(38, new FunApp("Language",[]),[],[[new Terminal("språk")]]), new Rule(85, new FunApp("Language",[]),[],[[new Terminal("språks")]]), new Rule(43, new FunApp("Language",[]),[],[[new Terminal("språken")]]), new Rule(84, new FunApp("Language",[]),[],[[new Terminal("språkens")]]), new Rule(25, new FunApp("Label",[new Arg(0)]),[88],[[new ArgProj(0, 0)]]), new Rule(88, new Arg(0),[30],[[new ArgProj(0, 0)]]), new Rule(88, new Arg(0),[24],[[new ArgProj(0, 0)]]), new Rule(24, new FunApp("Italian",[]),[],[[new Terminal("Italienska")]]), new Rule(23, new FunApp("Italian",[]),[],[[new Terminal("Italienskas")]]), new Rule(22, new FunApp("Italian",[]),[],[[new Terminal("Italienskan")]]), new Rule(21, new FunApp("Italian",[]),[],[[new Terminal("Italienskans")]]), new Rule(20, new FunApp("Italian",[]),[],[[new Terminal("Italienskor")]]), new Rule(19, new FunApp("Italian",[]),[],[[new Terminal("Italienskors")]]), new Rule(18, new FunApp("Italian",[]),[],[[new Terminal("Italienskorna")]]), new Rule(17, new FunApp("Italian",[]),[],[[new Terminal("Italienskornas")]]), new Rule(30, new FunApp("Integer_N",[]),[],[[new Terminal("heltal")]]), new Rule(87, new FunApp("Integer_N",[]),[],[[new Terminal("heltals")]]), new Rule(35, new FunApp("Integer_N",[]),[],[[new Terminal("heltalet")]]), new Rule(86, new FunApp("Integer_N",[]),[],[[new Terminal("heltalets")]]), new Rule(38, new FunApp("Integer_N",[]),[],[[new Terminal("heltal")]]), new Rule(85, new FunApp("Integer_N",[]),[],[[new Terminal("heltals")]]), new Rule(43, new FunApp("Integer_N",[]),[],[[new Terminal("heltalen")]]), new Rule(84, new FunApp("Integer_N",[]),[],[[new Terminal("heltalens")]]), new Rule(47, new FunApp("IndefSgDet",[]),[],[[new Terminal("en")]]), new Rule(50, new FunApp("IndefSgDet",[]),[],[[new Terminal("ett")]]), new Rule(26, new FunApp("IndefSgDet",[]),[],[[new Terminal("en")]]), new Rule(31, new FunApp("IndefSgDet",[]),[],[[new Terminal("ett")]]), new Rule(59, new FunApp("IndefPlDet",[]),[],[[]]), new Rule(60, new FunApp("IndefPlDet",[]),[],[[]]), new Rule(37, new FunApp("IndefPlDet",[]),[],[[]]), new Rule(39, new FunApp("IndefPlDet",[]),[],[[]]), new Rule(24, new FunApp("German",[]),[],[[new Terminal("Tyska")]]), new Rule(23, new FunApp("German",[]),[],[[new Terminal("Tyskas")]]), new Rule(22, new FunApp("German",[]),[],[[new Terminal("Tyskan")]]), new Rule(21, new FunApp("German",[]),[],[[new Terminal("Tyskans")]]), new Rule(20, new FunApp("German",[]),[],[[new Terminal("Tyskor")]]), new Rule(19, new FunApp("German",[]),[],[[new Terminal("Tyskors")]]), new Rule(18, new FunApp("German",[]),[],[[new Terminal("Tyskorna")]]), new Rule(17, new FunApp("German",[]),[],[[new Terminal("Tyskornas")]]), new Rule(24, new FunApp("French",[]),[],[[new Terminal("Franska")]]), new Rule(23, new FunApp("French",[]),[],[[new Terminal("Franskas")]]), new Rule(22, new FunApp("French",[]),[],[[new Terminal("Franskan")]]), new Rule(21, new FunApp("French",[]),[],[[new Terminal("Franskans")]]), new Rule(20, new FunApp("French",[]),[],[[new Terminal("Franskor")]]), new Rule(19, new FunApp("French",[]),[],[[new Terminal("Franskors")]]), new Rule(18, new FunApp("French",[]),[],[[new Terminal("Franskorna")]]), new Rule(17, new FunApp("French",[]),[],[[new Terminal("Franskornas")]]), new Rule(30, new FunApp("Float_N",[]),[],[[new Terminal("flyttal")]]), new Rule(87, new FunApp("Float_N",[]),[],[[new Terminal("flyttals")]]), new Rule(35, new FunApp("Float_N",[]),[],[[new Terminal("flyttalet")]]), new Rule(86, new FunApp("Float_N",[]),[],[[new Terminal("flyttalets")]]), new Rule(38, new FunApp("Float_N",[]),[],[[new Terminal("flyttal")]]), new Rule(85, new FunApp("Float_N",[]),[],[[new Terminal("flyttals")]]), new Rule(43, new FunApp("Float_N",[]),[],[[new Terminal("flyttalen")]]), new Rule(84, new FunApp("Float_N",[]),[],[[new Terminal("flyttalens")]]), new Rule(24, new FunApp("Finnish",[]),[],[[new Terminal("Finska")]]), new Rule(23, new FunApp("Finnish",[]),[],[[new Terminal("Finskas")]]), new Rule(22, new FunApp("Finnish",[]),[],[[new Terminal("Finskan")]]), new Rule(21, new FunApp("Finnish",[]),[],[[new Terminal("Finskans")]]), new Rule(20, new FunApp("Finnish",[]),[],[[new Terminal("Finskor")]]), new Rule(19, new FunApp("Finnish",[]),[],[[new Terminal("Finskors")]]), new Rule(18, new FunApp("Finnish",[]),[],[[new Terminal("Finskorna")]]), new Rule(17, new FunApp("Finnish",[]),[],[[new Terminal("Finskornas")]]), new Rule(25, new FunApp("ErrorMessage",[new Arg(0), new Arg(1)]),[57, 38],[[new Terminal("det"), new Terminal("finns"), new Terminal("inte"), new ArgProj(0, 0), new ArgProj(1, 0)]]), new Rule(25, new FunApp("ErrorMessage",[new Arg(0), new Arg(1)]),[57, 20],[[new Terminal("det"), new Terminal("finns"), new Terminal("inte"), new ArgProj(0, 0), new ArgProj(1, 0)]]), new Rule(83, new FunApp("Enter",[]),[],[[]]), new Rule(82, new FunApp("Enter",[]),[],[[new Terminal("Skriver")]]), new Rule(81, new FunApp("Enter",[]),[],[[new Terminal("Skrivs")]]), new Rule(80, new FunApp("Enter",[]),[],[[new Terminal("Skriv")]]), new Rule(79, new FunApp("Enter",[]),[],[[new Terminal("Skrivs")]]), new Rule(78, new FunApp("Enter",[]),[],[[new Terminal("Skriva")]]), new Rule(77, new FunApp("Enter",[]),[],[[new Terminal("Skrivas")]]), new Rule(76, new FunApp("Enter",[]),[],[[new Terminal("Skrivd")]]), new Rule(75, new FunApp("Enter",[]),[],[[new Terminal("Skrivds")]]), new Rule(74, new FunApp("Enter",[]),[],[[new Terminal("Skrivt")]]), new Rule(73, new FunApp("Enter",[]),[],[[new Terminal("Skrivts")]]), new Rule(72, new FunApp("Enter",[]),[],[[new Terminal("Skrivda")]]), new Rule(71, new FunApp("Enter",[]),[],[[new Terminal("Skrivdas")]]), new Rule(70, new FunApp("Enter",[]),[],[[new Terminal("Skrivda")]]), new Rule(69, new FunApp("Enter",[]),[],[[new Terminal("Skrivdas")]]), new Rule(68, new FunApp("Enter",[]),[],[[new Terminal("Skrivda")]]), new Rule(67, new FunApp("Enter",[]),[],[[new Terminal("Skrivdas")]]), new Rule(24, new FunApp("English",[]),[],[[new Terminal("Engelska")]]), new Rule(23, new FunApp("English",[]),[],[[new Terminal("Engelskas")]]), new Rule(22, new FunApp("English",[]),[],[[new Terminal("Engelskan")]]), new Rule(21, new FunApp("English",[]),[],[[new Terminal("Engelskans")]]), new Rule(20, new FunApp("English",[]),[],[[new Terminal("Engelskor")]]), new Rule(19, new FunApp("English",[]),[],[[new Terminal("Engelskors")]]), new Rule(18, new FunApp("English",[]),[],[[new Terminal("Engelskorna")]]), new Rule(17, new FunApp("English",[]),[],[[new Terminal("Engelskornas")]]), new Rule(83, new FunApp("Delete",[]),[],[[]]), new Rule(82, new FunApp("Delete",[]),[],[[new Terminal("Raderar")]]), new Rule(81, new FunApp("Delete",[]),[],[[new Terminal("Raderas")]]), new Rule(80, new FunApp("Delete",[]),[],[[new Terminal("Radera")]]), new Rule(79, new FunApp("Delete",[]),[],[[new Terminal("Raderas")]]), new Rule(78, new FunApp("Delete",[]),[],[[new Terminal("Radera")]]), new Rule(77, new FunApp("Delete",[]),[],[[new Terminal("Raderas")]]), new Rule(76, new FunApp("Delete",[]),[],[[new Terminal("Raderad")]]), new Rule(75, new FunApp("Delete",[]),[],[[new Terminal("Raderads")]]), new Rule(74, new FunApp("Delete",[]),[],[[new Terminal("Raderat")]]), new Rule(73, new FunApp("Delete",[]),[],[[new Terminal("Raderats")]]), new Rule(72, new FunApp("Delete",[]),[],[[new Terminal("Raderade")]]), new Rule(71, new FunApp("Delete",[]),[],[[new Terminal("Raderades")]]), new Rule(70, new FunApp("Delete",[]),[],[[new Terminal("Raderade")]]), new Rule(69, new FunApp("Delete",[]),[],[[new Terminal("Raderades")]]), new Rule(68, new FunApp("Delete",[]),[],[[new Terminal("Raderade")]]), new Rule(67, new FunApp("Delete",[]),[],[[new Terminal("Raderades")]]), new Rule(55, new FunApp("DefSgDet",[]),[],[[new Terminal("den")]]), new Rule(56, new FunApp("DefSgDet",[]),[],[[new Terminal("det")]]), new Rule(34, new FunApp("DefSgDet",[]),[],[[]]), new Rule(36, new FunApp("DefSgDet",[]),[],[[]]), new Rule(65, new FunApp("DefPlDet",[]),[],[[new Terminal("de")]]), new Rule(66, new FunApp("DefPlDet",[]),[],[[new Terminal("de")]]), new Rule(42, new FunApp("DefPlDet",[]),[],[[]]), new Rule(44, new FunApp("DefPlDet",[]),[],[[]]), new Rule(24, new FunApp("Danish",[]),[],[[new Terminal("Danska")]]), new Rule(23, new FunApp("Danish",[]),[],[[new Terminal("Danskas")]]), new Rule(22, new FunApp("Danish",[]),[],[[new Terminal("Danskan")]]), new Rule(21, new FunApp("Danish",[]),[],[[new Terminal("Danskans")]]), new Rule(20, new FunApp("Danish",[]),[],[[new Terminal("Danskor")]]), new Rule(19, new FunApp("Danish",[]),[],[[new Terminal("Danskors")]]), new Rule(18, new FunApp("Danish",[]),[],[[new Terminal("Danskorna")]]), new Rule(17, new FunApp("Danish",[]),[],[[new Terminal("Danskornas")]]), new Rule(83, new FunApp("Cut",[]),[],[[new Terminal("ut")]]), new Rule(82, new FunApp("Cut",[]),[],[[new Terminal("Klipper")]]), new Rule(81, new FunApp("Cut",[]),[],[[new Terminal("Klipps")]]), new Rule(80, new FunApp("Cut",[]),[],[[new Terminal("Klipp")]]), new Rule(79, new FunApp("Cut",[]),[],[[new Terminal("Klipps")]]), new Rule(78, new FunApp("Cut",[]),[],[[new Terminal("Klippa")]]), new Rule(77, new FunApp("Cut",[]),[],[[new Terminal("Klippas")]]), new Rule(76, new FunApp("Cut",[]),[],[[new Terminal("Klippt")]]), new Rule(75, new FunApp("Cut",[]),[],[[new Terminal("Klippts")]]), new Rule(74, new FunApp("Cut",[]),[],[[new Terminal("Klippt")]]), new Rule(73, new FunApp("Cut",[]),[],[[new Terminal("Klippts")]]), new Rule(72, new FunApp("Cut",[]),[],[[new Terminal("Klippta")]]), new Rule(71, new FunApp("Cut",[]),[],[[new Terminal("Klipptas")]]), new Rule(70, new FunApp("Cut",[]),[],[[new Terminal("Klippta")]]), new Rule(69, new FunApp("Cut",[]),[],[[new Terminal("Klipptas")]]), new Rule(68, new FunApp("Cut",[]),[],[[new Terminal("Klippta")]]), new Rule(67, new FunApp("Cut",[]),[],[[new Terminal("Klipptas")]]), new Rule(83, new FunApp("Copy",[]),[],[[]]), new Rule(82, new FunApp("Copy",[]),[],[[new Terminal("Kopierar")]]), new Rule(81, new FunApp("Copy",[]),[],[[new Terminal("Kopieras")]]), new Rule(80, new FunApp("Copy",[]),[],[[new Terminal("Kopiera")]]), new Rule(79, new FunApp("Copy",[]),[],[[new Terminal("Kopieras")]]), new Rule(78, new FunApp("Copy",[]),[],[[new Terminal("Kopiera")]]), new Rule(77, new FunApp("Copy",[]),[],[[new Terminal("Kopieras")]]), new Rule(76, new FunApp("Copy",[]),[],[[new Terminal("Kopierad")]]), new Rule(75, new FunApp("Copy",[]),[],[[new Terminal("Kopierads")]]), new Rule(74, new FunApp("Copy",[]),[],[[new Terminal("Kopierat")]]), new Rule(73, new FunApp("Copy",[]),[],[[new Terminal("Kopierats")]]), new Rule(72, new FunApp("Copy",[]),[],[[new Terminal("Kopierade")]]), new Rule(71, new FunApp("Copy",[]),[],[[new Terminal("Kopierades")]]), new Rule(70, new FunApp("Copy",[]),[],[[new Terminal("Kopierade")]]), new Rule(69, new FunApp("Copy",[]),[],[[new Terminal("Kopierades")]]), new Rule(68, new FunApp("Copy",[]),[],[[new Terminal("Kopierade")]]), new Rule(67, new FunApp("Copy",[]),[],[[new Terminal("Kopierades")]]), new Rule(25, new FunApp("CommandAdj",[new Arg(0), new Arg(1), new Arg(2), new Arg(3)]),[29, 66, 61, 43],[[new ArgProj(0, 1), new ArgProj(0, 0), new Terminal("dig"), new ArgProj(1, 0), new ArgProj(2, 0), new ArgProj(3, 0)]]), new Rule(25, new FunApp("CommandAdj",[new Arg(0), new Arg(1), new Arg(2), new Arg(3)]),[28, 66, 61, 43],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new ArgProj(3, 0)]]), new Rule(25, new FunApp("CommandAdj",[new Arg(0), new Arg(1), new Arg(2), new Arg(3)]),[27, 66, 61, 43],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new ArgProj(3, 0)]]), new Rule(25, new FunApp("CommandAdj",[new Arg(0), new Arg(1), new Arg(2), new Arg(3)]),[29, 65, 61, 18],[[new ArgProj(0, 1), new ArgProj(0, 0), new Terminal("dig"), new ArgProj(1, 0), new ArgProj(2, 0), new ArgProj(3, 0)]]), new Rule(25, new FunApp("CommandAdj",[new Arg(0), new Arg(1), new Arg(2), new Arg(3)]),[28, 65, 61, 18],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new ArgProj(3, 0)]]), new Rule(25, new FunApp("CommandAdj",[new Arg(0), new Arg(1), new Arg(2), new Arg(3)]),[27, 65, 61, 18],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new ArgProj(3, 0)]]), new Rule(25, new FunApp("CommandAdj",[new Arg(0), new Arg(1), new Arg(2), new Arg(3)]),[29, 64, 61, 38],[[new ArgProj(0, 1), new ArgProj(0, 0), new Terminal("dig"), new ArgProj(1, 0), new ArgProj(2, 0), new ArgProj(3, 0)]]), new Rule(25, new FunApp("CommandAdj",[new Arg(0), new Arg(1), new Arg(2), new Arg(3)]),[28, 64, 61, 38],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new ArgProj(3, 0)]]), new Rule(25, new FunApp("CommandAdj",[new Arg(0), new Arg(1), new Arg(2), new Arg(3)]),[27, 64, 61, 38],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new ArgProj(3, 0)]]), new Rule(25, new FunApp("CommandAdj",[new Arg(0), new Arg(1), new Arg(2), new Arg(3)]),[29, 63, 61, 20],[[new ArgProj(0, 1), new ArgProj(0, 0), new Terminal("dig"), new ArgProj(1, 0), new ArgProj(2, 0), new ArgProj(3, 0)]]), new Rule(25, new FunApp("CommandAdj",[new Arg(0), new Arg(1), new Arg(2), new Arg(3)]),[28, 63, 61, 20],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new ArgProj(3, 0)]]), new Rule(25, new FunApp("CommandAdj",[new Arg(0), new Arg(1), new Arg(2), new Arg(3)]),[27, 63, 61, 20],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new ArgProj(3, 0)]]), new Rule(61, new Arg(0),[8],[[new ArgProj(0, 0)]]), new Rule(61, new Arg(0),[62],[[new ArgProj(0, 0)]]), new Rule(25, new FunApp("CommandAdj",[new Arg(0), new Arg(1), new Arg(2), new Arg(3)]),[29, 60, 57, 38],[[new ArgProj(0, 1), new ArgProj(0, 0), new Terminal("dig"), new ArgProj(1, 0), new ArgProj(2, 0), new ArgProj(3, 0)]]), new Rule(25, new FunApp("CommandAdj",[new Arg(0), new Arg(1), new Arg(2), new Arg(3)]),[28, 60, 57, 38],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new ArgProj(3, 0)]]), new Rule(25, new FunApp("CommandAdj",[new Arg(0), new Arg(1), new Arg(2), new Arg(3)]),[27, 60, 57, 38],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new ArgProj(3, 0)]]), new Rule(25, new FunApp("CommandAdj",[new Arg(0), new Arg(1), new Arg(2), new Arg(3)]),[29, 59, 57, 20],[[new ArgProj(0, 1), new ArgProj(0, 0), new Terminal("dig"), new ArgProj(1, 0), new ArgProj(2, 0), new ArgProj(3, 0)]]), new Rule(25, new FunApp("CommandAdj",[new Arg(0), new Arg(1), new Arg(2), new Arg(3)]),[28, 59, 57, 20],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new ArgProj(3, 0)]]), new Rule(25, new FunApp("CommandAdj",[new Arg(0), new Arg(1), new Arg(2), new Arg(3)]),[27, 59, 57, 20],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new ArgProj(3, 0)]]), new Rule(57, new Arg(0),[12],[[new ArgProj(0, 0)]]), new Rule(57, new Arg(0),[58],[[new ArgProj(0, 0)]]), new Rule(25, new FunApp("CommandAdj",[new Arg(0), new Arg(1), new Arg(2), new Arg(3)]),[29, 56, 51, 35],[[new ArgProj(0, 1), new ArgProj(0, 0), new Terminal("dig"), new ArgProj(1, 0), new ArgProj(2, 0), new ArgProj(3, 0)]]), new Rule(25, new FunApp("CommandAdj",[new Arg(0), new Arg(1), new Arg(2), new Arg(3)]),[28, 56, 51, 35],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new ArgProj(3, 0)]]), new Rule(25, new FunApp("CommandAdj",[new Arg(0), new Arg(1), new Arg(2), new Arg(3)]),[27, 56, 51, 35],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new ArgProj(3, 0)]]), new Rule(25, new FunApp("CommandAdj",[new Arg(0), new Arg(1), new Arg(2), new Arg(3)]),[29, 55, 51, 22],[[new ArgProj(0, 1), new ArgProj(0, 0), new Terminal("dig"), new ArgProj(1, 0), new ArgProj(2, 0), new ArgProj(3, 0)]]), new Rule(25, new FunApp("CommandAdj",[new Arg(0), new Arg(1), new Arg(2), new Arg(3)]),[28, 55, 51, 22],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new ArgProj(3, 0)]]), new Rule(25, new FunApp("CommandAdj",[new Arg(0), new Arg(1), new Arg(2), new Arg(3)]),[27, 55, 51, 22],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new ArgProj(3, 0)]]), new Rule(25, new FunApp("CommandAdj",[new Arg(0), new Arg(1), new Arg(2), new Arg(3)]),[29, 54, 51, 30],[[new ArgProj(0, 1), new ArgProj(0, 0), new Terminal("dig"), new ArgProj(1, 0), new ArgProj(2, 0), new ArgProj(3, 0)]]), new Rule(25, new FunApp("CommandAdj",[new Arg(0), new Arg(1), new Arg(2), new Arg(3)]),[28, 54, 51, 30],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new ArgProj(3, 0)]]), new Rule(25, new FunApp("CommandAdj",[new Arg(0), new Arg(1), new Arg(2), new Arg(3)]),[27, 54, 51, 30],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new ArgProj(3, 0)]]), new Rule(25, new FunApp("CommandAdj",[new Arg(0), new Arg(1), new Arg(2), new Arg(3)]),[29, 53, 51, 24],[[new ArgProj(0, 1), new ArgProj(0, 0), new Terminal("dig"), new ArgProj(1, 0), new ArgProj(2, 0), new ArgProj(3, 0)]]), new Rule(25, new FunApp("CommandAdj",[new Arg(0), new Arg(1), new Arg(2), new Arg(3)]),[28, 53, 51, 24],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new ArgProj(3, 0)]]), new Rule(25, new FunApp("CommandAdj",[new Arg(0), new Arg(1), new Arg(2), new Arg(3)]),[27, 53, 51, 24],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new ArgProj(3, 0)]]), new Rule(51, new Arg(0),[10],[[new ArgProj(0, 0)]]), new Rule(51, new Arg(0),[52],[[new ArgProj(0, 0)]]), new Rule(25, new FunApp("CommandAdj",[new Arg(0), new Arg(1), new Arg(2), new Arg(3)]),[29, 50, 48, 30],[[new ArgProj(0, 1), new ArgProj(0, 0), new Terminal("dig"), new ArgProj(1, 0), new ArgProj(2, 0), new ArgProj(3, 0)]]), new Rule(25, new FunApp("CommandAdj",[new Arg(0), new Arg(1), new Arg(2), new Arg(3)]),[28, 50, 48, 30],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new ArgProj(3, 0)]]), new Rule(25, new FunApp("CommandAdj",[new Arg(0), new Arg(1), new Arg(2), new Arg(3)]),[27, 50, 48, 30],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new ArgProj(3, 0)]]), new Rule(48, new Arg(0),[14],[[new ArgProj(0, 0)]]), new Rule(48, new Arg(0),[49],[[new ArgProj(0, 0)]]), new Rule(25, new FunApp("CommandAdj",[new Arg(0), new Arg(1), new Arg(2), new Arg(3)]),[29, 47, 45, 24],[[new ArgProj(0, 1), new ArgProj(0, 0), new Terminal("dig"), new ArgProj(1, 0), new ArgProj(2, 0), new ArgProj(3, 0)]]), new Rule(25, new FunApp("CommandAdj",[new Arg(0), new Arg(1), new Arg(2), new Arg(3)]),[28, 47, 45, 24],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new ArgProj(3, 0)]]), new Rule(25, new FunApp("CommandAdj",[new Arg(0), new Arg(1), new Arg(2), new Arg(3)]),[27, 47, 45, 24],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0), new ArgProj(3, 0)]]), new Rule(45, new Arg(0),[16],[[new ArgProj(0, 0)]]), new Rule(45, new Arg(0),[46],[[new ArgProj(0, 0)]]), new Rule(25, new FunApp("Command",[new Arg(0), new Arg(1), new Arg(2)]),[29, 44, 43],[[new ArgProj(0, 1), new ArgProj(0, 0), new Terminal("dig"), new ArgProj(1, 0), new ArgProj(2, 0)]]), new Rule(25, new FunApp("Command",[new Arg(0), new Arg(1), new Arg(2)]),[28, 44, 43],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0)]]), new Rule(25, new FunApp("Command",[new Arg(0), new Arg(1), new Arg(2)]),[27, 44, 43],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0)]]), new Rule(25, new FunApp("Command",[new Arg(0), new Arg(1), new Arg(2)]),[29, 42, 18],[[new ArgProj(0, 1), new ArgProj(0, 0), new Terminal("dig"), new ArgProj(1, 0), new ArgProj(2, 0)]]), new Rule(25, new FunApp("Command",[new Arg(0), new Arg(1), new Arg(2)]),[28, 42, 18],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0)]]), new Rule(25, new FunApp("Command",[new Arg(0), new Arg(1), new Arg(2)]),[27, 42, 18],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0)]]), new Rule(25, new FunApp("Command",[new Arg(0), new Arg(1), new Arg(2)]),[29, 41, 38],[[new ArgProj(0, 1), new ArgProj(0, 0), new Terminal("dig"), new ArgProj(1, 0), new ArgProj(2, 0)]]), new Rule(25, new FunApp("Command",[new Arg(0), new Arg(1), new Arg(2)]),[28, 41, 38],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0)]]), new Rule(25, new FunApp("Command",[new Arg(0), new Arg(1), new Arg(2)]),[27, 41, 38],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0)]]), new Rule(25, new FunApp("Command",[new Arg(0), new Arg(1), new Arg(2)]),[29, 40, 20],[[new ArgProj(0, 1), new ArgProj(0, 0), new Terminal("dig"), new ArgProj(1, 0), new ArgProj(2, 0)]]), new Rule(25, new FunApp("Command",[new Arg(0), new Arg(1), new Arg(2)]),[28, 40, 20],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0)]]), new Rule(25, new FunApp("Command",[new Arg(0), new Arg(1), new Arg(2)]),[27, 40, 20],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0)]]), new Rule(25, new FunApp("Command",[new Arg(0), new Arg(1), new Arg(2)]),[29, 39, 38],[[new ArgProj(0, 1), new ArgProj(0, 0), new Terminal("dig"), new ArgProj(1, 0), new ArgProj(2, 0)]]), new Rule(25, new FunApp("Command",[new Arg(0), new Arg(1), new Arg(2)]),[28, 39, 38],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0)]]), new Rule(25, new FunApp("Command",[new Arg(0), new Arg(1), new Arg(2)]),[27, 39, 38],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0)]]), new Rule(25, new FunApp("Command",[new Arg(0), new Arg(1), new Arg(2)]),[29, 37, 20],[[new ArgProj(0, 1), new ArgProj(0, 0), new Terminal("dig"), new ArgProj(1, 0), new ArgProj(2, 0)]]), new Rule(25, new FunApp("Command",[new Arg(0), new Arg(1), new Arg(2)]),[28, 37, 20],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0)]]), new Rule(25, new FunApp("Command",[new Arg(0), new Arg(1), new Arg(2)]),[27, 37, 20],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0)]]), new Rule(25, new FunApp("Command",[new Arg(0), new Arg(1), new Arg(2)]),[29, 36, 35],[[new ArgProj(0, 1), new ArgProj(0, 0), new Terminal("dig"), new ArgProj(1, 0), new ArgProj(2, 0)]]), new Rule(25, new FunApp("Command",[new Arg(0), new Arg(1), new Arg(2)]),[28, 36, 35],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0)]]), new Rule(25, new FunApp("Command",[new Arg(0), new Arg(1), new Arg(2)]),[27, 36, 35],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0)]]), new Rule(25, new FunApp("Command",[new Arg(0), new Arg(1), new Arg(2)]),[29, 34, 22],[[new ArgProj(0, 1), new ArgProj(0, 0), new Terminal("dig"), new ArgProj(1, 0), new ArgProj(2, 0)]]), new Rule(25, new FunApp("Command",[new Arg(0), new Arg(1), new Arg(2)]),[28, 34, 22],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0)]]), new Rule(25, new FunApp("Command",[new Arg(0), new Arg(1), new Arg(2)]),[27, 34, 22],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0)]]), new Rule(25, new FunApp("Command",[new Arg(0), new Arg(1), new Arg(2)]),[29, 33, 30],[[new ArgProj(0, 1), new ArgProj(0, 0), new Terminal("dig"), new ArgProj(1, 0), new ArgProj(2, 0)]]), new Rule(25, new FunApp("Command",[new Arg(0), new Arg(1), new Arg(2)]),[28, 33, 30],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0)]]), new Rule(25, new FunApp("Command",[new Arg(0), new Arg(1), new Arg(2)]),[27, 33, 30],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0)]]), new Rule(25, new FunApp("Command",[new Arg(0), new Arg(1), new Arg(2)]),[29, 32, 24],[[new ArgProj(0, 1), new ArgProj(0, 0), new Terminal("dig"), new ArgProj(1, 0), new ArgProj(2, 0)]]), new Rule(25, new FunApp("Command",[new Arg(0), new Arg(1), new Arg(2)]),[28, 32, 24],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0)]]), new Rule(25, new FunApp("Command",[new Arg(0), new Arg(1), new Arg(2)]),[27, 32, 24],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0)]]), new Rule(25, new FunApp("Command",[new Arg(0), new Arg(1), new Arg(2)]),[29, 31, 30],[[new ArgProj(0, 1), new ArgProj(0, 0), new Terminal("dig"), new ArgProj(1, 0), new ArgProj(2, 0)]]), new Rule(25, new FunApp("Command",[new Arg(0), new Arg(1), new Arg(2)]),[28, 31, 30],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0)]]), new Rule(25, new FunApp("Command",[new Arg(0), new Arg(1), new Arg(2)]),[27, 31, 30],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0)]]), new Rule(25, new FunApp("Command",[new Arg(0), new Arg(1), new Arg(2)]),[29, 26, 24],[[new ArgProj(0, 1), new ArgProj(0, 0), new Terminal("dig"), new ArgProj(1, 0), new ArgProj(2, 0)]]), new Rule(25, new FunApp("Command",[new Arg(0), new Arg(1), new Arg(2)]),[28, 26, 24],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0)]]), new Rule(25, new FunApp("Command",[new Arg(0), new Arg(1), new Arg(2)]),[27, 26, 24],[[new ArgProj(0, 1), new ArgProj(0, 0), new ArgProj(1, 0), new ArgProj(2, 0)]]), new Rule(24, new FunApp("Bulgarian",[]),[],[[new Terminal("Bulgariska")]]), new Rule(23, new FunApp("Bulgarian",[]),[],[[new Terminal("Bulgariskas")]]), new Rule(22, new FunApp("Bulgarian",[]),[],[[new Terminal("Bulgariskan")]]), new Rule(21, new FunApp("Bulgarian",[]),[],[[new Terminal("Bulgariskans")]]), new Rule(20, new FunApp("Bulgarian",[]),[],[[new Terminal("Bulgariskor")]]), new Rule(19, new FunApp("Bulgarian",[]),[],[[new Terminal("Bulgariskors")]]), new Rule(18, new FunApp("Bulgarian",[]),[],[[new Terminal("Bulgariskorna")]]), new Rule(17, new FunApp("Bulgarian",[]),[],[[new Terminal("Bulgariskornas")]]), new Rule(16, new FunApp("Available",[]),[],[[new Terminal("tillgänglig")]]), new Rule(15, new FunApp("Available",[]),[],[[new Terminal("tillgängligs")]]), new Rule(14, new FunApp("Available",[]),[],[[new Terminal("tillgängligt")]]), new Rule(13, new FunApp("Available",[]),[],[[new Terminal("tillgängligts")]]), new Rule(12, new FunApp("Available",[]),[],[[new Terminal("tillgängliga")]]), new Rule(11, new FunApp("Available",[]),[],[[new Terminal("tillgängligas")]]), new Rule(10, new FunApp("Available",[]),[],[[new Terminal("tillgängliga")]]), new Rule(9, new FunApp("Available",[]),[],[[new Terminal("tillgängligas")]]), new Rule(8, new FunApp("Available",[]),[],[[new Terminal("tillgängliga")]]), new Rule(7, new FunApp("Available",[]),[],[[new Terminal("tillgängligas")]]), new Rule(6, new FunApp("Available",[]),[],[[new Terminal("tillgängligare")]]), new Rule(5, new FunApp("Available",[]),[],[[new Terminal("tillgängligares")]]), new Rule(4, new FunApp("Available",[]),[],[[new Terminal("tillgängligast")]]), new Rule(3, new FunApp("Available",[]),[],[[new Terminal("tillgängligasts")]]), new Rule(2, new FunApp("Available",[]),[],[[new Terminal("tillgängligaste")]]), new Rule(1, new FunApp("Available",[]),[],[[new Terminal("tillgängligastes")]])],{Adjective:[45, 46, 16, 15, 48, 49, 14, 13, 57, 58, 12, 11, 51, 52, 10, 9, 61, 62, 8, 7, 6, 5, 4, 3, 2, 1], Determiner:[47, 59, 53, 63, 55, 65, 26, 37, 32, 40, 34, 42, 50, 60, 54, 64, 56, 66, 31, 39, 33, 41, 36, 44], Float:[-3], Int:[-2], Noun:[88, 24, 30, 20, 38, 22, 35, 18, 43, 23, 87, 19, 85, 21, 86, 17, 84], Sentence:[25], String:[-1], Verb:[83, 27, 29, 28, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67], _Var:[-4]}))});
diff --git a/lib/javascript/empty.png b/lib/javascript/empty.png
new file mode 100644
index 000000000..35d9875df
Binary files /dev/null and b/lib/javascript/empty.png differ
diff --git a/lib/javascript/gfjseditor.js b/lib/javascript/gfjseditor.js
new file mode 100644
index 000000000..4fa6d32cb
--- /dev/null
+++ b/lib/javascript/gfjseditor.js
@@ -0,0 +1,1252 @@
+
+//Variable and Constant definitions
+
+var expColImg = new Array(2);
+expColImg[0] = new Image(12,12);
+expColImg[0].src = "minus.png";
+expColImg[1] = new Image(12,12);
+expColImg[1].src = "plus.png";
+
+// Grammars
+var grammar = undefined;
+var editorGrammar = Editor;
+
+var selectedLanguage = "EditorEng";
+var selectedNode = "";
+var collapseBuffer = new Array();
+var abstractTree = new Fun ("?");
+
+var navigationControlString = new Array();
+var undoArray = new Array();
+var redoArray = new Array();
+var clipBoard;
+var refPageCounter = 0;
+
+var stringAbstractTree = undefined;
+var myTree = undefined;
+var parseTrees = undefined;
+
+var keys = new Array();
+keys ["Z"] = function() { clickUndo('actUndo'); }
+keys ["Y"] = function() { clickRedo('actRedo'); }
+keys ["R"] = function() { clickRefine('actRefine'); };
+keys ["V"] = function() { clickPaste('actPaste'); };
+keys ["X"] = function() { clickCut('actCut'); };
+keys ["C"] = function() { clickCopy('actCopy'); };
+keys ["D"] = function() { clickDelete('actDelete'); };
+keys ["E"] = function() { clickReplace('actReplace'); };
+keys ["W"] = function() { clickWrap('actWrap'); };
+keys ["P"] = function() { clickParse('actParse'); };
+keys ["N"] = function() { clickRandomNode('actRandomNode'); };
+keys ["T"] = function() { clickRandomTree('actRandomTree'); };
+keys ["%"] = function() { leftArrowKey(); };
+keys ["&"] = function() { upDownArrowKey(-1); };
+keys ["'"] = function() { rightArrowKey(); };
+keys ["("] = function() { upDownArrowKey( 1); };
+keys ["27"] = function() { clickEsc(); };
+
+function state(selectedNode, tree, collapseBuffer) {
+ this.selectedNode = selectedNode;
+// this.tree = myAbstract.copyTree(tree);
+ this.tree = grammar.abstract.copyTree(tree);
+ this.collapseBuffer = collapseBuffer;
+ return this;
+}
+
+function treeNode(name, caption) {
+ this.name = name;
+ this.caption = caption;
+ this.cat = "";
+ this.children = new Array();
+ this.collapsed = false;
+ return this;
+}
+
+treeNode.prototype.addChild = function (i, c) {
+ this.children[i] = c;
+}
+
+treeNode.prototype.hasChildren = function() {
+ return this.children.length;
+}
+
+// Creates an instance of the editor and stores it in the given HTML container.
+// Previous content is destroyed.
+function mkEditor(container, myGrammar) {
+ grammar = myGrammar;
+ myTree = treeFromAbstract(grammar.abstract.annotate(abstractTree, grammar.abstract.startcat), "0");
+ var holder = document.getElementById(container);
+ holder.innerHTML = "
";
+ nodeClick('0', '?');
+}
+
+// Generates a tree from the string representation of an abstract tree contained in the element elementToParse
+function parseStringTree(elementToParse) {
+ stringAbstractTree = elementToParse;
+ abstractTree = grammar.abstract.handleLiterals(grammar.abstract.parseTree(document.getElementById(elementToParse).value, grammar.abstract.startcat));
+ myTree = treeFromAbstract(abstractTree, "0");
+ nodeClick("0");
+}
+
+// If a key is pressed and a function assigned to that key, calls the function
+function hotKeys(event) {
+ event = (event) ? event : ((window.event) ? event : null);
+ if (event) {
+ var charCode = (event.charCode) ? event.charCode : ((event.which) ? event.which : event.keyCode);
+ if (keys[String.fromCharCode(charCode).toUpperCase()] &&
+ !event.ctrlKey && !event.altKey && !event.shiftKey && !event.metaKey) {
+ keys[String.fromCharCode(charCode).toUpperCase()]();
+ }
+ else if (keys["" + charCode] &&
+ !event.ctrlKey && !event.altKey && !event.shiftKey && !event.metaKey) {
+ keys["" + charCode]();
+ }
+ else if (charCode >= "96" && charCode <= "105" &&
+ !event.ctrlKey && !event.altKey && !event.shiftKey && !event.metaKey) {
+ keys["" + (charCode - 96)]();
+ }
+ }
+}
+
+// Clears "numeric" hotkeys
+function clearHotKeys() {
+ for (var key in keys) {
+ if ((parseInt(key) + 1) && (key != "27")) { keys[key] = function() { }; }
+ }
+}
+
+// Action to be performed when the up/down arrow key is pressed
+function upDownArrowKey(pos) {
+ var nodePos = getNavPos(selectedNode);
+ if ((nodePos > 0 && pos < 0) || (nodePos < navigationControlString.length - 1 && pos > 0)) {
+ nodeClick(navigationControlString[nodePos + pos]);
+ }
+}
+
+// Gets the position of a given node in the navigationControlString
+function getNavPos(nodeName) {
+ for (var i = 0, j = navigationControlString.length; i < j; i++) {
+ if (navigationControlString[i] == nodeName) { return i; };
+ }
+ return undefined;
+}
+
+// Given a name and a tree, gets the node in the tree with that name
+function getNode(nodeName, node) {
+ if (nodeName == node.name) {
+ return node;
+ }
+ else {
+ for (var i = 0, j = node.children.length; i < j; i++) {
+ var found = getNode(nodeName, node.children[i]);
+ if (found) { return found; }
+ }
+ }
+}
+
+// Action to be performed when the left arrow key is pressed
+function leftArrowKey() {
+ var node = getNode(selectedNode, myTree);
+ if (!node.collapsed && node.hasChildren()) {
+ signClick(node.name, node.caption);
+ }
+ else {
+ var parentNode = getParent(node.name, myTree);
+ if (parentNode) { nodeClick(parentNode.name); }
+ }
+}
+
+// Gets the parent of the selected node
+function getParent(nodeName, node) {
+ if (node.name == nodeName) {
+ return undefined;
+ }
+ else {
+ for (var i = 0, j = node.children.length; i < j; i++) {
+ if (node.children[i].name == nodeName) { return node; }
+ }
+ for (var i = 0, j = node.children.length; i < j; i++) {
+ var found = getParent(nodeName, node.children[i]);
+ if (found) { return found; }
+ }
+ }
+}
+
+// Action to be performed when the right arrow key is pressed
+function rightArrowKey() {
+ var node = getNode(selectedNode, myTree);
+ if (node.collapsed) {
+ signClick(node.name, node.caption);
+ }
+ else {
+ var firstDescendant = getfirstDescendant(node);
+ if (firstDescendant) {
+ nodeClick(firstDescendant.name);
+ }
+ }
+}
+
+// Gets the first descendant child of a node
+function getfirstDescendant(node) {
+ if (node.hasChildren() && !node.collapsed) { return node.children[0]; }
+ return undefined;
+}
+
+// Produces and displays an HTML representation of the tree
+function drawTree() {
+ var frame = document.getElementById("absFrame");
+ navigationControlString = new Array();
+ frame.innerHTML = "
" + getTree(myTree, 0) + "
";
+ document.getElementById("link" + selectedNode).scrollIntoView(false);
+}
+
+// Produces an HTML representation of the tree
+function getTree(tree, level) {
+ navigationControlString[navigationControlString.length] = tree.name;
+ var htmlTree = new Array();
+ htmlTree.push("
");
+ if (tree.hasChildren() && !tree.collapsed) {
+ for (var i = 0, j = tree.children.length; i < j; i++) {
+ htmlTree.push(getTree(tree.children[i], level + 1));
+ }
+ }
+ htmlTree.push("
");
+ return htmlTree.join("");
+}
+
+// Linearizes and displays the abstract tree
+function drawLinearizedFrame() {
+ var frame = document.getElementById("conFrame");
+ frame.innerHTML = getLinearizedFrame();
+}
+
+// Linearizes the abstract tree and returns it in HTML form
+function getLinearizedFrame() {
+ var linearizedFrame = new Array();
+ for (var i in grammar.concretes) {
+ linearizedFrame.push("
", i, "
");
+ linearizedFrame.push("
");
+ var tokens = grammar.concretes[i].tagAndLinearize(abstractTree);
+ for (var j = 0, k = tokens.length; j < k; j++) {
+ linearizedFrame.push(createLinearized(tokens[j]));
+ }
+ linearizedFrame.push("
");
+ }
+ linearizedFrame.push("
Abstract
");
+ linearizedFrame.push("
", createLinearizedFromAbstract(myTree, "0"), "
");
+ return linearizedFrame.join("");
+}
+
+// Creates an HTML representation of a linearization of an abstract tree
+function createLinearized(token) {
+ var node = getNode(token.tag, myTree);
+ var linearized = new Array()
+ linearized.push(""); }
+ else { linearized.push(" onclick='nodeClick(\"", node.name, "\");'> ", token, " "); }
+ return linearized.join("");
+}
+
+// Creates an HTML representation of the abstract tree
+function createLinearizedFromAbstract(node, path, prec) {
+ var linearized = new Array();
+ linearized.push("");
+ if (node.children.length) { linearized.push(" ("); }
+ if (node.cat == "String" || node.cat == "Int" || node.cat == "Float") {
+ linearized.push(" ", node.caption.substring(node.caption.lastIndexOf("_") + 1), " ");
+ } else {
+ linearized.push(" ", node.caption, " ");
+ }
+ for (var i = 0, j = node.children.length; i < j; i++) {
+ linearized.push(createLinearizedFromAbstract(node.children[i], path + "-" + i, 1));
+ }
+ if (node.children.length) { linearized.push(") "); }
+ linearized.push("");
+ return linearized.join("");
+}
+
+// Expands/Collapses node
+function signClick(name, caption) {
+ myTree = expandCollapse(myTree, name);
+ nodeClick(name);
+}
+
+// Sets the "collapsed" property of a given node
+function expandCollapse(node, name) {
+ if (node.name == name) {
+ if (wasCollapsed(node.name)) { removeFromCollapseBuffer(node.name); }
+ else { collapseBuffer[collapseBuffer.length] = node.name; }
+ node.collapsed ^= true;
+ }
+ else {
+ for (var i = 0, j = node.children.length; i < j; i++) {
+ expandCollapse(node.children[i], name);
+ }
+ }
+ return node;
+}
+
+// Checks if a node was collapsed on the previous cycle
+function wasCollapsed(nodeName) {
+ for (var i = 0, j = collapseBuffer.length; i < j; i++) {
+ if (nodeName == collapseBuffer[i]) {
+ return true;
+ }
+ }
+ return false;
+}
+
+// Removes a node from the collapseBuffer array
+function removeFromCollapseBuffer(nodeName) {
+ var newBuffer = new Array();
+ for (var i = 0, j = collapseBuffer.length; i < j; i++) {
+ if (nodeName != collapseBuffer[i]) {
+ newBuffer[newBuffer.length] = collapseBuffer[i];
+ }
+ }
+ collapseBuffer = newBuffer;
+}
+
+// Selects a node
+function nodeClick(name) {
+ if ((document.getElementById("actRefine") && document.getElementById("actRefine").className == "selected") ||
+ (document.getElementById("actReplace") && document.getElementById("actReplace").className == "selected") ||
+ (document.getElementById("actWrap") && document.getElementById("actWrap").className == "selected") ||
+ (document.getElementById("actTree") && document.getElementById("actTree").className == "selected")) {
+ return; }
+ selectedNode = name;
+ if (stringAbstractTree) {
+ document.getElementById(stringAbstractTree).value = abstractTree.show();
+ }
+ document.getElementById("actFrame").innerHTML = showActions();
+ document.getElementById("refFrame").innerHTML = "";
+ document.getElementById("messageFrame").innerHTML = showLanguages();
+ document.getElementById(selectedLanguage).className = "selected";
+ applyLanguage();
+ drawTree();
+ drawLinearizedFrame();
+}
+
+// Shows the available languages for the editor
+function showLanguages() {
+ var languages = new Array();
+ languages.push("
",
+ "
",
+ "
Bulgarian
",
+ "
Danish
",
+ "
English
",
+ "
Finnish
",
+ "
French
",
+ "
German
",
+ "
Italian
",
+ "
Norwegian
",
+ "
Russian
",
+// "
Spanish
",
+ "
Spanish
",
+ "
Swedish
",
+ "
");
+ return languages.join("");
+}
+
+// Selects the language to use in the editor
+function clickLanguage(lang) {
+ if (lang) {
+ var tdsToClear = document.getElementById("languagesTable").getElementsByTagName("td");
+ for (var i = 0, j = tdsToClear.length; i < j; i++) {
+ if (tdsToClear[i].className == "selected") { tdsToClear[i].className = "language"; }
+ }
+ document.getElementById(lang).className = "selected";
+ selectedLanguage = lang;
+ applyLanguage();
+ }
+}
+
+// Applies a language to the editor
+function applyLanguage() {
+ var langsToLinearize = document.getElementById("languagesTable").getElementsByTagName("td");
+ for (var i = 0, j = langsToLinearize.length; i < j; i++) {
+ var absStr = langsToLinearize[i].getAttribute("title");
+ var lin = editorGrammar.concretes[selectedLanguage].linearize(editorGrammar.abstract.parseTree(absStr, editorGrammar.abstract.startcat));
+ if (!langsToLinearize[i].firstChild) {
+ var txt = document.createTextNode(lin);
+ langsToLinearize[i].appendChild(txt);
+ }
+ else {
+ langsToLinearize[i].firstChild.nodeValue = lin;
+ }
+ }
+ var actionsToLinearize = document.getElementById("actionsTable").getElementsByTagName("td");
+ for (var i = 0, j = actionsToLinearize.length; i < j; i++) {
+ if (actionsToLinearize[i].getAttribute("class") == "action") {
+ var absStr = actionsToLinearize[i].getAttribute("title");
+ var lin = editorGrammar.concretes[selectedLanguage].linearize(editorGrammar.abstract.parseTree(absStr, editorGrammar.abstract.startcat));
+ if (!actionsToLinearize[i].firstChild) {
+ var txt = document.createTextNode(lin);
+ actionsToLinearize[i].appendChild(txt);
+ }
+ else {
+ actionsToLinearize[i].firstChild.nodeValue = lin;
+ }
+ }
+ }
+ var messageToLinearize = document.getElementById("refgenRefRandom");
+ if (messageToLinearize) {
+ messageToLinearize.firstChild.firstChild.nodeValue = editorGrammar.concretes[selectedLanguage].linearize(editorGrammar.abstract.parseTree("RandomlyCommand Select IndefSgDet Refinement", editorGrammar.abstract.startcat));
+ }
+ var messageToLinearize = document.getElementById("nextRefsNext");
+ if (messageToLinearize) {
+ messageToLinearize.firstChild.firstChild.nodeValue = editorGrammar.concretes[selectedLanguage].linearize(editorGrammar.abstract.parseTree("CommandAdj Show DefSgDet Next Page", editorGrammar.abstract.startcat));
+ }
+ messageToLinearize = document.getElementById("nextRefsPrevious");
+ if (messageToLinearize) {
+ messageToLinearize.firstChild.firstChild.nodeValue = editorGrammar.concretes[selectedLanguage].linearize(editorGrammar.abstract.parseTree("CommandAdj Show DefSgDet Previous Page", editorGrammar.abstract.startcat));
+ }
+ var messageToLinearize = document.getElementById("nextWrapsNext");
+ if (messageToLinearize) {
+ messageToLinearize.firstChild.firstChild.nodeValue = editorGrammar.concretes[selectedLanguage].linearize(editorGrammar.abstract.parseTree("CommandAdj Show DefSgDet Next Page", editorGrammar.abstract.startcat));
+ }
+ messageToLinearize = document.getElementById("nextWrapsPrevious");
+ if (messageToLinearize) {
+ messageToLinearize.firstChild.firstChild.nodeValue = editorGrammar.concretes[selectedLanguage].linearize(editorGrammar.abstract.parseTree("CommandAdj Show DefSgDet Previous Page", editorGrammar.abstract.startcat));
+ }
+}
+
+// Shows the available actions for a node
+function showActions(caption) {
+ var node = getNode(selectedNode, myTree);
+ var abstractNode = getNodeFromAbstract(abstractTree, node.name, "0");
+ var actions = new Array();
+ actions.push("
");
+ return refinements.join("");
+}
+
+// Creates an HTML representation of a Refinement/Wrap
+function ref_wrapToHtml(funct, name, className, arg, hotKeyPos, caption) {
+ var ref_wrapHtml = new Array();
+ ref_wrapHtml.push("
");
+ return ref_wrapHtml.join("");
+}
+
+// Creates the function to be used by a "numeric" hot key
+function mkRefHotKey(refName) {
+ return function() { if (document.getElementById("ref" + refName)) { refClick(refName); } }
+}
+
+// Creates an HTML representation of the Next/Previous Refinement/Wrap page
+function ref_wrapNextRefsToHtml(funct, name, className, hotKeyPos, caption) {
+ var ref_wrapHtml = new Array();
+ ref_wrapHtml.push("
");
+ return htmlTrees.join("");
+}
+
+// Creates an HTML representation of a parse Tree to be shown in the refinements panel
+function treeToHtml(i, hotKeyPos, caption) {
+ var htmlTree = new Array();
+ htmlTree.push("