tutorial complete with server and js

This commit is contained in:
aarne committed 2008-11-11 10:28:32 +00:00
1 parent e5871c7c1d
commit dc2a6c6ed9
1 file changed
+1 -1
+1 -1
View File
@@ -1 +1 @@
var Restaurant = new GFGrammar(new GFAbstract("Paragraph",{A_List_Of_Adjectives: new Type(["ListQual"], "Quality"), Adj_Comma_List_Of_Adjs: new Type(["Quality", "ListQual"], "ListQual"), Adjective_And_Adjective: new Type(["Quality", "Quality"], "ListQual"), Attentive: new Type([], "Quality"), Authentic: new Type([], "Quality"), Awful: new Type([], "Quality"), Bad: new Type([], "Quality"), Boring: new Type([], "Quality"), Certainly: new Type([], "Adverb"), Cheap: new Type([], "Quality"), Chinese: new Type([], "Quality"), Clean: new Type([], "Quality"), Completely: new Type([], "Adverb"), Conditional_Tense: new Type([], "STense"), Courteous: new Type([], "Quality"), Delicious: new Type([], "Quality"), Dirty: new Type([], "Quality"), Disgusting: new Type([], "Quality"), Diverse: new Type([], "Quality"), Efficient: new Type([], "Quality"), Empty_Sentence: new Type([], "Paragraph"), Excellent: new Type([], "Quality"), Expensive: new Type([], "Quality"), Fatty: new Type([], "Quality"), French: new Type([], "Quality"), Fresh: new Type([], "Quality"), Friendly: new Type([], "Quality"), Good: new Type([], "Quality"), Great: new Type([], "Quality"), Hardly: new Type([], "Adverb"), Helpful: new Type([], "Quality"), Honestly: new Type([], "Adverb"), Horrible: new Type([], "Quality"), I_Do_Not_Recommend: new Type(["Adverb", "Item"], "Phrase"), I_Recommend: new Type(["Adverb", "Item"], "Phrase"), Impersonal: new Type([], "Quality"), Inefficient: new Type([], "Quality"), Italian: new Type([], "Quality"), Japanese: new Type([], "Quality"), Mexican: new Type([], "Quality"), Nice: new Type([], "Quality"), NoAdverb: new Type([], "Adverb"), Personal: new Type([], "Quality"), Present_Tense: new Type([], "STense"), Prompt: new Type([], "Quality"), Really: new Type([], "Adverb"), Reluctantly: new Type([], "Adverb"), Rude: new Type([], "Quality"), Sentence: new Type(["Phrase", "Paragraph"], "Paragraph"), Slow: new Type([], "Quality"), Strongly: new Type([], "Adverb"), Tasteless: new Type([], "Quality"), Thai: new Type([], "Quality"), The_Cheese: new Type([], "Item"), The_Cheeses: new Type([], "Item"), The_Desserts: new Type([], "Item"), The_Dishes: new Type([], "Item"), The_Drinks: new Type([], "Item"), The_Fish: new Type([], "Item"), The_Food: new Type([], "Item"), The_Item_Is: new Type(["Item", "Quality"], "Phrase"), The_Item_Is_Not: new Type(["Item", "Quality"], "Phrase"), The_Pizza: new Type([], "Item"), The_Restaurant: new Type([], "Item"), The_Staff: new Type([], "Item"), The_Wine: new Type([], "Item"), The_Wines: new Type([], "Item"), UnAttentive: new Type([], "Quality"), Very_Adjective: new Type(["Quality"], "Quality"), Warm: new Type([], "Quality")}),{RestaurantEng: new GFConcrete({coding: "utf8"},{A_List_Of_Adjectives: function(cs){return new Arr(new Arr(new Seq(Restaurant.concretes["RestaurantEng"].rule("_0", cs).sel(new Int(0)), new Str("and"), Restaurant.concretes["RestaurantEng"].rule("_2", cs).sel(new Int(0))), new Seq(Restaurant.concretes["RestaurantEng"].rule("_0", cs).sel(new Int(1)), new Str("and"), Restaurant.concretes["RestaurantEng"].rule("_2", cs).sel(new Int(1))), new Seq(Restaurant.concretes["RestaurantEng"].rule("_0", cs).sel(new Int(2)), new Str("and"), Restaurant.concretes["RestaurantEng"].rule("_2", cs).sel(new Int(2))), new Seq(Restaurant.concretes["RestaurantEng"].rule("_0", cs).sel(new Int(3)), new Str("and"), Restaurant.concretes["RestaurantEng"].rule("_2", cs).sel(new Int(3))), new Seq(Restaurant.concretes["RestaurantEng"].rule("_0", cs).sel(new Int(4)), new Str("and"), Restaurant.concretes["RestaurantEng"].rule("_2", cs).sel(new Int(4))), new Seq(Restaurant.concretes["RestaurantEng"].rule("_0", cs).sel(new Int(5)), new Str("and"), Restaurant.concretes["RestaurantEng"].rule("_2", cs).sel(new Int(5))), new Seq(Restaurant.concretes["RestaurantEng"].rule("_0", cs).sel(new Int(6)), new Str("and"), Restaurant.concretes["RestaurantEng"].rule("_2", cs).sel(new Int(6))), new Seq(Restaurant.concretes["RestaurantEng"].rule("_0", cs).sel(new Int(7)), new Str("and"), Restaurant.concretes["RestaurantEng"].rule("_2", cs).sel(new Int(7)))), Restaurant.concretes["RestaurantEng"].rule("_27", cs));}, Adj_Comma_List_Of_Adjs: function(cs){return new Arr((new Arr(Restaurant.concretes["RestaurantEng"].rule("_29", cs), new Int(1))).sel(Restaurant.concretes["RestaurantEng"].rule("_0", cs)), new Arr(new Seq(Restaurant.concretes["RestaurantEng"].rule("_32", cs), new Str(","), Restaurant.concretes["RestaurantEng"].rule("_33", cs).sel(new Int(0))), new Seq(Restaurant.concretes["RestaurantEng"].rule("_36", cs), new Str(","), Restaurant.concretes["RestaurantEng"].rule("_33", cs).sel(new Int(1))), new Seq(Restaurant.concretes["RestaurantEng"].rule("_39", cs), new Str(","), Restaurant.concretes["RestaurantEng"].rule("_33", cs).sel(new Int(2))), new Seq(Restaurant.concretes["RestaurantEng"].rule("_42", cs), new Str(","), Restaurant.concretes["RestaurantEng"].rule("_33", cs).sel(new Int(3))), new Seq(Restaurant.concretes["RestaurLine truncated
var Food = new GFGrammar(new GFAbstract("Phrase",{Boring: new Type([], "Quality"), Cheese: new Type([], "Kind"), Delicious: new Type([], "Quality"), Expensive: new Type([], "Quality"), Fish: new Type([], "Kind"), Fresh: new Type([], "Quality"), Is: new Type(["Item", "Quality"], "Phrase"), Italian: new Type([], "Quality"), QKind: 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"));}, Is: 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"));}, QKind: 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);}, Phrase: 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("Phrase",[new Rule(1, new FunApp("Boring",[]),[],[[new Terminal("boring")]]), new Rule(1, new FunApp("Delicious",[]),[],[[new Terminal("delicious")]]), new Rule(1, new FunApp("Expensive",[]),[],[[new Terminal("expensive")]]), new Rule(1, new FunApp("Fresh",[]),[],[[new Terminal("fresh")]]), new Rule(1, new FunApp("Italian",[]),[],[[new Terminal("Italian")]]), new Rule(1, new FunApp("Very",[new Arg(0)]),[1],[[new Terminal("very"), new ArgProj(0, 0)]]), new Rule(1, new FunApp("Warm",[]),[],[[new Terminal("warm")]]), new Rule(2, new FunApp("Cheese",[]),[],[[new Terminal("cheese")]]), new Rule(2, new FunApp("Fish",[]),[],[[new Terminal("fish")]]), new Rule(2, new FunApp("QKind",[new Arg(0), new Arg(1)]),[1, 2],[[new ArgProj(0, 0), new ArgProj(1, 0)]]), new Rule(2, new FunApp("Wine",[]),[],[[new Terminal("wine")]]), new Rule(3, new FunApp("Is",[new Arg(0), new Arg(1)]),[4, 1],[[new ArgProj(0, 0), new Terminal("is"), new ArgProj(1, 0)]]), new Rule(4, new FunApp("That",[new Arg(0)]),[2],[[new Terminal("that"), new ArgProj(0, 0)]]), new Rule(4, new FunApp("This",[new Arg(0)]),[2],[[new Terminal("this"), new ArgProj(0, 0)]])],{Float:[-3], Int:[-2], Item:[4], Kind:[2], Phrase:[3], Quality:[1], String:[-1], _Var:[-4]})), 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"));}, Is: 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"));}, QKind: 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);}, Phrase: function(cs){return Food.concretes["FoodIta"].rule("_21", cs);}, Quality: Line truncated