Files
gf-core/src/runtime/javascript/grammar.js

2 lines
6.1 KiB
JavaScript

var Food = new GFGrammar(new GFAbstract("Comment",{Boring: new Type([], "Quality"), Cheese: new Type([], "Kind"), Delicious: new Type([], "Quality"), Expensive: new Type([], "Quality"), Fish: new Type([], "Kind"), Fresh: new Type([], "Quality"), Pred: new Type(["Item", "Quality"], "Comment"), Italian: new Type([], "Quality"), Mod: new Type(["Quality", "Kind"], "Kind"), That: new Type(["Kind"], "Item"), This: new Type(["Kind"], "Item"), Very: new Type(["Quality"], "Quality"), Warm: new Type([], "Quality"), Wine: new Type([], "Kind")}),{FoodEng: new GFConcrete({},{Boring: function(cs){return new Arr(new Str("boring"));}, Cheese: function(cs){return new Arr(new Str("cheese"));}, Delicious: function(cs){return new Arr(new Str("delicious"));}, Expensive: function(cs){return new Arr(new Str("expensive"));}, Fish: function(cs){return new Arr(new Str("fish"));}, Fresh: function(cs){return new Arr(new Str("fresh"));}, Pred: function(cs){return new Arr(new Seq(Food.concretes["FoodEng"].rule("_6", cs), new Str("is"), Food.concretes["FoodEng"].rule("_7", cs)));}, Italian: function(cs){return new Arr(new Str("Italian"));}, Mod: function(cs){return new Arr(new Seq(Food.concretes["FoodEng"].rule("_6", cs), Food.concretes["FoodEng"].rule("_7", cs)));}, That: function(cs){return new Arr(new Seq(new Str("that"), Food.concretes["FoodEng"].rule("_6", cs)));}, This: function(cs){return new Arr(new Seq(new Str("this"), Food.concretes["FoodEng"].rule("_6", cs)));}, Very: function(cs){return new Arr(new Seq(new Str("very"), Food.concretes["FoodEng"].rule("_6", cs)));}, Warm: function(cs){return new Arr(new Str("warm"));}, Wine: function(cs){return new Arr(new Str("wine"));}, _21: function(cs){return new Arr(cs[0]);}, _6: function(cs){return cs[0].sel(new Int(0));}, _7: function(cs){return cs[1].sel(new Int(0));}, Item: function(cs){return Food.concretes["FoodEng"].rule("_21", cs);}, Kind: function(cs){return Food.concretes["FoodEng"].rule("_21", cs);}, Comment: function(cs){return Food.concretes["FoodEng"].rule("_21", cs);}, Quality: function(cs){return Food.concretes["FoodEng"].rule("_21", 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({0:[new Rule(9,[1]), new Rule(10,[1])], 1:[new Rule(1,[]), new Rule(4,[]), new Rule(8,[3, 1]), new Rule(13,[])], 2:[new Rule(6,[0, 3])], 3:[new Rule(0,[]), new Rule(2,[]), new Rule(3,[]), new Rule(5,[]), new Rule(7,[]), new Rule(11,[3]), new Rule(12,[])]},[new FFun("Boring",[0]), new FFun("Cheese",[1]), new FFun("Delicious",[2]), new FFun("Expensive",[3]), new FFun("Fish",[4]), new FFun("Fresh",[5]), new FFun("Pred",[6]), new FFun("Italian",[7]), new FFun("Mod",[8]), new FFun("That",[9]), new FFun("This",[10]), new FFun("Very",[11]), new FFun("Warm",[12]), new FFun("Wine",[13])],[[new KS("boring")],[new KS("cheese")],[new KS("delicious")],[new KS("expensive")],[new KS("fish")],[new KS("fresh")],[new Arg(0, 0), new KS("is"), new Arg(1, 0)],[new KS("Italian")],[new Arg(0, 0), new Arg(1, 0)],[new KS("that"), new Arg(0, 0)],[new KS("this"), new Arg(0, 0)],[new KS("very"), new Arg(0, 0)],[new KS("warm")],[new KS("wine")]],{Float:{s: -3, e: -3}, Int:{s: -2, e: -2}, Item:{s: 0, e: 0}, Kind:{s: 1, e: 1}, Comment:{s: 2, e: 2}, Quality:{s: 3, e: 3}, String:{s: -1, e: -1}, __gfVar:{s: -4, e: -4}}, 5)), FoodIta: new GFConcrete({},{Boring: function(cs){return new Arr(new Str("noioso"));}, Cheese: function(cs){return new Arr(new Str("formaggio"));}, Delicious: function(cs){return new Arr(new Str("delizioso"));}, Expensive: function(cs){return new Arr(new Str("caro"));}, Fish: function(cs){return new Arr(new Str("pesce"));}, Fresh: function(cs){return new Arr(new Str("fresco"));}, Pred: function(cs){return new Arr(new Seq(Food.concretes["FoodIta"].rule("_6", cs), new Str("è"), Food.concretes["FoodIta"].rule("_7", cs)));}, Italian: function(cs){return new Arr(new Str("italiano"));}, Mod: function(cs){return new Arr(new Seq(Food.concretes["FoodIta"].rule("_7", cs), Food.concretes["FoodIta"].rule("_6", cs)));}, That: function(cs){return new Arr(new Seq(new Str("quel"), Food.concretes["FoodIta"].rule("_6", cs)));}, This: function(cs){return new Arr(new Seq(new Str("questo"), Food.concretes["FoodIta"].rule("_6", cs)));}, Very: function(cs){return new Arr(new Seq(new Str("molto"), Food.concretes["FoodIta"].rule("_6", cs)));}, Warm: function(cs){return new Arr(new Str("caldo"));}, Wine: function(cs){return new Arr(new Str("vino"));}, _21: function(cs){return new Arr(cs[0]);}, _6: function(cs){return cs[0].sel(new Int(0));}, _7: function(cs){return cs[1].sel(new Int(0));}, Item: function(cs){return Food.concretes["FoodIta"].rule("_21", cs);}, Kind: function(cs){return Food.concretes["FoodIta"].rule("_21", cs);}, Comment: function(cs){return Food.concretes["FoodIta"].rule("_21", cs);}, Quality: function(cs){return Food.concretes["FoodIta"].rule("_21", 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({0:[new Rule(9,[1]), new Rule(10,[1])], 1:[new Rule(1,[]), new Rule(4,[]), new Rule(8,[3, 1]), new Rule(13,[])], 2:[new Rule(6,[0, 3])], 3:[new Rule(0,[]), new Rule(2,[]), new Rule(3,[]), new Rule(5,[]), new Rule(7,[]), new Rule(11,[3]), new Rule(12,[])]},[new FFun("Boring",[0]), new FFun("Cheese",[1]), new FFun("Delicious",[2]), new FFun("Expensive",[3]), new FFun("Fish",[4]), new FFun("Fresh",[5]), new FFun("Pred",[6]), new FFun("Italian",[7]), new FFun("Mod",[8]), new FFun("That",[9]), new FFun("This",[10]), new FFun("Very",[11]), new FFun("Warm",[12]), new FFun("Wine",[13])],[[new KS("noioso")],[new KS("formaggio")],[new KS("delizioso")],[new KS("caro")],[new KS("pesce")],[new KS("fresco")],[new Arg(0, 0), new KS("è"), new Arg(1, 0)],[new KS("italiano")],[new Arg(1, 0), new Arg(0, 0)],[new KS("quel"), new Arg(0, 0)],[new KS("questo"), new Arg(0, 0)],[new KS("molto"), new Arg(0, 0)],[new KS("caldo")],[new KS("vino")]],{Float:{s: -3, e: -3}, Int:{s: -2, e: -2}, Item:{s: 0, e: 0}, Kind:{s: 1, e: 1}, Comment:{s: 2, e: 2}, Quality:{s: 3, e: 3}, String:{s: -1, e: -1}, __gfVar:{s: -4, e: -4}}, 5))});