diff --git a/lib/resource-1.0/finnish/ParadigmsFin.gf b/lib/resource-1.0/finnish/ParadigmsFin.gf index 9e2d43bb3..68e690d63 100644 --- a/lib/resource-1.0/finnish/ParadigmsFin.gf +++ b/lib/resource-1.0/finnish/ParadigmsFin.gf @@ -114,11 +114,6 @@ oper nKukko : (kukko,kukon,kukkoja : Str) -> N ; --- For convenience, we define 1-argument paradigms as producing the --- nonhuman gender; the following function changes this: - - humanN : N -> N ; - -- A special case are nouns with no alternations: -- the vowel harmony is inferred from the last letter, -- which must be one of "o", "u", "ö", "y". diff --git a/lib/resource-1.0/finnish/StructuralFin.gf b/lib/resource-1.0/finnish/StructuralFin.gf index 5209ba8fa..85409bd1f 100644 --- a/lib/resource-1.0/finnish/StructuralFin.gf +++ b/lib/resource-1.0/finnish/StructuralFin.gf @@ -34,7 +34,8 @@ concrete StructuralFin of Structural = CatFin ** either7or_DConj = sd2 "joko" "tai" ** {n = Sg} ; everybody_NP = mkNP (regN "jokainen") Sg ; every_Det = mkDet Sg (regN "jokainen") ; - everything_NP = mkNP (nhn (sKorpi "kaikki" "kaiken" "kaikkena")) Sg ; + everything_NP = mkNP ((nhn (sKorpi "kaikki" "kaiken" "kaikkena")) ** + {lock_N = <>}) Sg ; everywhere_Adv = ss "kaikkialla" ; first_Ord = {s = \\n,c => (regN "ensimmäinen").s ! NCase n c} ; from_Prep = casePrep elative ; diff --git a/lib/resource-1.0/italian/ParadigmsIta.gf b/lib/resource-1.0/italian/ParadigmsIta.gf index fb39389fa..dea627a9a 100644 --- a/lib/resource-1.0/italian/ParadigmsIta.gf +++ b/lib/resource-1.0/italian/ParadigmsIta.gf @@ -252,8 +252,7 @@ oper mkVQ : V -> VQ ; mkV2Q : V -> Preposition -> V2Q ; - mkAS : A -> AS ; - subjAS : A -> AS ; + mkAS : A -> AS ; mkA2S : A -> Preposition -> A2S ; mkAV : A -> Preposition -> AV ; mkA2V : A -> Preposition -> Preposition -> A2V ; diff --git a/lib/resource-1.0/mathematical/MathematicalFin.gf b/lib/resource-1.0/mathematical/MathematicalFin.gf new file mode 100644 index 000000000..140082cdd --- /dev/null +++ b/lib/resource-1.0/mathematical/MathematicalFin.gf @@ -0,0 +1,24 @@ +--# -path=.:../finnish:../abstract:../common:prelude + +concrete MathematicalFin of Mathematical = + NounFin - [ComplN2], --- to avoid ambiguity +-- VerbFin, +-- AdjectiveFin, +-- AdverbFin, + NumeralFin, +-- SentenceFin, + QuestionFin, + RelativeFin, + ConjunctionFin, + PhraseFin, + StructuralFin, + + SymbolFin, + PredicationFin, + + LexiconFin + ** { + +flags startcat = Phr ; + +} ; diff --git a/lib/resource-1.0/mathematical/MathematicalSpa.gf b/lib/resource-1.0/mathematical/MathematicalSpa.gf new file mode 100644 index 000000000..578c5829a --- /dev/null +++ b/lib/resource-1.0/mathematical/MathematicalSpa.gf @@ -0,0 +1,24 @@ +--# -path=.:../spanish:../romance:../abstract:../common:prelude + +concrete MathematicalSpa of Mathematical = + NounSpa - [ComplN2], --- to avoid ambiguity +-- VerbSpa, +-- AdjectiveSpa, +-- AdverbSpa, + NumeralSpa, +-- SentenceSpa, + QuestionSpa, + RelativeSpa, + ConjunctionSpa, + PhraseSpa, + StructuralSpa, + + SymbolSpa, + PredicationSpa, -- - [predV3,predV2], --- gf bug + + LexiconSpa + ** { + +flags startcat = Phr ; + +} ; diff --git a/lib/resource-1.0/mathematical/PredicationFin.gf b/lib/resource-1.0/mathematical/PredicationFin.gf new file mode 100644 index 000000000..460439b5f --- /dev/null +++ b/lib/resource-1.0/mathematical/PredicationFin.gf @@ -0,0 +1,3 @@ +concrete PredicationFin of Predication = CatFin ** PredicationI with + (Lang = LangFin) ; + diff --git a/lib/resource-1.0/mathematical/PredicationSpa.gf b/lib/resource-1.0/mathematical/PredicationSpa.gf new file mode 100644 index 000000000..4d9e0b5f0 --- /dev/null +++ b/lib/resource-1.0/mathematical/PredicationSpa.gf @@ -0,0 +1,3 @@ +concrete PredicationSpa of Predication = CatSpa ** PredicationI with + (Lang = LangSpa) ; + diff --git a/lib/resource-1.0/mathematical/SymbolFin.gf b/lib/resource-1.0/mathematical/SymbolFin.gf new file mode 100644 index 000000000..1ebee37a7 --- /dev/null +++ b/lib/resource-1.0/mathematical/SymbolFin.gf @@ -0,0 +1,28 @@ +concrete SymbolFin of Symbol = CatFin ** open Prelude, ResFin in { + +lin + SymbPN i = {s = \\c => i.s} ; --- c + IntPN i = {s = \\c => i.s} ; --- c +{- + CNIntNP cn i = { + s = \\c => (cn.s ! Sg ! DIndef ! Nom ++ i.s) ; + a = agrP3 cn.g Sg + } ; + CNSymbNP det cn xs = let g = cn.g in { + s = \\c => det.s ! cn.isMod ! g ++ cn.s ! det.n ! det.det ! caseNP c ++ xs.s ; + a = agrP3 g det.n + } ; +-} +lincat + + Symb, SymbList = SS ; + +lin + + MkSymb s = s ; + + BaseSymb = infixSS "ja" ; + ConsSymb = infixSS "," ; + +} + diff --git a/lib/resource-1.0/mathematical/SymbolSpa.gf b/lib/resource-1.0/mathematical/SymbolSpa.gf new file mode 100644 index 000000000..e56343432 --- /dev/null +++ b/lib/resource-1.0/mathematical/SymbolSpa.gf @@ -0,0 +1,2 @@ +concrete SymbolSpa of Symbol = CatSpa ** SymbolRomance with + (ResRomance = ResSpa) ; diff --git a/lib/resource-1.0/spanish/ParadigmsSpa.gf b/lib/resource-1.0/spanish/ParadigmsSpa.gf index 9ad5dd284..17263b1a5 100644 --- a/lib/resource-1.0/spanish/ParadigmsSpa.gf +++ b/lib/resource-1.0/spanish/ParadigmsSpa.gf @@ -255,8 +255,7 @@ oper mkVQ : V -> VQ ; mkV2Q : V -> Preposition -> V2Q ; - mkAS : A -> AS ; - subjAS : A -> AS ; + mkAS : A -> AS ; mkA2S : A -> Preposition -> A2S ; mkAV : A -> Preposition -> AV ; mkA2V : A -> Preposition -> Preposition -> A2V ; diff --git a/src/GF/Compile/ShellState.hs b/src/GF/Compile/ShellState.hs index 40e91d9ab..ab9beea36 100644 --- a/src/GF/Compile/ShellState.hs +++ b/src/GF/Compile/ShellState.hs @@ -215,7 +215,9 @@ updateShellState opts ign mcnc sh ((_,sgr,gr),rts) = do concr0 = ifNull Nothing (return . head) concrs notInrts f = notElem f $ map fst rts subcgr = unSubelimCanon cgr - cfs <- mapM (canon2cf opts ign subcgr) concrs --- why need to update all... + cf's <- if oElem noCF opts + then return $ map snd $ cfs sh + else mapM (canon2cf opts ign subcgr) concrs --- why need to update all... let morphos = map (mkMorpho subcgr) concrs let probss = [] ----- @@ -241,7 +243,7 @@ updateShellState opts ign mcnc sh ((_,sgr,gr),rts) = do concretes = zip (zip concrs concrs) (repeat True), canModules = cgr, srcModules = src, - cfs = zip concrs cfs, + cfs = zip concrs cf's, abstracts = abstrs, mcfgs = zip concrs mcfgs, cfgs = zip concrs cfgs, @@ -424,14 +426,6 @@ allActiveStateGrammarsWithNames st = allActiveGrammars = map snd . allActiveStateGrammarsWithNames -{- -allGrammarSTs = map stateGrammarST . allStateGrammars -allCFs = map stateCF . allStateGrammars - -firstGrammarST = stateGrammarST . firstStateGrammar -firstAbstractST = abstractOf . firstGrammarST -firstConcreteST = concreteOf . firstGrammarST --} -- command-line option -lang=foo overrides the actual grammar in state grammarOfOptState :: Options -> ShellState -> StateGrammar grammarOfOptState opts st =