diff options
| author | aarne <aarne@chalmers.se> | 2009-06-22 15:39:08 +0000 |
|---|---|---|
| committer | aarne <aarne@chalmers.se> | 2009-06-22 15:39:08 +0000 |
| commit | e89fdae2fa1626348d8025824a7469252fa85e42 (patch) | |
| tree | c7d46bbd0494043b4bd6f917a25a7687517d0547 /old-lib/resource/common/ParamX.gf | |
| parent | 3049b59b35b25381a7c6787444165c200d66e08b (diff) | |
next-lib renamed to lib, lib to old-lib
Diffstat (limited to 'old-lib/resource/common/ParamX.gf')
| -rw-r--r-- | old-lib/resource/common/ParamX.gf | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/old-lib/resource/common/ParamX.gf b/old-lib/resource/common/ParamX.gf new file mode 100644 index 000000000..65901de66 --- /dev/null +++ b/old-lib/resource/common/ParamX.gf @@ -0,0 +1,65 @@ +resource ParamX = open Prelude in { + +---- flags optimize=noexpand ; + + param + Number = Sg | Pl ; + Person = P1 | P2 | P3 ; + Degree = Posit | Compar | Superl ; + + Anteriority = + Simul + | Anter --# notpresent + ; + Tense = + Pres + | Past --# notpresent + | Fut --# notpresent + | Cond --# notpresent + ; + + param + + Polarity = Pos | Neg ; + + QForm = QDir | QIndir ; + +-- Imperatives: True = polite, False = familiar. + + ImpForm = ImpF Number Bool ; + + oper + numImp : ImpForm -> Number = \i -> + case i of { + ImpF n _ => n + } ; + + conjNumber : Number -> Number -> Number = \m,n -> + case m of { + Sg => n ; + _ => Pl + } ; + +-- For persons, we let the latter argument win ("either you or I am absent" +-- but "either I or you are absent"). This is not quite clear. + + conjPerson : Person -> Person -> Person = \_,p -> + p ; + +-- To construct a record with a polarity-dependent table. + + polCases : SS -> SS -> {s : Polarity => Str} = \true,false -> { + s = table { + Pos => true.s ; + Neg => false.s + } + } ; + +-- To count the length of a tail in a sequence of digits, e.g. to put commas +-- as in 1,000,000. + + param + DTail = T1 | T2 | T3 ; + + +} |
