From d4ba6d5aef4e55bc13eb7401cf8fbcea2b66180f Mon Sep 17 00:00:00 2001 From: "ra.monique" Date: Wed, 19 Oct 2011 09:46:31 +0000 Subject: [PATCH] added ParadigmsEng to the abstract syntax to api grammar --- .../api/abstract_to_api/AbsParadigmsEng.gf | 94 ++++++++++++ .../api/abstract_to_api/AbsParadigmsEngAbs.gf | 137 ++++++++++++++++++ .../api/abstract_to_api/AbsParadigmsEngapi.gf | 137 ++++++++++++++++++ 3 files changed, 368 insertions(+) create mode 100644 lib/src/api/abstract_to_api/AbsParadigmsEng.gf create mode 100644 lib/src/api/abstract_to_api/AbsParadigmsEngAbs.gf create mode 100644 lib/src/api/abstract_to_api/AbsParadigmsEngapi.gf diff --git a/lib/src/api/abstract_to_api/AbsParadigmsEng.gf b/lib/src/api/abstract_to_api/AbsParadigmsEng.gf new file mode 100644 index 000000000..da586b586 --- /dev/null +++ b/lib/src/api/abstract_to_api/AbsParadigmsEng.gf @@ -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 ; + +} diff --git a/lib/src/api/abstract_to_api/AbsParadigmsEngAbs.gf b/lib/src/api/abstract_to_api/AbsParadigmsEngAbs.gf new file mode 100644 index 000000000..164760c27 --- /dev/null +++ b/lib/src/api/abstract_to_api/AbsParadigmsEngAbs.gf @@ -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 ++")"} ; + + +} diff --git a/lib/src/api/abstract_to_api/AbsParadigmsEngapi.gf b/lib/src/api/abstract_to_api/AbsParadigmsEngapi.gf new file mode 100644 index 000000000..c66e94330 --- /dev/null +++ b/lib/src/api/abstract_to_api/AbsParadigmsEngapi.gf @@ -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 ++")"} ; + + +}