forked from GitHub/gf-core
71 lines
1.4 KiB
Plaintext
71 lines
1.4 KiB
Plaintext
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 ** {lock_Int = <>}) ; ---- terrible to need this
|
|
|
|
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 DefArt (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 which_IQuant cn) (mkVP ap))) ;
|
|
QuestS s = mkPhr (mkQS (mkQCl s)) ;
|
|
|
|
Yes = mkPhr yes_Utt ;
|
|
No = mkPhr no_Utt ;
|
|
|
|
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 DefArt (mkCN n2 (mkNP and_Conj nps)) ;
|
|
|
|
}
|