blob: 04fb0018cfdfea9f5aa84a70c1b8b1ad698600c7 (
plain)
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
|
incomplete concrete BaseI of Base =
open Syntax, (G = Grammar), Symbolic, LexBase in {
flags lexer=literals ; unlexer=text ;
lincat
Question = G.Phr ;
Answer = G.Phr ;
S = Cl ;
NP = G.NP ;
PN = G.NP ;
CN = G.CN ;
AP = G.AP ;
A2 = G.A2 ;
Conj = G.Conj ;
ListPN = G.ListNP ;
lin
PredAP = mkCl ;
ComplA2 = mkAP ;
ModCN = mkCN ;
--- ConjS = mkS ;
ConjAP = mkAP ;
ConjNP = mkNP ;
UsePN p = p ;
Every = mkNP every_Det ;
Some = mkNP someSg_Det ;
--- None = mkNP noSg_Det ; ---
And = and_Conj ;
Or = or_Conj ;
UseInt i = symb i ;
Number = mkCN number_N ;
Even = mkAP even_A ;
Odd = mkAP odd_A ;
Prime = mkAP prime_A ;
Equal = equal_A2 ;
Greater = greater_A2 ;
Smaller = smaller_A2 ;
Divisible = divisible_A2 ;
Sum = prefix sum_N2 ;
Product = prefix product_N2 ;
--- GCD = prefixSS ["the greatest common divisor of"] ;
WhatIs np = mkPhr (mkQS (mkQCl whatSg_IP (mkVP np))) ;
WhichAre cn ap = mkPhr (mkQS (mkQCl (mkIP whichPl_IDet cn) (mkVP ap))) ;
QuestS s = mkPhr (mkQS (mkQCl s)) ;
Yes = yes_Phr ;
No = no_Phr ;
Value np = mkPhr (mkUtt np) ;
Many list = mkNP and_Conj list ;
BasePN = G.BaseNP ;
ConsPN = G.ConsNP ;
oper
prefix : G.N2 -> G.ListNP -> G.NP = \n2,nps ->
mkNP defSgDet (mkCN n2 (mkNP and_Conj nps)) ;
}
|