blob: ec967e4433d30e7f6cdcd3b64664199a13622c18 (
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 = G.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 ;
ConjAP = mkAP ;
ConjNP = mkNP ;
UsePN p = p ;
Every = mkNP every_Det ;
Some = mkNP someSg_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 nps = mkNP (mkDet (mkQuantSg defQuant) (mkOrd great_A))
(mkCN common_A (mkCN divisor_N2 (mkNP and_Conj nps))) ;
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 ;
None = none_NP ;
BasePN = G.BaseNP ;
ConsPN = G.ConsNP ;
oper
prefix : G.N2 -> G.ListNP -> G.NP = \n2,nps ->
mkNP defSgDet (mkCN n2 (mkNP and_Conj nps)) ;
}
|