Commit adc9cedd authored by Gérard Huet's avatar Gérard Huet

Return to Indeclinable terminology

parent 70c10e8e
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -556,9 +556,9 @@ value look_up_and_display font gana entry = ...@@ -556,9 +556,9 @@ value look_up_and_display font gana entry =
and sort_out_u accu form = fun and sort_out_u accu form = fun
[ [ (_,morphs) ] -> List.fold_left (reorg form) accu morphs [ [ (_,morphs) ] -> List.fold_left (reorg form) accu morphs
where reorg f (inf,absya,per,abstva) = fun where reorg f (inf,absya,per,abstva) = fun
[ Und_verb (c,Infi) when c=conj -> ([ (c,f) :: inf ],absya,per,abstva) [ Ind_verb (c,Infi) when c=conj -> ([ (c,f) :: inf ],absya,per,abstva)
| Und_verb (c,Absoya) when c=conj -> (inf,[ (c,f) :: absya ],per,abstva) | Ind_verb (c,Absoya) when c=conj -> (inf,[ (c,f) :: absya ],per,abstva)
| Und_verb (c,Perpft) when c=conj -> (inf,absya,[ (c,f) :: per ],abstva) | Ind_verb (c,Perpft) when c=conj -> (inf,absya,[ (c,f) :: per ],abstva)
| Abs_root c when c=conj -> (inf,absya,per,[ (c,f) :: abstva ]) | Abs_root c when c=conj -> (inf,absya,per,[ (c,f) :: abstva ])
| _ -> (inf,absya,per,abstva) | _ -> (inf,absya,per,abstva)
] ]
......
...@@ -259,17 +259,17 @@ value get_roles entry = fun ...@@ -259,17 +259,17 @@ value get_roles entry = fun
else Actor (gram_role n entry c) g n (* beware n duplication *) else Actor (gram_role n entry c) g n (* beware n duplication *)
| Verb_form f n p -> get_fin_roles entry f n p | Verb_form f n p -> get_fin_roles entry f n p
| Abs_root _ -> get_abs_roles entry | Abs_root _ -> get_abs_roles entry
| Und_form Conj -> match entry with | Ind_form Conj -> match entry with
[ "ca" -> Tool Coordination [ "ca" -> Tool Coordination
| _ -> Ignored (* TODO vaa etc *) | _ -> Ignored (* TODO vaa etc *)
] ]
| Und_form Prep -> if entry = "saha" || entry = "vinaa" || entry = "satraa" | Ind_form Prep -> if entry = "saha" || entry = "vinaa" || entry = "satraa"
then Tool Post_instrument then Tool Post_instrument
else Ignored else Ignored
| Und_form Adv -> if entry = "saha" then Tool Not_Post_instrument | Ind_form Adv -> if entry = "saha" then Tool Not_Post_instrument
else Ignored else Ignored
| Und_form Abs -> get_abs_roles entry | Ind_form Abs -> get_abs_roles entry
| Und_form Part -> match entry with | Ind_form Part -> match entry with
[ "maa#2" -> Tool Prohibition [ "maa#2" -> Tool Prohibition
| _ -> Ignored | _ -> Ignored
] ]
......
...@@ -199,7 +199,7 @@ value sort_out accu form = fun ...@@ -199,7 +199,7 @@ value sort_out accu form = fun
] ]
| Bare_stem | Auxi_form -> (mas,fem,neu,any,[ f :: iic ],avy) | Bare_stem | Auxi_form -> (mas,fem,neu,any,[ f :: iic ],avy)
| Avyayaf_form -> (mas,fem,neu,any,iic,[ f :: avy ]) | Avyayaf_form -> (mas,fem,neu,any,iic,[ f :: avy ])
| Und_form _ | Verb_form _ _ _ | Und_verb _ | Abs_root _ | Ind_form _ | Verb_form _ _ _ | Ind_verb _ | Abs_root _
| Avyayai_form | Unanalysed | PV _ | Avyayai_form | Unanalysed | PV _
| Part_form _ _ _ _ -> | Part_form _ _ _ _ ->
failwith "Unexpected form in declensions" failwith "Unexpected form in declensions"
......
...@@ -290,7 +290,7 @@ value extract_gana_pada = fun ...@@ -290,7 +290,7 @@ value extract_gana_pada = fun
| Conjug _ v | Perfut v -> (None,v) | Conjug _ v | Perfut v -> (None,v)
] in ] in
(conj,(o_gana,pada_of_voice voice)) (conj,(o_gana,pada_of_voice voice))
| Und_verb _ _ -> raise Unvoiced (* could be refined *) | Ind_verb _ _ -> raise Unvoiced (* could be refined *)
| _ -> failwith "Unexpected root form" | _ -> failwith "Unexpected root form"
] ]
and extract_gana_pada_k krit = and extract_gana_pada_k krit =
...@@ -613,11 +613,17 @@ value validate out = match out with ...@@ -613,11 +613,17 @@ value validate out = match out with
else [] else []
] ]
(* We now prevent overgeneration of forms "sa" and "e.sa" \Pan{6,1,132} *) (* We now prevent overgeneration of forms "sa" and "e.sa" \Pan{6,1,132} *)
(*i TODO: similar test for dual forms i*) | [ (ph,form,_) :: [ (Pron,[ 1; 48 ],_) :: _ ] ] (* sa *) ->
| [ (ph,form,_) :: [ (Pron,[ 1; 48 ],_) :: _ ] ] (* sa *) ->
if Phonetics.consonant_initial (Word.mirror form) if Phonetics.consonant_initial (Word.mirror form)
then out else [] then out else []
| [ (ph,form,_) :: [ (Pron,[ 1; 47; 10 ],_) :: _ ] ] (* e.sa *) -> (* Or, if one wants to replace sa with sa.h : [
| [ ((ph,form,_) as last) :: [ (Pron,[ 1; 48 ],_) :: rest ] ] (* sa *) ->
let initial = List.hd (Word.mirror form) in
if Phonetics.consonant initial then
let sandhi = Euphony ([ 48; 1; initial], [ 48; 1; 48 ], [ initial ]) in
[ last :: [ (Pron,[ 48; 1; 48 ],sandhi) :: rest ] ]
else [] ] *)
| [ (ph,form,_) :: [ (Pron,[ 1; 47; 10 ],_) :: _ ] ] (* e.sa *) ->
if Phonetics.consonant_initial (Word.mirror form) if Phonetics.consonant_initial (Word.mirror form)
then out else [] then out else []
| [ (ph,form,_) :: [ (Pron,[ 48; 1; 48 ],_) :: _ ] ] (* sas *) -> | [ (ph,form,_) :: [ (Pron,[ 48; 1; 48 ],_) :: _ ] ] (* sas *) ->
...@@ -626,9 +632,10 @@ value validate out = match out with ...@@ -626,9 +632,10 @@ value validate out = match out with
| [ (ph,form,_) :: [ (Pron,[ 48; 1; 47; 10 ],_) :: _ ] ] (* e.sas *) -> | [ (ph,form,_) :: [ (Pron,[ 48; 1; 47; 10 ],_) :: _ ] ] (* e.sas *) ->
if Phonetics.consonant_initial (Word.mirror form) then [] if Phonetics.consonant_initial (Word.mirror form) then []
else out else out
(*i TODO: similar test for dual forms i*)
(* Alternative: put infinitives in Root rather than Indecl+Abso (* Alternative: put infinitives in Root rather than Indecl+Abso
[| [ (Absc,_,_) :: _ ] [| [ (Absc,_,_) :: _ ]
| [ (Absv,_,_) :: _ ] -> check root is autonomous | [ (Absv,_,_) :: _ ] -> check root is autonomous ]
idem for infinitives, but they need their own phase/color *) idem for infinitives, but they need their own phase/color *)
(* Finally we glue taddita suffix "forms" to the previous (iic) segment *) (* Finally we glue taddita suffix "forms" to the previous (iic) segment *)
(* NB This cumulates with the preverb glueing but not with itself *) (* NB This cumulates with the preverb glueing but not with itself *)
...@@ -654,13 +661,13 @@ value terminal_sa = fun ...@@ -654,13 +661,13 @@ value terminal_sa = fun
| _ -> False | _ -> False
] ]
; ;
(*i unused (*i unused [
value terminal_sas = fun value terminal_sas = fun
[ [ (Pron,[ 48; 1; 48 ],_) :: _ ] (* sas *) [ [ (Pron,[ 48; 1; 48 ],_) :: _ ] (* sas *)
| [ (Pron,[ 48; 1; 47; 10 ],_) :: _ ] (* e.sas *) -> True | [ (Pron,[ 48; 1; 47; 10 ],_) :: _ ] (* e.sas *) -> True
| _ -> False | _ -> False
] ]
; i*) ; ] i*)
open Html; open Html;
value rec color_of_phase = fun value rec color_of_phase = fun
[ Noun | Noun2 | Lopak | Nouc | Nouv | Kriv | Kric | Krid | Auxik | Kama [ Noun | Noun2 | Lopak | Nouc | Nouv | Kriv | Kric | Krid | Auxik | Kama
......
...@@ -14,8 +14,8 @@ open List2; (* unstack ass subtract *) ...@@ -14,8 +14,8 @@ open List2; (* unstack ass subtract *)
open Auto.Auto; (* auto rule choices State *) open Auto.Auto; (* auto rule choices State *)
(* used by Interface : [Viccheda = Segment Phases Machine Segment_control] (* used by Interface : [Viccheda = Segment Phases Machine Segment_control]
where Machine = Dispatch Transducers Lemmas where [Machine = Dispatch Transducers Lemmas]
where Lemmas = Load_morphs.Morphs Prel Phases *) where [Lemmas = Load_morphs.Morphs Prel Phases] *)
module Segment module Segment
(Phases: sig (Phases: sig
type phase type phase
...@@ -40,7 +40,7 @@ module Segment ...@@ -40,7 +40,7 @@ module Segment
and output = list segment; and output = list segment;
value validate : output -> output; (* consistency check / compress *) value validate : output -> output; (* consistency check / compress *)
value terminal_sa : output -> bool; value terminal_sa : output -> bool;
(* unused value terminal_sas : output -> bool; *) (* unused [value terminal_sas : output -> bool;] *)
end) end)
(Control: sig value star : ref bool; (* chunk= if star then word+ else word *) (Control: sig value star : ref bool; (* chunk= if star then word+ else word *)
value full : ref bool; (* all kridantas and nan cpds if full *) value full : ref bool; (* all kridantas and nan cpds if full *)
......
...@@ -126,11 +126,11 @@ value peri = ref (Deco.empty : inflected_map) ...@@ -126,11 +126,11 @@ value peri = ref (Deco.empty : inflected_map)
value add_morphperi w d i = value add_morphperi w d i =
peri.val := Lexmap.addl peri.val w (d w,i) peri.val := Lexmap.addl peri.val w (d w,i)
; ;
(* undeclinable forms - adverbs, conjonctions, particles *) (* indeclinable forms - adverbs, conjonctions, particles *)
value undecls = ref (Deco.empty : inflected_map) value indecls = ref (Deco.empty : inflected_map)
; ;
value add_morphund w d i = value add_morphind w d i =
undecls.val := Lexmap.addl undecls.val w (d w,i) indecls.val := Lexmap.addl indecls.val w (d w,i)
; ;
(* invocations are registered in invs *) (* invocations are registered in invs *)
value invs = ref (Deco.empty : inflected_map) value invs = ref (Deco.empty : inflected_map)
...@@ -349,7 +349,7 @@ value add_morphauxiick w stem i = ...@@ -349,7 +349,7 @@ value add_morphauxiick w stem i =
value inftu = ref (Deco.empty : inflected_map) value inftu = ref (Deco.empty : inflected_map)
and kama = ref (Deco.empty : inflected_map) and kama = ref (Deco.empty : inflected_map)
; ;
value add_morphinftu w d i = (* similar to [add_morphund] *) value add_morphinftu w d i = (* similar to [add_morphind] *)
if Phonetics.phantomatic w then () else if Phonetics.phantomatic w then () else
inftu.val := Lexmap.addl inftu.val w (d w,i) inftu.val := Lexmap.addl inftu.val w (d w,i)
and add_morphkama w d i = (* similar to [add_morph] *) and add_morphkama w d i = (* similar to [add_morph] *)
...@@ -372,7 +372,7 @@ type nominal = ...@@ -372,7 +372,7 @@ type nominal =
type flexion = type flexion =
[ Declined of nominal and gender and list (number * list (case * word)) [ Declined of nominal and gender and list (number * list (case * word))
| Conju of finite and list (number * list (person * word)) | Conju of finite and list (number * list (person * word))
| Undecl of und_kind and word (* avyaya, particle, interjection, nota *) | Indecl of ind_kind and word (* avyaya, particle, interjection, nota *)
| Bare of nominal and word (* Iic *) | Bare of nominal and word (* Iic *)
| Avyayai of word (* Iic of avyayiibhaava cpd *) | Avyayai of word (* Iic of avyayiibhaava cpd *)
| Avyayaf of word (* Ifc of avyayiibhaava cpd *) | Avyayaf of word (* Ifc of avyayiibhaava cpd *)
...@@ -432,10 +432,10 @@ value enter1 entry = ...@@ -432,10 +432,10 @@ value enter1 entry =
; (* Now auxiliaries for verbal cvi compounds *) ; (* Now auxiliaries for verbal cvi compounds *)
if auxiliary entry then add_morphauxi w delta v else () if auxiliary entry then add_morphauxi w delta v else ()
} }
| Undecl k w -> match k with | Indecl k w -> match k with
[ Adv | Part | Conj | Default | Prep | Tas -> [ Adv | Part | Conj | Default | Prep | Tas ->
add_morphund w delta (Und_form k) add_morphind w delta (Ind_form k)
| Interj -> add_invoc w delta (Und_form k) | Interj -> add_invoc w delta (Ind_form k)
| Avya -> () (* since generative *) | Avya -> () (* since generative *)
| Abs | Infl | Nota -> () (* no recording in morph tables *) | Abs | Infl | Nota -> () (* no recording in morph tables *)
(* Abs generated by absolutives of verbs, Infl by flexions of nouns, and (* Abs generated by absolutives of verbs, Infl by flexions of nouns, and
...@@ -447,7 +447,7 @@ value enter1 entry = ...@@ -447,7 +447,7 @@ value enter1 entry =
| Avyayaf w -> add_morphyaf w delta Avyayaf_form | Avyayaf w -> add_morphyaf w delta Avyayaf_form
| Cvi w -> add_morphvi w delta Auxi_form | Cvi w -> add_morphvi w delta Auxi_form
| Invar m w -> let (_,vi) = m | Invar m w -> let (_,vi) = m
and f = Und_verb m in and f = Ind_verb m in
match vi with match vi with
[ Infi -> do (* 2 cases: with and without preverbs - saves one phase *) [ Infi -> do (* 2 cases: with and without preverbs - saves one phase *)
{ add_morphabsya w delta f aapv { add_morphabsya w delta f aapv
...@@ -466,7 +466,7 @@ value enter1 entry = ...@@ -466,7 +466,7 @@ value enter1 entry =
(* NB Allows perpft of verbs with preverbs but overgenerates since (* NB Allows perpft of verbs with preverbs but overgenerates since
it allows perpft followed by a non perfect form of auxiliary *) it allows perpft followed by a non perfect form of auxiliary *)
] ]
| Inftu m w -> let f = Und_verb (m,Infi) in | Inftu m w -> let f = Ind_verb (m,Infi) in
add_morphinftu w delta f (* infinitive in -tu *) add_morphinftu w delta f (* infinitive in -tu *)
| Absotvaa c w -> let f = Abs_root c in | Absotvaa c w -> let f = Abs_root c in
add_morphabstvaa w delta f (* abs-tvaa: no preverb *) add_morphabstvaa w delta f (* abs-tvaa: no preverb *)
......
...@@ -31,7 +31,7 @@ value peri : ref inflected_map; ...@@ -31,7 +31,7 @@ value peri : ref inflected_map;
value auxi : ref inflected_map; value auxi : ref inflected_map;
value auxik : ref inflected_map; value auxik : ref inflected_map;
value auxiick : ref inflected_map; value auxiick : ref inflected_map;
value undecls : ref inflected_map; value indecls : ref inflected_map;
value invs : ref inflected_map; value invs : ref inflected_map;
value absya : ref inflected_map; value absya : ref inflected_map;
value abstvaa : ref inflected_map; value abstvaa : ref inflected_map;
...@@ -57,7 +57,7 @@ type nominal = ...@@ -57,7 +57,7 @@ type nominal =
type flexion = type flexion =
[ Declined of nominal and gender and list (number * list (case * Word.word)) [ Declined of nominal and gender and list (number * list (case * Word.word))
| Conju of finite and list (number * list (person * Word.word)) | Conju of finite and list (number * list (person * Word.word))
| Undecl of und_kind and Word.word | Indecl of ind_kind and Word.word
| Bare of nominal and Word.word | Bare of nominal and Word.word
| Avyayai of Word.word (* Iic of avyayiibhaava cpd *) | Avyayai of Word.word (* Iic of avyayiibhaava cpd *)
| Avyayaf of Word.word (* Ifc of avyayiibhaava cpd *) | Avyayaf of Word.word (* Ifc of avyayiibhaava cpd *)
......
...@@ -114,7 +114,7 @@ and print_scl_kind = fun ...@@ -114,7 +114,7 @@ and print_scl_kind = fun
| Conj -> ps "<conj/>" | Conj -> ps "<conj/>"
| Abs -> ps "<abs/>" | Abs -> ps "<abs/>"
| Adv -> ps "<adv/>" | Adv -> ps "<adv/>"
| _ -> ps "<und/>" | _ -> ps "<ind/>"
] ]
; ;
value print_scl_finite (c,p) = value print_scl_finite (c,p) =
...@@ -137,11 +137,11 @@ value print_scl_morph = fun ...@@ -137,11 +137,11 @@ value print_scl_morph = fun
; print_scl_number n ; print_scl_number n
; print_scl_person p ; print_scl_person p
} }
| Und_form k -> print_scl_kind k | Ind_form k -> print_scl_kind k
| Avyayaf_form -> ps "<avya/>" | Avyayaf_form -> ps "<avya/>"
| Abs_root c -> do { print_scl_conjugation c; ps "<abs/>" } | Abs_root c -> do { print_scl_conjugation c; ps "<abs/>" }
| Auxi_form -> ps "<iiv/>" | Auxi_form -> ps "<iiv/>"
| Und_verb m -> print_scl_modal m | Ind_verb m -> print_scl_modal m
| PV _ -> ps "<pv/>" | PV _ -> ps "<pv/>"
| Unanalysed -> ps "<unknown/>" | Unanalysed -> ps "<unknown/>"
] ]
......
...@@ -83,7 +83,7 @@ and string_person = fun ...@@ -83,7 +83,7 @@ and string_person = fun
| Second -> "2" | Second -> "2"
| Third -> "3" | Third -> "3"
] ]
and string_und_kind = fun and string_ind_kind = fun
[ Part -> "part." [ Part -> "part."
| Prep -> "prep." | Prep -> "prep."
| Conj -> "conj." | Conj -> "conj."
...@@ -116,10 +116,10 @@ value string_morph = fun ...@@ -116,10 +116,10 @@ value string_morph = fun
| Bare_stem | Avyayai_form -> "iic." | Bare_stem | Avyayai_form -> "iic."
| Avyayaf_form -> "ind." | Avyayaf_form -> "ind."
| Verb_form f n p -> (string_finite f) ^ (string_number n) ^ (string_person p) | Verb_form f n p -> (string_finite f) ^ (string_number n) ^ (string_person p)
| Und_form k -> string_und_kind k | Ind_form k -> string_ind_kind k
| Abs_root c -> (string_conjugation c) ^ "abs." | Abs_root c -> (string_conjugation c) ^ "abs."
| Auxi_form -> "iiv." | Auxi_form -> "iiv."
| Und_verb m -> string_modal m | Ind_verb m -> string_modal m
| Unanalysed -> "?" | Unanalysed -> "?"
| PV pvs -> "pv." | PV pvs -> "pv."
] ]
......
...@@ -23,8 +23,8 @@ type inflexion_tag = (* vibhakti *) ...@@ -23,8 +23,8 @@ type inflexion_tag = (* vibhakti *)
| Avyayai_form (* iic forms of avyayiibhaava cpds *) | Avyayai_form (* iic forms of avyayiibhaava cpds *)
| Avyayaf_form (* ifc forms of avyayiibhaava cpds *) | Avyayaf_form (* ifc forms of avyayiibhaava cpds *)
| Verb_form of finite and number and person (* finite conjugated root forms *) | Verb_form of finite and number and person (* finite conjugated root forms *)
| Und_form of und_kind (* undeclinable forms: prep, adv, etc *) | Ind_form of ind_kind (* indeclinable forms: prep, adv, etc *)
| Und_verb of modal (* undeclinable inf abs-ya and perpft *) | Ind_verb of modal (* indeclinable inf abs-ya and perpft *)
| Abs_root of conjugation (* abs-tvaa *) | Abs_root of conjugation (* abs-tvaa *)
| Auxi_form (* verbal auxiliaries forms *) | Auxi_form (* verbal auxiliaries forms *)
| Unanalysed (* un-analysable segments *) | Unanalysed (* un-analysable segments *)
......
...@@ -48,7 +48,7 @@ and normal_stem = Encode.normal_stem ...@@ -48,7 +48,7 @@ and normal_stem = Encode.normal_stem
(* declension generators *) (* declension generators *)
type declension_class = type declension_class =
[ Gender of gender (* declined substantive, adjective, number, pronoun *) [ Gender of gender (* declined substantive, adjective, number, pronoun *)
| Und of und_kind (* undeclinable form *) | Ind of ind_kind (* indeclinable form *)
] ]
and nmorph = (string * declension_class) and nmorph = (string * declension_class)
; ;
...@@ -201,7 +201,7 @@ value build_mas_a stem entry = ...@@ -201,7 +201,7 @@ value build_mas_a stem entry =
] ]
; Bare Noun (wrap stem 1) ; Bare Noun (wrap stem 1)
; Avyayaf (fix stem "am"); Avyayaf (fix stem "aat") (* avyayiibhaava *) ; Avyayaf (fix stem "am"); Avyayaf (fix stem "aat") (* avyayiibhaava *)
; Undecl Tas (fix stem "atas") (* tasil productive *) ; Indecl Tas (fix stem "atas") (* tasil productive *)
; Cvi (wrap stem 4) (* cvi now productive for masculine stems in -a *) ; Cvi (wrap stem 4) (* cvi now productive for masculine stems in -a *)
]) ])
; ;
...@@ -245,7 +245,7 @@ value build_mas_i stem trunc entry = (* declension of "ghi" class *) ...@@ -245,7 +245,7 @@ value build_mas_i stem trunc entry = (* declension of "ghi" class *)
] ]
; Bare Noun (mirror stem) ; Bare Noun (mirror stem)
; Avyayaf (mirror stem) ; Avyayaf (mirror stem)
; Undecl Tas (fix stem "tas") ; Indecl Tas (fix stem "tas")
; Cvi (wrap trunc 4) (* "aadhi1" "pratinidhi" *) ; Cvi (wrap trunc 4) (* "aadhi1" "pratinidhi" *)
]) ])
; ;
...@@ -330,7 +330,7 @@ value build_mas_u stem trunc entry = (* similar to [build_mas_i] *) ...@@ -330,7 +330,7 @@ value build_mas_u stem trunc entry = (* similar to [build_mas_i] *)
; Bare Noun (mirror stem) ; Bare Noun (mirror stem)
; Cvi (wrap trunc 6) (* .rju maru m.rdu laghu *) ; Cvi (wrap trunc 6) (* .rju maru m.rdu laghu *)
; Avyayaf (mirror stem) ; Avyayaf (mirror stem)
; Undecl Tas (fix stem "tas") ; Indecl Tas (fix stem "tas")
] ]
; ;
value build_mas_ri_v stem entry = (* vriddhi in strong cases *) value build_mas_ri_v stem entry = (* vriddhi in strong cases *)
...@@ -531,7 +531,7 @@ value build_mas_red stem entry = ...@@ -531,7 +531,7 @@ value build_mas_red stem entry =
; decline Loc "tsu" ; decline Loc "tsu"
]) ])
] ]
; Undecl Tas (fix stem "tas") ; Indecl Tas (fix stem "tas")
] ]
; ;
value build_mas_at stem entry = value build_mas_at stem entry =
...@@ -711,7 +711,7 @@ value build_man g stem entry = ...@@ -711,7 +711,7 @@ value build_man g stem entry =
]) ])
] ]
; Avyayaf (fix stem "mam") ; Avyayaf (fix stem "mam")
; Undecl Tas (fix stem "matas") ; Indecl Tas (fix stem "matas")
] @ (if entry = "dharman" then [] (* redundant with dharma *) ] @ (if entry = "dharman" then [] (* redundant with dharma *)
else [ Bare Noun (mirror [ 1 :: [ 41 :: stem ]]) ]) else [ Bare Noun (mirror [ 1 :: [ 41 :: stem ]]) ])
@ (if g=Neu && man_iiv entry then [ Cvi (mirror [ 4 :: [ 41 :: stem ]]) ] @ (if g=Neu && man_iiv entry then [ Cvi (mirror [ 4 :: [ 41 :: stem ]]) ]
...@@ -812,7 +812,7 @@ value build_van g stem entry = ...@@ -812,7 +812,7 @@ value build_van g stem entry =
] ]
; Bare Noun (mirror [ 1 :: [ 44 :: stem ]]) ; Bare Noun (mirror [ 1 :: [ 44 :: stem ]])
; Avyayaf (fix stem "vam") ; Avyayaf (fix stem "vam")
; Undecl Tas (fix stem "vatas") ; Indecl Tas (fix stem "vatas")
] ]
@ if g=Neu then [ Avyayaf (fix stem "va") ] else []) (* \Pan{5,4,109} *) @ if g=Neu then [ Avyayaf (fix stem "va") ] else []) (* \Pan{5,4,109} *)
...@@ -1914,7 +1914,7 @@ value build_neu_a stem entry = ...@@ -1914,7 +1914,7 @@ value build_neu_a stem entry =
] ]
; Bare Noun (wrap stem 1) ; Bare Noun (wrap stem 1)
; Avyayaf (fix stem "am"); Avyayaf (fix stem "aat") ; Avyayaf (fix stem "am"); Avyayaf (fix stem "aat")
; Undecl Tas (fix stem "atas") ; Indecl Tas (fix stem "atas")
] @ (if a_n_iiv entry then [ Cvi (wrap stem 4) ] else [])) ] @ (if a_n_iiv entry then [ Cvi (wrap stem 4) ] else []))
; ;
value build_neu_i trunc entry = (* stems in -i and -ii *) value build_neu_i trunc entry = (* stems in -i and -ii *)
...@@ -2928,7 +2928,7 @@ value build_fem_i stem trunc entry = ...@@ -2928,7 +2928,7 @@ value build_fem_i stem trunc entry =
] ]
; Bare Noun (mirror stem) ; Bare Noun (mirror stem)
; Avyayaf (mirror stem) ; Avyayaf (mirror stem)
; Undecl Tas (fix stem "tas") ; Indecl Tas (fix stem "tas")
] @ (if entry = "vi.mzati" ] @ (if entry = "vi.mzati"
then [ Bare Noun (mirror trunc) (* vi.mzat *) ] then [ Bare Noun (mirror trunc) (* vi.mzat *) ]
else [])) else []))
...@@ -5521,8 +5521,8 @@ value compute_nouns_stem_form e stem d p = ...@@ -5521,8 +5521,8 @@ value compute_nouns_stem_form e stem d p =
| _ -> report stem g | _ -> report stem g
] ]
] ]
| Und k -> let form = mirror (terminal_form stem) in | Ind k -> let form = mirror (terminal_form stem) in
enter e [ Undecl k form ] enter e [ Indecl k form ]
] with ] with
[ Failure s -> do [ Failure s -> do
{ output_string stdout "\n\n" { output_string stdout "\n\n"
...@@ -5709,20 +5709,20 @@ value enter_iiy entry = ...@@ -5709,20 +5709,20 @@ value enter_iiy entry =
; ;
value tasil_preserve () = do (* Whitney§1098 *) value tasil_preserve () = do (* Whitney§1098 *)
(* needed since -tas etymology induces skipping the entry *) (* needed since -tas etymology induces skipping the entry *)
{ enter1 "tad" (Undecl Tas (code "tatas")) (* tasil on tad \Pan{5,3,7} *) { enter1 "tad" (Indecl Tas (code "tatas")) (* tasil on tad \Pan{5,3,7} *)
; enter1 "ya#1" (Undecl Tas (code "yatas")) (* tasil on ya \Pan{5,3,7} *) ; enter1 "ya#1" (Indecl Tas (code "yatas")) (* tasil on ya \Pan{5,3,7} *)
; enter1 "ku#1" (Undecl Tas (code "kutas")) (* tasil on ku \Pan{5,3,7-8} *) ; enter1 "ku#1" (Indecl Tas (code "kutas")) (* tasil on ku \Pan{5,3,7-8} *)
; enter1 "abhi" (Undecl Tas (code "abhitas")) (* tasil on abhi \Pan{5,3,9} *) ; enter1 "abhi" (Indecl Tas (code "abhitas")) (* tasil on abhi \Pan{5,3,9} *)
; enter1 "pari" (Undecl Tas (code "paritas")) (* tasil on pari \Pan{5,3,9} *) ; enter1 "pari" (Indecl Tas (code "paritas")) (* tasil on pari \Pan{5,3,9} *)
; enter1 "anti" (Undecl Tas (code "antitas")) (* tasil on pn \Pan{5,3,7} *) ; enter1 "anti" (Indecl Tas (code "antitas")) (* tasil on pn \Pan{5,3,7} *)
; enter1 "adas" (Undecl Tas (code "amutas")) (* id *) ; enter1 "adas" (Indecl Tas (code "amutas")) (* id *)
; enter1 "anya" (Undecl Tas (code "anyatas")) (* id *) ; enter1 "anya" (Indecl Tas (code "anyatas")) (* id *)
; enter1 "avara" (Undecl Tas (code "avaratas")) (* id *) ; enter1 "avara" (Indecl Tas (code "avaratas")) (* id *)
; enter1 "para" (Undecl Tas (code "paratas")) (* id *) ; enter1 "para" (Indecl Tas (code "paratas")) (* id *)
; enter1 "vizva" (Undecl Tas (code "vizvatas")) (* id *) ; enter1 "vizva" (Indecl Tas (code "vizvatas")) (* id *)
; enter1 "sva" (Undecl Tas (code "svatas")) (* id *) ; enter1 "sva" (Indecl Tas (code "svatas")) (* id *)
; enter1 "puurva" (Undecl Tas (code "puurvatas")) (* id *) ; enter1 "puurva" (Indecl Tas (code "puurvatas")) (* id *)
; enter1 "aze.sa" (Undecl Tas (code "aze.satas")) (* tasil on privative cpd *) ; enter1 "aze.sa" (Indecl Tas (code "aze.satas")) (* tasil on privative cpd *)
} }
; ;
(* Supplementary forms - called by [Make_nouns.genders_to_nouns] (* Supplementary forms - called by [Make_nouns.genders_to_nouns]
......
...@@ -14,7 +14,7 @@ open Morphology; (* [inflected_map] *) ...@@ -14,7 +14,7 @@ open Morphology; (* [inflected_map] *)
type declension_class = type declension_class =
[ Gender of gender (* declined substantive, adjective, number, pronoun *) [ Gender of gender (* declined substantive, adjective, number, pronoun *)
| Und of und_kind (* undeclinable form *) | Ind of ind_kind (* indeclinable form *)
] ]
and nmorph = (string * declension_class) and nmorph = (string * declension_class)
; ;
......
...@@ -252,9 +252,9 @@ value print_sem w = fun ...@@ -252,9 +252,9 @@ value print_sem w = fun
[ Noun_form g n c -> print_noun c n g [ Noun_form g n c -> print_noun c n g
| Part_form v g n c -> do { print_verbal v; print_noun c n g } | Part_form v g n c -> do { print_verbal v; print_noun c n g }
| Verb_form f n p -> print_verb w f n p | Verb_form f n p -> print_verb w f n p
| Abs_root _ | Und_form Abs -> print_abs w | Abs_root _ | Ind_form Abs -> print_abs w
| Und_form Adv -> ps "Adverb" | Ind_form Adv -> ps "Adverb"
| Und_form _ -> ps (translate_tool w) | Ind_form _ -> ps (translate_tool w)
| Bare_stem -> ps "Compound" | Bare_stem -> ps "Compound"
| Auxi_form -> ps "Composed" | Auxi_form -> ps "Composed"
| _ -> () | _ -> ()
......
...@@ -92,7 +92,7 @@ and participle = (* participles *) ...@@ -92,7 +92,7 @@ and participle = (* participles *)
] ]
; ;
(* Invariable verbal forms. (* Invariable verbal forms.
Such forms are undeclinable and have their own inflected forms constructors. Such forms are indeclinable and have their own inflected forms constructors.
Infinitives are similar to dative substantival forms, periphrastic perfect Infinitives are similar to dative substantival forms, periphrastic perfect
forms are associated with an auxiliary verb in the perfect. forms are associated with an auxiliary verb in the perfect.
Absolutives split into root absolutives in -tvaa and absolutives in -ya Absolutives split into root absolutives in -tvaa and absolutives in -ya
...@@ -159,7 +159,7 @@ and krit = (* coarser than Paninian krit suffixes *) ...@@ -159,7 +159,7 @@ and krit = (* coarser than Paninian krit suffixes *)
] ]
; ;
type und_kind = type ind_kind =
[ Adv (* adverb *) [ Adv (* adverb *)
| Avya (* turned into an adverb by avyayiibhaava compounding *) | Avya (* turned into an adverb by avyayiibhaava compounding *)
| Abs (* root absolutive in -tvaa *) | Abs (* root absolutive in -tvaa *)
......
...@@ -8,4 +8,4 @@ ...@@ -8,4 +8,4 @@
(**************************************************************************)