forked from GitHub/gf-core
extended ResourceDemo and changed it to compile without optimizing pgf, so that all inflection forms are kept
This commit is contained in:
@@ -37,7 +37,8 @@ main = do
|
|||||||
_ -> return ()
|
_ -> return ()
|
||||||
|
|
||||||
compileOne modu = do
|
compileOne modu = do
|
||||||
let comm = "gf -make -s -optimize-pgf -name=" ++
|
---- let comm = "gf -make -s -optimize-pgf -name=" ++
|
||||||
|
let comm = "gf -make -s -name=" ++
|
||||||
modu ++ " " ++ modu ++ ".gf" ++
|
modu ++ " " ++ modu ++ ".gf" ++
|
||||||
" +RTS -K320M"
|
" +RTS -K320M"
|
||||||
putStrLn comm
|
putStrLn comm
|
||||||
|
|||||||
@@ -20,6 +20,8 @@ abstract ResourceDemo = Lexicon, Numeral, Grammar [
|
|||||||
Conj, -- conjunction
|
Conj, -- conjunction
|
||||||
Pron,
|
Pron,
|
||||||
Numeral,
|
Numeral,
|
||||||
|
Interj,
|
||||||
|
Phr,
|
||||||
|
|
||||||
-- fun
|
-- fun
|
||||||
UseCl , -- Tense -> Pol -> Cl -> S,
|
UseCl , -- Tense -> Pol -> Cl -> S,
|
||||||
@@ -70,6 +72,7 @@ abstract ResourceDemo = Lexicon, Numeral, Grammar [
|
|||||||
PN, -- proper name e.g. "John"
|
PN, -- proper name e.g. "John"
|
||||||
Subj, -- subjunction e.g. "because"
|
Subj, -- subjunction e.g. "because"
|
||||||
IAdv, -- interrogative adverb e.g. "why"
|
IAdv, -- interrogative adverb e.g. "why"
|
||||||
|
IComp,
|
||||||
|
|
||||||
ListAP,
|
ListAP,
|
||||||
ListNP,
|
ListNP,
|
||||||
@@ -82,6 +85,14 @@ abstract ResourceDemo = Lexicon, Numeral, Grammar [
|
|||||||
-- fun
|
-- fun
|
||||||
UttS , -- S -> Utt,
|
UttS , -- S -> Utt,
|
||||||
UttQS, -- QS -> Utt,
|
UttQS, -- QS -> Utt,
|
||||||
|
UttNP,
|
||||||
|
UttCN,
|
||||||
|
UttAdv,
|
||||||
|
UttVP,
|
||||||
|
UttImp,
|
||||||
|
UttIP,
|
||||||
|
UttIAdv,
|
||||||
|
UttInterj,
|
||||||
|
|
||||||
UseQCl, -- Tense -> Pol -> QCl -> QS,
|
UseQCl, -- Tense -> Pol -> QCl -> QS,
|
||||||
|
|
||||||
@@ -89,6 +100,8 @@ abstract ResourceDemo = Lexicon, Numeral, Grammar [
|
|||||||
QuestVP , -- IP -> VP -> QCl, -- who walks
|
QuestVP , -- IP -> VP -> QCl, -- who walks
|
||||||
QuestSlash, -- IP -> ClSlash -> QCl, -- who does she walk with
|
QuestSlash, -- IP -> ClSlash -> QCl, -- who does she walk with
|
||||||
QuestIAdv , -- IAdv -> Cl -> QCl, -- why does she walk
|
QuestIAdv , -- IAdv -> Cl -> QCl, -- why does she walk
|
||||||
|
QuestIComp,
|
||||||
|
CompIAdv,
|
||||||
|
|
||||||
SubjCl, -- Cl -> Subj -> S -> Cl, -- she walks because we run
|
SubjCl, -- Cl -> Subj -> S -> Cl, -- she walks because we run
|
||||||
|
|
||||||
@@ -116,12 +129,14 @@ abstract ResourceDemo = Lexicon, Numeral, Grammar [
|
|||||||
|
|
||||||
] ** {
|
] ** {
|
||||||
|
|
||||||
flags startcat = Text ;
|
flags startcat = Phr ;
|
||||||
|
|
||||||
|
|
||||||
-- functions with different type
|
-- functions with different type
|
||||||
|
|
||||||
fun
|
fun
|
||||||
|
PhrUtt : Utt -> Phr ;
|
||||||
|
|
||||||
TextS : S -> Text ; -- with .
|
TextS : S -> Text ; -- with .
|
||||||
TextQS : QS -> Text ; -- with ?
|
TextQS : QS -> Text ; -- with ?
|
||||||
TextImp : VP -> Text ; -- with !
|
TextImp : VP -> Text ; -- with !
|
||||||
@@ -129,6 +144,9 @@ fun
|
|||||||
ComplV2 : V2 -> NP -> VP ;
|
ComplV2 : V2 -> NP -> VP ;
|
||||||
ModCN : AP -> CN -> CN ;
|
ModCN : AP -> CN -> CN ;
|
||||||
CompAP : AP -> VP ;
|
CompAP : AP -> VP ;
|
||||||
|
CompCN : CN -> VP ;
|
||||||
|
CompNP : NP -> VP ;
|
||||||
|
CompAdv : Adv -> VP ;
|
||||||
ConjS : Conj -> S -> S -> S ;
|
ConjS : Conj -> S -> S -> S ;
|
||||||
ConjAP : Conj -> AP -> AP -> AP ;
|
ConjAP : Conj -> AP -> AP -> AP ;
|
||||||
ConjNP : Conj -> NP -> NP -> NP ;
|
ConjNP : Conj -> NP -> NP -> NP ;
|
||||||
@@ -139,7 +157,6 @@ fun
|
|||||||
numeralDet : Numeral -> Det ;
|
numeralDet : Numeral -> Det ;
|
||||||
i_Pron, youSg_Pron, he_Pron, she_Pron, we_Pron, youPl_Pron, they_Pron : Pron ;
|
i_Pron, youSg_Pron, he_Pron, she_Pron, we_Pron, youPl_Pron, they_Pron : Pron ;
|
||||||
SubjS : Subj -> S -> S -> S ; -- if she walks we run
|
SubjS : Subj -> S -> S -> S ; -- if she walks we run
|
||||||
CompAdv : Prep -> NP -> VP ; -- be in the house
|
|
||||||
SlashV2 : NP -> V2 -> ClSlash ; -- she loves
|
SlashV2 : NP -> V2 -> ClSlash ; -- she loves
|
||||||
SlashPrep : Cl -> Prep -> ClSlash ; -- she walks with
|
SlashPrep : Cl -> Prep -> ClSlash ; -- she walks with
|
||||||
AdvCN : CN -> Prep -> NP -> CN ; -- man in the city
|
AdvCN : CN -> Prep -> NP -> CN ; -- man in the city
|
||||||
|
|||||||
@@ -20,9 +20,10 @@ concrete ResourceDemoEng of ResourceDemo = LexiconEng, NumeralEng, GrammarEng [
|
|||||||
Tense, -- tense
|
Tense, -- tense
|
||||||
Pol, -- polarity
|
Pol, -- polarity
|
||||||
Conj, -- conjunction
|
Conj, -- conjunction
|
||||||
|
|
||||||
Pron, -- pronoun
|
Pron, -- pronoun
|
||||||
Numeral,
|
Numeral,
|
||||||
|
Interj,
|
||||||
|
Phr,
|
||||||
|
|
||||||
-- fun
|
-- fun
|
||||||
UseCl , -- Tense -> Pol -> Cl -> S,
|
UseCl , -- Tense -> Pol -> Cl -> S,
|
||||||
@@ -75,6 +76,7 @@ concrete ResourceDemoEng of ResourceDemo = LexiconEng, NumeralEng, GrammarEng [
|
|||||||
PN, -- proper name e.g. "John"
|
PN, -- proper name e.g. "John"
|
||||||
Subj, -- subjunction e.g. "because"
|
Subj, -- subjunction e.g. "because"
|
||||||
IAdv, -- interrogative adverb e.g. "why"
|
IAdv, -- interrogative adverb e.g. "why"
|
||||||
|
IComp,
|
||||||
|
|
||||||
ListAP,
|
ListAP,
|
||||||
ListNP,
|
ListNP,
|
||||||
@@ -89,6 +91,14 @@ concrete ResourceDemoEng of ResourceDemo = LexiconEng, NumeralEng, GrammarEng [
|
|||||||
|
|
||||||
UttS , -- S -> Utt,
|
UttS , -- S -> Utt,
|
||||||
UttQS, -- QS -> Utt,
|
UttQS, -- QS -> Utt,
|
||||||
|
UttNP,
|
||||||
|
UttCN,
|
||||||
|
UttAdv,
|
||||||
|
UttVP,
|
||||||
|
UttImp,
|
||||||
|
UttIP,
|
||||||
|
UttIAdv,
|
||||||
|
UttInterj,
|
||||||
|
|
||||||
UseQCl, -- Tense -> Pol -> QCl -> QS,
|
UseQCl, -- Tense -> Pol -> QCl -> QS,
|
||||||
|
|
||||||
@@ -96,6 +106,8 @@ concrete ResourceDemoEng of ResourceDemo = LexiconEng, NumeralEng, GrammarEng [
|
|||||||
QuestVP , -- IP -> VP -> QCl, -- who walks
|
QuestVP , -- IP -> VP -> QCl, -- who walks
|
||||||
QuestSlash, -- IP -> ClSlash -> QCl, -- who does she walk with
|
QuestSlash, -- IP -> ClSlash -> QCl, -- who does she walk with
|
||||||
QuestIAdv , -- IAdv -> Cl -> QCl, -- why does she walk
|
QuestIAdv , -- IAdv -> Cl -> QCl, -- why does she walk
|
||||||
|
QuestIComp,
|
||||||
|
CompIAdv,
|
||||||
|
|
||||||
SubjCl, -- Cl -> Subj -> S -> Cl, -- she walks because we run
|
SubjCl, -- Cl -> Subj -> S -> Cl, -- she walks because we run
|
||||||
|
|
||||||
@@ -126,6 +138,8 @@ concrete ResourceDemoEng of ResourceDemo = LexiconEng, NumeralEng, GrammarEng [
|
|||||||
-- functions with different type
|
-- functions with different type
|
||||||
|
|
||||||
lin
|
lin
|
||||||
|
PhrUtt u = mkPhr (lin Utt u) ;
|
||||||
|
|
||||||
TextS s = mkText (lin S s) ;
|
TextS s = mkText (lin S s) ;
|
||||||
TextQS qs = mkText (lin QS qs) ;
|
TextQS qs = mkText (lin QS qs) ;
|
||||||
TextImp vp = mkText (mkImp (lin VP vp)) ;
|
TextImp vp = mkText (mkImp (lin VP vp)) ;
|
||||||
@@ -133,6 +147,9 @@ lin
|
|||||||
ComplV2 v np = mkVP v np ;
|
ComplV2 v np = mkVP v np ;
|
||||||
ModCN ap cn = lin CN (mkCN <lin AP ap : AP> <lin CN cn : CN>) ;
|
ModCN ap cn = lin CN (mkCN <lin AP ap : AP> <lin CN cn : CN>) ;
|
||||||
CompAP ap = mkVP <(lin AP ap) : AP> ;
|
CompAP ap = mkVP <(lin AP ap) : AP> ;
|
||||||
|
CompCN ap = mkVP <(lin CN ap) : CN> ;
|
||||||
|
CompNP ap = mkVP <(lin NP ap) : NP> ;
|
||||||
|
CompAdv ap = mkVP <(lin Adv ap) : Adv> ;
|
||||||
ConjS co x y = mkS (lin Conj co) (lin S x) (lin S y) ;
|
ConjS co x y = mkS (lin Conj co) (lin S x) (lin S y) ;
|
||||||
ConjAP co x y = mkAP co x y ;
|
ConjAP co x y = mkAP co x y ;
|
||||||
ConjNP co x y = mkNP co x y ;
|
ConjNP co x y = mkNP co x y ;
|
||||||
@@ -147,7 +164,6 @@ lin
|
|||||||
possDet p = S.mkDet <p : Pron> ;
|
possDet p = S.mkDet <p : Pron> ;
|
||||||
numeralDet n = S.mkDet <n : Numeral> ;
|
numeralDet n = S.mkDet <n : Numeral> ;
|
||||||
SubjS subj a b = mkS (S.mkAdv <subj : Subj> <a : S>) b ;
|
SubjS subj a b = mkS (S.mkAdv <subj : Subj> <a : S>) b ;
|
||||||
CompAdv p pp = mkVP (S.mkAdv <p : Prep> <pp : NP>) ;
|
|
||||||
SlashV2 np v2 = mkClSlash np v2 ;
|
SlashV2 np v2 = mkClSlash np v2 ;
|
||||||
SlashPrep cl p = mkClSlash (lin Cl cl) <p : Prep> ;
|
SlashPrep cl p = mkClSlash (lin Cl cl) <p : Prep> ;
|
||||||
AdvCN cn p pp = mkCN <lin CN cn : CN> (mkAdv <p : Prep> <pp : NP>) ;
|
AdvCN cn p pp = mkCN <lin CN cn : CN> (mkAdv <p : Prep> <pp : NP>) ;
|
||||||
|
|||||||
Reference in New Issue
Block a user