/
silly.gram
149 lines (122 loc) · 9.3 KB
/
silly.gram
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
s = " ";
cqualify = "slightly" | "somewhat" | "very" | "excessively" | "massively" | "hardly" | "rather" | "barely";
vqualify = "almost";
vadjective = "angry" | "ill" | "evil" | "insane" | "ugly" | "empty" | "odd" | "apt" | "icy" | "abstract" | "absurd" |
"acoustic" | "actual" | "aerobic" | "afraid" | "amazing" | "amused" | "ancient" | "annual" |
"another" | "antique" | "arctic" | "armed" | "awake" | "aware" | "awesome" | "awful" | "awkward";
cadjective = "big" | "small" | "sleepy" | "tall" | "hungry" | "funny" | "great" | "puny" |
"good" | "bad" | "tiny" | "huge" | "fearsome" | "crazy" | "boring" | "green" |
"red" | "blue" | "yellow" | "nasty" | "pretty" | "hot" | "cold" | "thin" | "sly" |
"full" | "fun" | "weird" | "young" | "hip" | "lax" | "mad" | "raw" | "sad" | "shy" |
"tin" | "lonely" | "basic" | "beautiful" | "best" | "better" | "bitter" | "black" |
"bleak" | "blind" | "blurry" | "brass" | "brave" | "brief" | "bright" |
"broken" | "bronze" | "brown" | "busy" | "calm";
and = "and";
vs_count = "the" | "one" | "no" | "a";
cs_count = "the" | "one" | "no" | "an";
p_count = "two" | "three" | "four" | "five" | "some" | "many" | "all" | "zero" |
"a great many" | "most" | "a group of" | "a collection of" |
"a delegation of" | "any";
vs_actor = "engineer" | "intern" | "admirer" | "animal" | "expert" | "orphan" | "actor" |
"actress" | "addict" | "adult" | "agent" | "alien" | "amateur" | "analyst" |
"army" | "artist" | "athlete" | "aunt" | "author";
cs_actor = "racer" | "rover" | "patron" | "outlaw" | "nomad" | "nanny" | "joker" | "user" |
"jockey" | "dog" | "man" | "woman" | "cat" | "coder" | "bishop" | "wizard" |
"witch" | "maid" | "czar" | "tyrant" | "saint" | "phantom" | "director" |
"demon" | "president" | "driver" | "lord" | "mute" | "child" | "baby" | "nurse" |
"judge" | "mathematician" | "lawyer" | "fly" | "lizard" | "ghost" | "bear" |
"fish" | "bachelor" | "bird" | "boss" | "boy" | "brother" | "buddy" | "buyer";
p_actor = "users" | "orphans" | "racers" | "rovers" | "patrons" | "outlaws" | "nomads" |
"nannies" | "jokers" | "jockeys" | "dogs" | "men" | "women" | "cats" |
"engineers" | "bishops" | "interns" | "admirers" | "experts" | "animals" |
"coders" | "wizards" | "maids" | "czars" | "tyrants" | "saints" | "phantoms" |
"witches" | "directors" | "demons" | "presidents" | "drivers" | "children" |
"mutes" | "babies" | "nurses" | "judges" | "mathematicians" | "lawyers" |
"flies" | "lizards" | "ghosts" | "bears" | "fish" | "actors" | "actresses" |
"addicts" | "adults" | "agents" | "aliens" | "amateurs" | "analysts" |
"artists" | "athletes" | "aunts" | "bachelors" | "birds" | "bosses" | "boys" |
"brothers" | "buddies" | "buyers";
s_verb = "kicks" | "casts" | "imagines" | "designs" | "programs" | "enchants" |
"establishes" | "proves" | "delivers" | "hunts" | "holds" | "hurts" | "has" |
"goes to" | "dreams about" | "walks to" | "is" | "writes" | "hears" | "leaves" |
"wants" | "abandons" | "absorbs" | "abuses" | "accesses" | "accuses" | "acquires" |
"adapts" | "adds" | "addresses" | "adjusts" | "advances" | "agrees with" |
"alerts" | "allows" | "alters" | "approves" | "argues about" | "arranges" |
"arrests" | "asks about" | "assaults" | "attacks" | "attends" | "attracts" |
"audits" | "avoids" | "balances" | "battles" | "begins" | "believes that" |
"benefits from" | "blames" | "blesses" | "boils" | "boosts" | "borrows" |
"brings" | "builds" | "burdens" | "calls";
p_verb = "kick" | "cast" | "imagine" | "design" | "program" | "enchant" | "establish" |
"prove" | "deliver" | "hunt" | "hold" | "hurt" | "have" | "go to" | "dream about" |
"walk to" | "write" | "hear" | "leave" | "want" | "abandon" | "absorb" | "abuse" |
"access" | "accuse" | "acquire" | "adapt" | "add" | "address" | "adjust" | "advance" |
"agree with" | "alert" | "allow" | "alter" | "approve" | "argue about" | "arrange" |
"arrest" | "ask about" | "assault" | "attack" | "attend" | "attract" | "audits" |
"avoid" | "balance" | "battle" | "begin" | "believe that" | "benefit from" |
"blame" | "bless" | "boil" | "boost" | "borrow" | "bring" | "build" | "burden" |
"call";
s_averb = "will" | "should" | "will not" | "should not" | "has to" | "could" | "can" |
"could not" | "shall" | "shall not" | "cannot";
p_averb = "will" | "should" | "will not" | "should not" | "have to" | "could" | "can" |
"could not" | "shall" | "shall not" | "cannot";
when = "tomorrow" | "soon" | "currently" | "perhaps" | "on weekdays" | "at night" |
"at noon" | "maybe" | "often" | "occasionally" | "early on" | "again" |
"always" | "in january" | "in february" | "in march" | "in april" | "in may" |
"in june" | "in july" | "in august" | "in september" | "in october" | "in november" |
"in december";
where = "in Switzerland" | "in Belgium" | "in the pool" | "outside" | "inside" |
"on the ground" | "here" | "there" | "under the bridge" | "on Mars" | "on the beach";
where_prefix = "in" | "across" | "near" | "beyond" | "close to" | "over" | "above" | "ahead of" | "around" | "behind" | "below";
where_v_art = "a" | "the";
where_c_art = "an" | "the";
vs_thing = "abyss" | "album" | "angel" | "ankle" | "anvil" | "accident" |
"arena" | "atlas" | "insect" | "issuer" | "itch" | "ability" | "acid" | "action" |
"advice" | "affair" | "age" | "air" | "airport" | "aisle" | "alarm" | "alcohol" |
"alley" | "amount" | "anchor" | "anger" | "angle" | "answer" | "antenna" | "anxiety" |
"apology" | "apple" | "arch" | "arm" | "armor" | "arrow" | "art" | "artefact" |
"artwork" | "asset" | "asthma" | "atom" | "auction" | "avocado" | "axis";
cs_thing = "house" | "car" | "shoe" | "tank" | "robot" | "dishwasher" | "bike" | "road" |
"pearl" | "paw" | "swine" | "tool" | "computer" | "tree" | "street" | "fuse" |
"beast" | "wall" | "rail" | "hut" | "grass" | "horse" | "leg" | "sun" |
"soil" | "wolf" | "hound" | "bacon" | "baron" | "basil" | "beach" |
"bigot" | "bison" | "block" | "blood" | "booth" | "brain" | "badge" | "bag" |
"balcony" | "ball" | "banana" | "banner" | "bar" | "bargain" | "barrel" |
"basket" | "bean" | "belt" | "bench" | "bicycle" | "blade" | "blanket" |
"blouse" | "boat" | "body" | "bomb" | "bonus" | "book" | "border" | "box" |
"bracket" | "brand" | "bread" | "breeze" | "brick" | "bridge" | "broccoli" |
"broom" | "brush" | "bubble" | "budget" | "buffalo" | "bulb" | "bullet" |
"bundle" | "bunker" | "burger" | "bus" | "business" | "bone" | "cabbage" |
"cabin" | "cable" | "cactus" | "cage" | "cake" | "camera" | "camps";
p_thing = "insects" | "issuers" | "houses" | "cars" | "shoes" | "tanks" | "robots" |
"dishwashers" | "bikes" | "roads" | "pearls" | "paws" | "swines" | "tools" |
"computers" | "trees" | "streets" | "fuses" | "beasts" | "walls" | "rails" |
"huts" | "horses" | "bones" | "legs" | "wolves" | "hounds" | "baths" | "beans" |
"bells" | "boats" | "abilities" | "accidents" | "actions" | "affairs" | "ages" |
"airports" | "aisles" | "alarms" | "albums" | "alleys" | "amounts" | "anchors" |
"angles" | "antennas" | "apologies" | "apples" | "arches" | "arenas" | "arms" |
"armors" | "arrows" | "artefacts" | "artworks" | "assets" | "atoms" | "auctions" |
"axes" | "badges" | "bags" | "balconies" | "balls" | "bananas" | "banners" | "bars" |
"barrels" | "baskets" | "belts" | "benches" | "bicycles" | "blades" |
"blankets" | "blouses" | "bodies" | "bombs" | "books" | "borders" |
"boxes" | "brackets" | "brains" | "brands" | "breads" | "breezes" | "bricks" | "bridges" |
"broccolis" | "brooms" | "brushes" | "bubbles" | "budgets" | "buffalo" | "bulbs" |
"bullets" | "bundles" | "bunkers" | "burgers" | "buses" | "businesses" | "cabins" |
"cables" | "cactusses" | "cages" | "cakes" | "cameras" | "camp";
connect = "and" | "but" | "thus" | "hence" | "yet" | "considering" | "while" | "so" | "and also" | "because" | "before";
adjective = vadjective | cadjective;
qualify = vqualify | cqualify;
s_thing = vs_thing | cs_thing;
s_actor = vs_actor | cs_actor;
adj_suffix = (s and (s qualify)? s adjective)?;
vadj = vadjective adj_suffix | vqualify s adjective;
cadj = cadjective adj_suffix | cqualify s adjective;
adj = vadj | cadj;
p_ver = (p_averb s)? p_verb;
s_ver = (s_averb s)? s_verb;
s_subject = vs_count s (cadj s s_actor | cs_actor) | cs_count s (vadj s s_actor | vs_actor);
p_subject = (p_count s)? (adj s)? p_actor;
object = s_subject | vs_count s (cadj s s_thing | cs_thing) | cs_count s (vadj s s_thing | vs_thing) | p_subject | (p_count s)? (adj s)? p_thing;
wherephrase = where | where_prefix s (where_c_art s (vs_thing | vadj s s_thing) | where_v_art s (cs_thing | cadj s s_thing));
sentencepart = (when s)? (s_subject s s_ver | p_subject s p_ver) s object (s wherephrase)?;
sentence = sentencepart (s connect s sentencepart)*;
main = sentence;