mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-09 13:09:33 -06:00
93 lines
2.8 KiB
Plaintext
93 lines
2.8 KiB
Plaintext
resource ResCmn = open Prelude in {
|
|
flags coding=utf8;
|
|
-- parameters
|
|
|
|
param
|
|
TTense = TPres | TPerf | TPast | TFut ;
|
|
Aspect = Perf | DurStat | DurProg | Exper ;
|
|
Number = Sg | Pl ;
|
|
SForm = Phr PosType | Sent;
|
|
PosType = APhrase | NPhrase | VPhrase ;
|
|
DeForm = DeNoun | NdNoun ; -- parameter created for noun with/out partical "de"
|
|
|
|
-- parts of speech
|
|
|
|
oper
|
|
|
|
VP = { verb : Verb ; compl : Str ; prePart : Str} ;
|
|
NP = {s : Str ; n : Number } ;
|
|
copula : Verb = { s = table {
|
|
True => table { _ => "是" };
|
|
False => table { _ => "不是" }};
|
|
vinf = "是" } ;
|
|
|
|
-- for morphology
|
|
|
|
Noun : Type = {s : Str; Counter: Str} ;
|
|
Adj : Type = {s : Str; monoSyl: Bool} ;
|
|
Verb : Type = {s : Bool => Aspect => Str ; vinf : Str} ;
|
|
|
|
regNoun : Str -> Str -> Noun = \s,c -> {s = s; Counter = c};
|
|
|
|
mkAdj : Str -> Bool -> Adj = \s,b -> {s = s; monoSyl = b};
|
|
|
|
regVerb : (walk : Str) -> Verb = \v -> {
|
|
s = table {
|
|
True => table { Perf => v ++ "了" ;
|
|
DurStat => v ++ "着" ;
|
|
DurProg => "在" ++ v ;
|
|
Exper => v ++ "过" } ;
|
|
False => table {Perf => "不" ++ v ++ "了" ;
|
|
DurStat => "不" ++ v ;
|
|
DurProg => "没" ++ "在" ++ v ;
|
|
Exper => "没" ++ v ++ "过" }};
|
|
vinf = v} ;
|
|
|
|
mkVerb : (believe : Str) -> (PerfPart : Str)
|
|
-> (DurStatPart : Str)
|
|
-> (DurProgPart : Str)
|
|
-> (ExperPart : Str) -> Verb = \v,pp,ds,dp,ep -> {
|
|
s = table {
|
|
True => table { Perf => v ++ pp ;
|
|
DurStat => v ++ ds ;
|
|
DurProg => dp ++ v ;
|
|
Exper => v ++ ep } ;
|
|
False => table {Perf => "不" ++ v ++ pp ;
|
|
DurStat => "不" ++ v ;
|
|
DurProg => "没" ++ dp ++ v ;
|
|
Exper => "没" ++ v ++ ep }} ;
|
|
vinf = v} ;
|
|
|
|
-- for structural words
|
|
|
|
mkDet : Str -> Number -> {s : Str ; n : Number} = \s,n -> {
|
|
s = s ;
|
|
n = n
|
|
} ;
|
|
|
|
pronNP : (s : Str) -> Number -> NP = \s,n -> {
|
|
s = s ;
|
|
n = n
|
|
} ;
|
|
|
|
mkPrep : Str -> Str -> {s : Str ; prePart : Str} = \s,b -> {
|
|
s = s ;
|
|
prePart = b} ;
|
|
|
|
mkAdv : Str -> Str -> {s : Str ; prePart : Str} = \b,s -> {
|
|
s = s ;
|
|
prePart = b} ;
|
|
|
|
mkSubj : Str -> Str -> {prePart : Str ; sufPart : Str} = \p,s -> {
|
|
prePart = p ;
|
|
sufPart = s} ;
|
|
|
|
-- Proper Noun
|
|
|
|
PropN : (s : Str) -> Number -> NP = \s,n -> {
|
|
s = s ;
|
|
n = n
|
|
} ;
|
|
|
|
}
|