mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-27 17:08:54 -06:00
(Hun) Fix case forms after P3 Sg possessive suffix
This commit is contained in:
@@ -429,7 +429,8 @@ oper
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|
||||||
-- This is used in ResHun.caseFromStem, not here.
|
-- This is used in ResHun.caseFromStem, which makes NP out of CN.
|
||||||
|
-- Ns only have stems, and these forms are attached to the stems.
|
||||||
|
|
||||||
endCase : Case -> HarmForms = \c -> case c of {
|
endCase : Case -> HarmForms = \c -> case c of {
|
||||||
Nom => harm1 [] ;
|
Nom => harm1 [] ;
|
||||||
@@ -453,4 +454,12 @@ oper
|
|||||||
-- Tem => harm1 "kor" -- Temporal 'at <numeral>'. Only used with numerals.
|
-- Tem => harm1 "kor" -- Temporal 'at <numeral>'. Only used with numerals.
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
endCasePossVow : Case -> HarmForms = \c -> case c of {
|
||||||
|
Acc => harm1 "t" ;
|
||||||
|
Sup => harm1 "n" ;
|
||||||
|
Tra => harm "vá" "vé" ;
|
||||||
|
Ins => harm "val" "vel" ;
|
||||||
|
_ => endCase c
|
||||||
|
} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,15 +37,16 @@ oper
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
caseFromPossStem : Noun -> Determiner -> Case -> Str = \cn,det,cas ->
|
caseFromPossStem : Noun -> Determiner -> Case -> Str = \cn,det,cas ->
|
||||||
let stem : NumCaseStem = case <det.n,det.dt> of {
|
let stem_casetable : NumCaseStem*(Case->HarmForms) = case <det.n,det.dt> of {
|
||||||
<Sg,DetPoss st> => case st of {
|
<Sg,DetPoss st> => case st of {
|
||||||
dSg_rSg1P2 => SgAccStem ;
|
dSg_rSg1P2 => <SgAccStem,endCase> ;
|
||||||
dSg_rP3 => PossdSg_PossrP3 ;
|
dSg_rP3 => <PossdSg_PossrP3,endCasePossVow> ; -- TODO nneeds to be vowel only after Sg3
|
||||||
dSg_rPl1 => PossdSg_PossrPl1 } ;
|
dSg_rPl1 => <PossdSg_PossrPl1,endCase> } ;
|
||||||
<Pl,DetPoss _> => PossdPl ;
|
<Pl,DetPoss _> => <PossdPl,endCase> ;
|
||||||
_ => Predef.error "caseFromPossStem: Trying to apply to non-possessive Det"
|
_ => Predef.error "caseFromPossStem: Trying to apply to non-possessive Det" } ;
|
||||||
} ;
|
stem = stem_casetable.p1 ;
|
||||||
in applyCaseSuf (det.poss ! cn.h) cas cn stem ;
|
casetable = stem_casetable.p2 ;
|
||||||
|
in applyCaseSuf (det.poss ! cn.h) cas cn stem casetable ;
|
||||||
|
|
||||||
BaseNP : Type = {
|
BaseNP : Type = {
|
||||||
agr : Person*Number ;
|
agr : Person*Number ;
|
||||||
@@ -191,8 +192,9 @@ oper
|
|||||||
applyCase : (Str->Str->Str) -> Case -> Noun -> NumCaseStem -> Str =
|
applyCase : (Str->Str->Str) -> Case -> Noun -> NumCaseStem -> Str =
|
||||||
\bind,cas,cn,stem -> bind (cn.s ! stem) (endCase cas ! cn.h) ;
|
\bind,cas,cn,stem -> bind (cn.s ! stem) (endCase cas ! cn.h) ;
|
||||||
|
|
||||||
applyCaseSuf : Str -> Case -> Noun -> NumCaseStem -> Str =
|
applyCaseSuf : Str -> Case -> Noun -> NumCaseStem -> (Case -> HarmForms) -> Str =
|
||||||
\suf,cas,cn,stem -> glue (glue (cn.s ! stem) suf) (endCase cas ! cn.h) ;
|
\suf,cas,cn,stem,casetable ->
|
||||||
|
glue (glue (cn.s ! stem) suf) (casetable cas ! cn.h) ;
|
||||||
|
|
||||||
|
|
||||||
------------------
|
------------------
|
||||||
|
|||||||
Reference in New Issue
Block a user