forked from GitHub/gf-core
added ParadigmsEng to the abstract syntax to api grammar
This commit is contained in:
94
lib/src/api/abstract_to_api/AbsParadigmsEng.gf
Normal file
94
lib/src/api/abstract_to_api/AbsParadigmsEng.gf
Normal file
@@ -0,0 +1,94 @@
|
||||
abstract AbsParadigmsEng = AbsToAPI ** {
|
||||
|
||||
cat Gender ; Number ; Case ;
|
||||
|
||||
fun Human : Gender ;
|
||||
fun Nonhuman : Gender ;
|
||||
fun Masculine : Gender ;
|
||||
fun Feminine : Gender ;
|
||||
|
||||
fun Singular : Number ;
|
||||
fun Plural : Number ;
|
||||
|
||||
fun Nominative : Case ;
|
||||
fun Genitive : Case ;
|
||||
|
||||
fun mkN_1 : String -> N ;
|
||||
fun mkN_2 : String -> String -> N ;
|
||||
fun mkN_3 : String -> String -> String -> String -> N ;
|
||||
fun mkN_4 : Gender -> N -> N ;
|
||||
fun mkN_5 : String -> N -> N ;
|
||||
|
||||
fun mkN2_1 : String -> N2 ;
|
||||
fun mkN2_2 : N -> N2 ;
|
||||
fun mkN2_3 : N -> String -> N2 ;
|
||||
fun mkN2_4 : N -> Prep -> N2 ;
|
||||
fun mkN2_5 : String -> String -> N2 ;
|
||||
|
||||
fun mkN3_1 : N -> Prep -> Prep -> N3 ;
|
||||
|
||||
fun mkPN_1 : String -> PN ;
|
||||
fun mkPN_2 : N -> PN ;
|
||||
|
||||
fun mkQuant_1 : String -> String -> Quant ;
|
||||
fun mkQuant_2 : String -> String -> String -> String -> Quant ;
|
||||
|
||||
fun mkA_1 : String -> A ;
|
||||
fun mkA_2 : String -> String -> A ;
|
||||
fun mkA_3 : String -> String -> String -> String -> A ;
|
||||
|
||||
fun CompoundA : A -> A ;
|
||||
fun SimpleA : A -> A ;
|
||||
fun IrregAdv : A -> String -> A ;
|
||||
|
||||
|
||||
fun mkA2_1 : A -> Prep -> A2 ;
|
||||
fun mkA2_2 : A -> String -> A2 ;
|
||||
fun mkA2_3 : String -> Prep -> A2 ;
|
||||
fun mkA2_4 : String -> String -> A2 ;
|
||||
|
||||
fun mkAdv_1 : String -> Adv ;
|
||||
|
||||
fun mkAdV_1 : String -> AdV ;
|
||||
|
||||
fun mkAdA_1 : String -> AdA ;
|
||||
|
||||
fun mkAdN_1 : String -> AdN ;
|
||||
|
||||
fun mkPrep_1 : String -> Prep ;
|
||||
fun NoPrep : Prep ;
|
||||
|
||||
fun mkV_1 : String -> V ;
|
||||
fun mkV_2 : String -> String -> V ;
|
||||
fun mkV_3 : String -> String -> String -> V ;
|
||||
fun mkV_4 : String -> String -> String -> String -> String -> V ;
|
||||
fun mkV_5 : String -> V -> V ;
|
||||
|
||||
fun PartV : V -> String -> V ;
|
||||
fun ReflV : V -> V ;
|
||||
|
||||
fun mkV2_1 : V -> V2 ;
|
||||
fun mkV2_2 : V -> Prep -> V2 ;
|
||||
|
||||
fun mkV3_1 : V -> V3 ;
|
||||
fun mkV3_2 : V -> Prep -> Prep -> V3 ;
|
||||
|
||||
fun mkVS_1 : V -> VS ;
|
||||
|
||||
fun mkV2S_1 : V -> Prep -> V2S ;
|
||||
|
||||
fun mkVV_1 : V -> VV ;
|
||||
fun IngVV : V -> VV ;
|
||||
|
||||
fun mkV2V_1 : V -> Prep -> Prep -> V2V ;
|
||||
fun IngV2V : V -> Prep -> Prep -> V2V ;
|
||||
|
||||
fun mkVA_1 : V -> VA ;
|
||||
|
||||
fun mkV2A_1 : V -> Prep -> V2A ;
|
||||
|
||||
fun mkVQ_1 : V -> VQ ;
|
||||
|
||||
fun mkV2Q_1 : V -> Prep -> V2Q ;
|
||||
|
||||
}
|
||||
137
lib/src/api/abstract_to_api/AbsParadigmsEngAbs.gf
Normal file
137
lib/src/api/abstract_to_api/AbsParadigmsEngAbs.gf
Normal file
@@ -0,0 +1,137 @@
|
||||
concrete AbsParadigmsEngAbs of AbsParadigmsEng = AbsToAPIAbs ** {
|
||||
|
||||
lincat Gender, Number, Case = {ind : Str; attr : Str} ;
|
||||
|
||||
lin Human = mkSimpCat "human" ;
|
||||
lin Nonhuman = mkSimpCat "nonhuman" ;
|
||||
lin Masculine = mkSimpCat "masculine" ;
|
||||
lin Feminine = mkSimpCat "feminine" ;
|
||||
|
||||
lin Singular = mkSimpCat "singular" ;
|
||||
lin Plural = mkSimpCat "plural" ;
|
||||
|
||||
lin Nominative = mkSimpCat "nominative" ;
|
||||
lin Genitive = mkSimpCat "genitive" ;
|
||||
|
||||
lin mkN_1 = mkUnaryStringCat "mkN" ;
|
||||
lin mkN_2 = mkBinaryStringCat "mkN" ;
|
||||
lin mkN_3 = mkQuaternaryStringCat "mkN" ;
|
||||
lin mkN_4 = mkBinaryCat "mkN" ;
|
||||
lin mkN_5 = mkStringCatCat "mkN" ;
|
||||
|
||||
lin mkN2_1 = mkUnaryStringCat "mkN2" ;
|
||||
lin mkN2_2 = mkUnaryCat "mkN2" ;
|
||||
lin mkN2_3 = mkCatStringCat "mkN2" ;
|
||||
lin mkN2_4 = mkBinaryCat "mkN2" ;
|
||||
lin mkN2_5 = mkBinaryStringCat "mkN2" ;
|
||||
|
||||
lin mkN3_1 = mkTernaryCat "mkN3" ;
|
||||
|
||||
lin mkPN_1 = mkUnaryStringCat "mkPN" ;
|
||||
lin mkPN_2 = mkUnaryCat "mkPN" ;
|
||||
|
||||
lin mkQuant_1 = mkBinaryStringCat "mkQuant" ;
|
||||
lin mkQuant_2 = mkQuaternaryStringCat "mkQuant" ;
|
||||
|
||||
lin mkA_1 = mkUnaryStringCat "mkA" ;
|
||||
lin mkA_2 = mkBinaryStringCat "mkA" ;
|
||||
lin mkA_3 = mkQuaternaryStringCat "mkA" ;
|
||||
|
||||
lin CompoundA = mkUnaryCat "compoundA" ;
|
||||
lin SimpleA = mkUnaryCat "simpleA" ;
|
||||
lin IrregAdv = mkCatStringCat "irregAdv" ;
|
||||
|
||||
|
||||
lin mkA2_1 = mkBinaryCat "mkA2" ;
|
||||
lin mkA2_2 = mkCatStringCat "mkA2" ;
|
||||
lin mkA2_3 = mkStringCatCat "mkA2" ;
|
||||
lin mkA2_4 = mkBinaryStringCat "mkA2" ;
|
||||
|
||||
lin mkAdv_1 = mkUnaryStringCat "mkAdv" ;
|
||||
|
||||
lin mkAdV_1 = mkUnaryStringCat "mkAdV" ;
|
||||
|
||||
lin mkAdA_1 = mkUnaryStringCat "mkAdA" ;
|
||||
|
||||
lin mkAdN_1 = mkUnaryStringCat "mkAdN" ;
|
||||
|
||||
lin mkPrep_1 = mkUnaryStringCat "mkPrep" ;
|
||||
lin NoPrep = mkSimpCat "NoPrep" ;
|
||||
|
||||
lin mkV_1 = mkUnaryStringCat "mkV" ;
|
||||
lin mkV_2 = mkBinaryStringCat "mkV" ;
|
||||
lin mkV_3 = mkTernaryStringCat "mkV" ;
|
||||
lin mkV_4 = mkQuintaryStringCat "mkV" ;
|
||||
lin mkV_5 = mkStringCatCat "mkV" ;
|
||||
|
||||
lin PartV = mkCatStringCat "partV" ;
|
||||
lin ReflV = mkUnaryCat "reflV" ;
|
||||
|
||||
lin mkV2_1 = mkUnaryCat "mkV2" ;
|
||||
lin mkV2_2 = mkBinaryCat "mkV2" ;
|
||||
|
||||
lin mkV3_1 = mkUnaryCat "mkV3" ;
|
||||
lin mkV3_2 = mkTernaryCat "mkV3" ;
|
||||
|
||||
lin mkVS_1 = mkUnaryCat "mkVS" ;
|
||||
|
||||
lin mkV2S_1 = mkBinaryCat "mkV2S" ;
|
||||
|
||||
lin mkVV_1 = mkUnaryCat "mkVV" ;
|
||||
lin IngVV = mkUnaryCat "ingVV" ;
|
||||
|
||||
lin mkV2V_1 = mkTernaryCat "mkV2V" ;
|
||||
lin IngV2V = mkTernaryCat "mkV2V" ;
|
||||
|
||||
lin mkVA_1 = mkUnaryCat "mkVA" ;
|
||||
|
||||
lin mkV2A_1 = mkBinaryCat "mkV2A" ;
|
||||
|
||||
lin mkVQ_1 = mkUnaryCat "mkVQ" ;
|
||||
|
||||
lin mkV2Q_1 = mkBinaryCat "mkV2Q" ;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
oper mkUnaryStringCat : Str-> String -> {ind : Str ; attr : Str} =
|
||||
\s,str ->
|
||||
let sstr = s + "'" ++ str.s ++ "'" in
|
||||
{ind = sstr; attr = "(" ++ sstr ++ ")"};
|
||||
|
||||
oper mkBinaryStringCat : Str -> String -> String -> {ind : Str ; attr : Str} =
|
||||
\s, str1, str2 ->
|
||||
let sstr = s ++ "'" ++ str1.s ++ "'" ++ "'" ++ str2.s ++ "'" in
|
||||
{ind = sstr; attr = "(" ++ sstr ++ ")" };
|
||||
|
||||
oper mkTernaryStringCat : Str -> String -> String -> String -> {ind : Str ; attr : Str} =
|
||||
\s, str1, str2, str3 ->
|
||||
let sstr = s ++ "'" ++ str1.s ++ "'" ++ "'" ++ str2.s ++ "'" ++ "'" ++ str3.s ++ "'" in
|
||||
{ind = sstr; attr = "(" ++ sstr ++ ")" };
|
||||
|
||||
oper mkQuaternaryStringCat : Str -> String -> String -> String -> String -> {ind : Str ; attr : Str} =
|
||||
\s, str1, str2, str3, str4 ->
|
||||
let sstr = s ++ "'" ++ str1.s ++ "'" ++ "'" ++ str2.s ++ "'" ++ "'" ++ str3.s ++ "'" ++ "'" ++ str4.s ++ "'" in
|
||||
{ind = sstr; attr = "(" ++ sstr ++ ")" };
|
||||
|
||||
oper mkQuintaryStringCat : Str -> String -> String -> String -> String -> String -> {ind : Str ; attr : Str} =
|
||||
\s, str1, str2, str3, str4, str5 ->
|
||||
let sstr = s ++ "'" ++ str1.s ++ "'" ++ "'" ++ str2.s ++ "'" ++ "'" ++ str3.s ++ "'" ++ "'" ++ str4.s ++ "'" ++ "'" ++ str5.s ++ "'" in
|
||||
{ind = sstr; attr = "(" ++ sstr ++ ")" };
|
||||
|
||||
|
||||
oper mkCatStringCat : Str -> {ind : Str ; attr : Str} -> String -> {ind : Str ; attr : Str} =
|
||||
\s, ob, str1 ->
|
||||
let sstr = s ++ ob.attr ++ "'" ++ str1.s ++ "'" in
|
||||
{ind = sstr ; attr = "("++sstr ++")"} ;
|
||||
|
||||
oper mkStringCatCat : Str -> String -> {ind : Str ; attr : Str} -> {ind : Str ; attr : Str} =
|
||||
\s, str1, ob ->
|
||||
let sstr = s ++ "'" ++ str1.s ++ "'" ++ ob.attr in
|
||||
{ind = sstr ; attr = "("++sstr ++")"} ;
|
||||
|
||||
|
||||
}
|
||||
137
lib/src/api/abstract_to_api/AbsParadigmsEngapi.gf
Normal file
137
lib/src/api/abstract_to_api/AbsParadigmsEngapi.gf
Normal file
@@ -0,0 +1,137 @@
|
||||
concrete AbsParadigmsEngapi of AbsParadigmsEng = AbsToAPIapi ** {
|
||||
|
||||
lincat Gender, Number, Case = {ind : Str; attr : Str} ;
|
||||
|
||||
lin Human = mkSimpCat "human" ;
|
||||
lin Nonhuman = mkSimpCat "nonhuman" ;
|
||||
lin Masculine = mkSimpCat "masculine" ;
|
||||
lin Feminine = mkSimpCat "feminine" ;
|
||||
|
||||
lin Singular = mkSimpCat "singular" ;
|
||||
lin Plural = mkSimpCat "plural" ;
|
||||
|
||||
lin Nominative = mkSimpCat "nominative" ;
|
||||
lin Genitive = mkSimpCat "genitive" ;
|
||||
|
||||
lin mkN_1 = mkUnaryStringCat "mkN" ;
|
||||
lin mkN_2 = mkBinaryStringCat "mkN" ;
|
||||
lin mkN_3 = mkQuaternaryStringCat "mkN" ;
|
||||
lin mkN_4 = mkBinaryCat "mkN" ;
|
||||
lin mkN_5 = mkStringCatCat "mkN" ;
|
||||
|
||||
lin mkN2_1 = mkUnaryStringCat "mkN2" ;
|
||||
lin mkN2_2 = mkUnaryCat "mkN2" ;
|
||||
lin mkN2_3 = mkCatStringCat "mkN2" ;
|
||||
lin mkN2_4 = mkBinaryCat "mkN2" ;
|
||||
lin mkN2_5 = mkBinaryStringCat "mkN2" ;
|
||||
|
||||
lin mkN3_1 = mkTernaryCat "mkN3" ;
|
||||
|
||||
lin mkPN_1 = mkUnaryStringCat "mkPN" ;
|
||||
lin mkPN_2 = mkUnaryCat "mkPN" ;
|
||||
|
||||
lin mkQuant_1 = mkBinaryStringCat "mkQuant" ;
|
||||
lin mkQuant_2 = mkQuaternaryStringCat "mkQuant" ;
|
||||
|
||||
lin mkA_1 = mkUnaryStringCat "mkA" ;
|
||||
lin mkA_2 = mkBinaryStringCat "mkA" ;
|
||||
lin mkA_3 = mkQuaternaryStringCat "mkA" ;
|
||||
|
||||
lin CompoundA = mkUnaryCat "compoundA" ;
|
||||
lin SimpleA = mkUnaryCat "simpleA" ;
|
||||
lin IrregAdv = mkCatStringCat "irregAdv" ;
|
||||
|
||||
|
||||
lin mkA2_1 = mkBinaryCat "mkA2" ;
|
||||
lin mkA2_2 = mkCatStringCat "mkA2" ;
|
||||
lin mkA2_3 = mkStringCatCat "mkA2" ;
|
||||
lin mkA2_4 = mkBinaryStringCat "mkA2" ;
|
||||
|
||||
lin mkAdv_1 = mkUnaryStringCat "mkAdv" ;
|
||||
|
||||
lin mkAdV_1 = mkUnaryStringCat "mkAdV" ;
|
||||
|
||||
lin mkAdA_1 = mkUnaryStringCat "mkAdA" ;
|
||||
|
||||
lin mkAdN_1 = mkUnaryStringCat "mkAdN" ;
|
||||
|
||||
lin mkPrep_1 = mkUnaryStringCat "mkPrep" ;
|
||||
lin NoPrep = mkSimpCat "NoPrep" ;
|
||||
|
||||
lin mkV_1 = mkUnaryStringCat "mkV" ;
|
||||
lin mkV_2 = mkBinaryStringCat "mkV" ;
|
||||
lin mkV_3 = mkTernaryStringCat "mkV" ;
|
||||
lin mkV_4 = mkQuintaryStringCat "mkV" ;
|
||||
lin mkV_5 = mkStringCatCat "mkV" ;
|
||||
|
||||
lin PartV = mkCatStringCat "partV" ;
|
||||
lin ReflV = mkUnaryCat "reflV" ;
|
||||
|
||||
lin mkV2_1 = mkUnaryCat "mkV2" ;
|
||||
lin mkV2_2 = mkBinaryCat "mkV2" ;
|
||||
|
||||
lin mkV3_1 = mkUnaryCat "mkV3" ;
|
||||
lin mkV3_2 = mkTernaryCat "mkV3" ;
|
||||
|
||||
lin mkVS_1 = mkUnaryCat "mkVS" ;
|
||||
|
||||
lin mkV2S_1 = mkBinaryCat "mkV2S" ;
|
||||
|
||||
lin mkVV_1 = mkUnaryCat "mkVV" ;
|
||||
lin IngVV = mkUnaryCat "ingVV" ;
|
||||
|
||||
lin mkV2V_1 = mkTernaryCat "mkV2V" ;
|
||||
lin IngV2V = mkTernaryCat "mkV2V" ;
|
||||
|
||||
lin mkVA_1 = mkUnaryCat "mkVA" ;
|
||||
|
||||
lin mkV2A_1 = mkBinaryCat "mkV2A" ;
|
||||
|
||||
lin mkVQ_1 = mkUnaryCat "mkVQ" ;
|
||||
|
||||
lin mkV2Q_1 = mkBinaryCat "mkV2Q" ;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
oper mkUnaryStringCat : Str-> String -> {ind : Str ; attr : Str} =
|
||||
\s,str ->
|
||||
let sstr = s ++ "'" ++ str.s ++ "'" in
|
||||
{ind = sstr; attr = "(" ++ sstr ++ ")"};
|
||||
|
||||
oper mkBinaryStringCat : Str -> String -> String -> {ind : Str ; attr : Str} =
|
||||
\s, str1, str2 ->
|
||||
let sstr = s ++ "'" ++ str1.s ++ "'" ++ "'" ++ str2.s ++ "'" in
|
||||
{ind = sstr; attr = "(" ++ sstr ++ ")" };
|
||||
|
||||
oper mkTernaryStringCat : Str -> String -> String -> String -> {ind : Str ; attr : Str} =
|
||||
\s, str1, str2, str3 ->
|
||||
let sstr = s ++ "'" ++ str1.s ++ "'" ++ "'" ++ str2.s ++ "'" ++ "'" ++ str3.s ++ "'" in
|
||||
{ind = sstr; attr = "(" ++ sstr ++ ")" };
|
||||
|
||||
oper mkQuaternaryStringCat : Str -> String -> String -> String -> String -> {ind : Str ; attr : Str} =
|
||||
\s, str1, str2, str3, str4 ->
|
||||
let sstr = s ++ "'" ++ str1.s ++ "'" ++ "'" ++ str2.s ++ "'" ++ "'" ++ str3.s ++ "'" ++ "'" ++ str4.s ++ "'" in
|
||||
{ind = sstr; attr = "(" ++ sstr ++ ")" };
|
||||
|
||||
oper mkQuintaryStringCat : Str -> String -> String -> String -> String -> String -> {ind : Str ; attr : Str} =
|
||||
\s, str1, str2, str3, str4, str5 ->
|
||||
let sstr = s ++ "'" ++ str1.s ++ "'" ++ "'" ++ str2.s ++ "'" ++ "'" ++ str3.s ++ "'" ++ "'" ++ str4.s ++ "'" ++ "'" ++ str5.s ++ "'" in
|
||||
{ind = sstr; attr = "(" ++ sstr ++ ")" };
|
||||
|
||||
|
||||
oper mkCatStringCat : Str -> {ind : Str ; attr : Str} -> String -> {ind : Str ; attr : Str} =
|
||||
\s, ob, str1 ->
|
||||
let sstr = s ++ ob.attr ++ "'" ++ str1.s ++ "'" in
|
||||
{ind = sstr ; attr = "("++sstr ++")"} ;
|
||||
|
||||
oper mkStringCatCat : Str -> String -> {ind : Str ; attr : Str} -> {ind : Str ; attr : Str} =
|
||||
\s, str1, ob ->
|
||||
let sstr = s ++ "'" ++ str1.s ++ "'" ++ ob.attr in
|
||||
{ind = sstr ; attr = "("++sstr ++")"} ;
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user