-
Notifications
You must be signed in to change notification settings - Fork 0
/
ShrdliteEng.gf
executable file
·70 lines (54 loc) · 1.5 KB
/
ShrdliteEng.gf
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
--# -path=.:alltenses
concrete ShrdliteEng of Shrdlite = open (E=ExtraEng), SyntaxEng, ShrdliteLexEng in {
lincat
S = Utt;
Thing = NP;
Block = CN;
Location = Adv;
Size = A;
Color = A;
Form = N;
oper
command : VP -> Utt;
command vp = lin Utt {s = variants{"" | "will you" | "can you" | "could you"} ++
variants{"" | "please"} ++
(mkUtt (mkImp vp)).s ++
variants{"" | "please" | ", please"} ++
variants{"" | "." | "!"}};
lin
take b = command (mkVP take_V2 b);
put l = command (mkVP (mkVP put_V2 (mkNP it_Pron)) l);
move b l = command (mkVP (mkVP (move_V2 | put_V2) b) l);
beside b = mkAdv beside_P b;
leftof b = mkAdv leftof_P b;
rightof b = mkAdv rightof_P b;
above b = mkAdv above_P b;
ontop b = mkAdv ontop_P b;
under b = mkAdv under_P b;
inside b = mkAdv inside_P b;
thatis f l = mkCN f l | mkCN f (mkRS (mkRCl E.that_RP l));
the f = mkNP the_Det f;
any f = mkNP (a_Det | mkDet E.any_Quant) f;
all f = mkNP all_Predet (mkNP aPl_Det f);
floor = mkNP the_Det (mkCN floor_N);
block f s c = mkCN c (mkCN s f) | mkCN s (mkCN c f);
anysize = empty_A;
small = small_A;
medium = medium_A;
large = large_A;
wide = wide_A;
tall = tall_A;
anycolor = empty_A;
black = black_A;
white = white_A;
blue = blue_A;
green = green_A;
yellow = yellow_A;
red = red_A;
anyblock = block_N;
box = box_N;
pyramid = pyramid_N;
rectangle = rectangle_N;
square = square_N;
ball = ball_N;
}