(* Led * Copyright 1996 Peter Sestoft. Må kopieres og modificeres jvfr. GNU General Public License *) open Basis infixr && fun adj form koen = let val adj = Adj.vaelg () in Str (Adj.boej adj form koen) && (if ssh 0.15 then Str "og" && Str (Adj.boej (Adj.vaelgikke [adj]) form koen) else Tom) end fun advadj form koen = (if ssh 0.2 then Smaaord.vaelgadv () else Tom) && adj form koen fun nominal formkrav = let val (form as (_, tal), koen, nom, taellelig) = Substant.vaelg formkrav fun saadan () = if ssh 0.03 then Str "som sådan" else Tom fun possesiv () = Substant.possesiv (#3 (Substant.vaelg (SOME (bes, ent)))) val nled = (case form of (ubs, flt) => if ssh 0.5 then (* bestemt flertal med adjektiv *) Smaaord.artikel ((bes, flt), koen) && advadj (bes, flt) koen && nom && saadan () else (* ubestemt flertal med adjektiv *) (if ssh 0.4 then possesiv () else if ssh 0.6 then Str (vaelgfra #["visse", "nogle", "alle", "samtlige", "forskellige", "andre", "enkelte"]) else Tom ) && advadj form koen && nom | (ubs, ent) => if taellelig then if ssh 0.4 then (* bestemt ental *) Smaaord.artikel ((bes, ent), koen) && advadj (bes, ent) koen && nom && saadan () else if ssh 0.4 then (* ubest. ental *) Smaaord.artikel (form, koen) && advadj form koen && nom else (* ejefald + ubestemt ental *) possesiv () && advadj (bes, ent) koen && nom else advadj form koen && nom | (bes, _) => nom && saadan ()) in (tal, koen, nled) end;