diff --git a/lib/resource-1.0/doc/gfdoc/Adjective.html b/lib/resource-1.0/doc/gfdoc/Adjective.html
index 5ec079344..0b384776f 100644
--- a/lib/resource-1.0/doc/gfdoc/Adjective.html
+++ b/lib/resource-1.0/doc/gfdoc/Adjective.html
@@ -7,7 +7,7 @@
Adjectives and adjectival phrases
Author:
-Last update: Fri Jan 20 18:01:37 2006
+Last update: Wed Jan 25 10:50:12 2006
diff --git a/lib/resource-1.0/doc/gfdoc/Adverb.html b/lib/resource-1.0/doc/gfdoc/Adverb.html
index abfe772d4..dc190c656 100644
--- a/lib/resource-1.0/doc/gfdoc/Adverb.html
+++ b/lib/resource-1.0/doc/gfdoc/Adverb.html
@@ -7,7 +7,7 @@
Adverbs and adverbial phrases
Author:
-Last update: Fri Jan 20 18:01:37 2006
+Last update: Wed Jan 25 10:50:12 2006
diff --git a/lib/resource-1.0/doc/gfdoc/Basic.html b/lib/resource-1.0/doc/gfdoc/Basic.html
index 7066d8215..f9da1479c 100644
--- a/lib/resource-1.0/doc/gfdoc/Basic.html
+++ b/lib/resource-1.0/doc/gfdoc/Basic.html
@@ -7,7 +7,7 @@
A Basic Lexicon
Author:
-Last update: Fri Jan 20 18:01:37 2006
+Last update: Wed Jan 25 10:50:12 2006
diff --git a/lib/resource-1.0/doc/gfdoc/Cat.html b/lib/resource-1.0/doc/gfdoc/Cat.html
index 430ad80d4..3822534c4 100644
--- a/lib/resource-1.0/doc/gfdoc/Cat.html
+++ b/lib/resource-1.0/doc/gfdoc/Cat.html
@@ -7,7 +7,7 @@
The category system
Author:
-Last update: Fri Jan 20 18:01:37 2006
+Last update: Wed Jan 25 10:50:12 2006
diff --git a/lib/resource-1.0/doc/gfdoc/Conjunction.html b/lib/resource-1.0/doc/gfdoc/Conjunction.html
index b3905380b..86d17d538 100644
--- a/lib/resource-1.0/doc/gfdoc/Conjunction.html
+++ b/lib/resource-1.0/doc/gfdoc/Conjunction.html
@@ -7,7 +7,7 @@
Coordination
Author:
-Last update: Fri Jan 20 18:01:38 2006
+Last update: Wed Jan 25 10:50:13 2006
diff --git a/lib/resource-1.0/doc/gfdoc/Lang.html b/lib/resource-1.0/doc/gfdoc/Lang.html
index e73346719..861454dc7 100644
--- a/lib/resource-1.0/doc/gfdoc/Lang.html
+++ b/lib/resource-1.0/doc/gfdoc/Lang.html
@@ -7,7 +7,7 @@
The Main Module of the Resource Grammar
Author:
-Last update: Fri Jan 20 18:01:38 2006
+Last update: Wed Jan 25 10:50:13 2006
diff --git a/lib/resource-1.0/doc/gfdoc/Math.html b/lib/resource-1.0/doc/gfdoc/Math.html
index f52e9f688..5cfbbcfd0 100644
--- a/lib/resource-1.0/doc/gfdoc/Math.html
+++ b/lib/resource-1.0/doc/gfdoc/Math.html
@@ -7,7 +7,7 @@
Symbolic expressions
Author:
-Last update: Fri Jan 20 18:01:38 2006
+Last update: Wed Jan 25 10:50:13 2006
diff --git a/lib/resource-1.0/doc/gfdoc/Noun.html b/lib/resource-1.0/doc/gfdoc/Noun.html
index 95497a073..c62d998da 100644
--- a/lib/resource-1.0/doc/gfdoc/Noun.html
+++ b/lib/resource-1.0/doc/gfdoc/Noun.html
@@ -7,7 +7,7 @@
The construction of nouns, noun phrases, and determiners
Author:
-Last update: Fri Jan 20 18:01:38 2006
+Last update: Wed Jan 25 10:50:13 2006
diff --git a/lib/resource-1.0/doc/gfdoc/Numeral.html b/lib/resource-1.0/doc/gfdoc/Numeral.html
index 9a1c5f47c..caa162e2b 100644
--- a/lib/resource-1.0/doc/gfdoc/Numeral.html
+++ b/lib/resource-1.0/doc/gfdoc/Numeral.html
@@ -7,7 +7,7 @@
Numerals
Author:
-Last update: Fri Jan 20 18:01:38 2006
+Last update: Wed Jan 25 10:50:13 2006
diff --git a/lib/resource-1.0/doc/gfdoc/ParadigmsEng.html b/lib/resource-1.0/doc/gfdoc/ParadigmsEng.html
index 9cb2c4d5e..7c2388852 100644
--- a/lib/resource-1.0/doc/gfdoc/ParadigmsEng.html
+++ b/lib/resource-1.0/doc/gfdoc/ParadigmsEng.html
@@ -43,7 +43,7 @@
Author:
-Last update: Fri Jan 20 18:01:40 2006
+Last update: Wed Jan 25 10:50:14 2006
Produced by
diff --git a/lib/resource-1.0/doc/gfdoc/ParadigmsFre.html b/lib/resource-1.0/doc/gfdoc/ParadigmsFre.html
index 295cac122..35e3deef0 100644
--- a/lib/resource-1.0/doc/gfdoc/ParadigmsFre.html
+++ b/lib/resource-1.0/doc/gfdoc/ParadigmsFre.html
@@ -41,7 +41,7 @@
Author:
-Last update: Fri Jan 20 18:01:41 2006
+Last update: Wed Jan 25 10:50:15 2006
Produced by
diff --git a/lib/resource-1.0/doc/gfdoc/ParadigmsGer.html b/lib/resource-1.0/doc/gfdoc/ParadigmsGer.html
index dd001478e..e43582fa4 100644
--- a/lib/resource-1.0/doc/gfdoc/ParadigmsGer.html
+++ b/lib/resource-1.0/doc/gfdoc/ParadigmsGer.html
@@ -35,7 +35,7 @@
Author:
-Last update: Fri Jan 20 18:01:41 2006
+Last update: Wed Jan 25 10:50:15 2006
Produced by
diff --git a/lib/resource-1.0/doc/gfdoc/ParadigmsSwe.html b/lib/resource-1.0/doc/gfdoc/ParadigmsSwe.html
index c53466c45..bade162d0 100644
--- a/lib/resource-1.0/doc/gfdoc/ParadigmsSwe.html
+++ b/lib/resource-1.0/doc/gfdoc/ParadigmsSwe.html
@@ -43,7 +43,7 @@
Author:
-Last update: Fri Jan 20 18:01:41 2006
+Last update: Wed Jan 25 10:50:15 2006
Produced by
@@ -90,8 +90,8 @@ words.
open
(Predef=Predef),
Prelude,
- ResScand,
- DiffSwe,
+ CommonScand,
+ ResSwe,
MorphoSwe,
CatSwe in {
diff --git a/lib/resource-1.0/doc/gfdoc/Phrase.html b/lib/resource-1.0/doc/gfdoc/Phrase.html
index 781ac4ae5..26ccab4b1 100644
--- a/lib/resource-1.0/doc/gfdoc/Phrase.html
+++ b/lib/resource-1.0/doc/gfdoc/Phrase.html
@@ -7,7 +7,7 @@
Phrases and utterances
Author:
-Last update: Fri Jan 20 18:01:39 2006
+Last update: Wed Jan 25 10:50:13 2006
diff --git a/lib/resource-1.0/doc/gfdoc/Question.html b/lib/resource-1.0/doc/gfdoc/Question.html
index f1a33bc81..ca04583cb 100644
--- a/lib/resource-1.0/doc/gfdoc/Question.html
+++ b/lib/resource-1.0/doc/gfdoc/Question.html
@@ -7,7 +7,7 @@
Questions and interrogative pronouns
Author:
-Last update: Fri Jan 20 18:01:39 2006
+Last update: Wed Jan 25 10:50:13 2006
diff --git a/lib/resource-1.0/doc/gfdoc/Relative.html b/lib/resource-1.0/doc/gfdoc/Relative.html
index f9b5ebb5e..1b4ff5bef 100644
--- a/lib/resource-1.0/doc/gfdoc/Relative.html
+++ b/lib/resource-1.0/doc/gfdoc/Relative.html
@@ -7,7 +7,7 @@
Relative clauses and pronouns
Author:
-Last update: Fri Jan 20 18:01:39 2006
+Last update: Wed Jan 25 10:50:14 2006
diff --git a/lib/resource-1.0/doc/gfdoc/Sentence.html b/lib/resource-1.0/doc/gfdoc/Sentence.html
index f1c6f4029..4259d7796 100644
--- a/lib/resource-1.0/doc/gfdoc/Sentence.html
+++ b/lib/resource-1.0/doc/gfdoc/Sentence.html
@@ -7,7 +7,7 @@
Clauses, imperatives, and sentential complements
Author:
-Last update: Fri Jan 20 18:01:39 2006
+Last update: Wed Jan 25 10:50:14 2006
diff --git a/lib/resource-1.0/doc/gfdoc/Structural.html b/lib/resource-1.0/doc/gfdoc/Structural.html
index 391f02b74..8f6fbe249 100644
--- a/lib/resource-1.0/doc/gfdoc/Structural.html
+++ b/lib/resource-1.0/doc/gfdoc/Structural.html
@@ -7,7 +7,7 @@
GF Resource Grammar API for Structural Words
Author:
-Last update: Fri Jan 20 18:01:39 2006
+Last update: Wed Jan 25 10:50:14 2006
@@ -119,7 +119,6 @@ This is an alphabetical list of structural words
this_NP : NP ;
those_NP : NP ;
those_Quant : QuantPl ;
- thou_Pron : Pron ;
through_Prep : Prep ;
to_Prep : Prep ;
too_AdA : AdA ;
@@ -139,9 +138,10 @@ This is an alphabetical list of structural words
why_IAdv : IAdv ;
with_Prep : Prep ;
without_Prep : Prep ;
- ye_Pron : Pron ;
yes_Phr : Phr ;
- you_Pron : Pron ;
+ youSg_Pron : Pron ;
+ youPl_Pron : Pron ;
+ youPol_Pron : Pron ;
}
diff --git a/lib/resource-1.0/doc/gfdoc/Tense.html b/lib/resource-1.0/doc/gfdoc/Tense.html
index 6803f8c21..557d347a1 100644
--- a/lib/resource-1.0/doc/gfdoc/Tense.html
+++ b/lib/resource-1.0/doc/gfdoc/Tense.html
@@ -7,7 +7,7 @@
Tense, Polarity, and Anteriority
Author:
-Last update: Fri Jan 20 18:01:40 2006
+Last update: Wed Jan 25 10:50:14 2006
diff --git a/lib/resource-1.0/doc/gfdoc/Tensed.html b/lib/resource-1.0/doc/gfdoc/Tensed.html
index 65824e318..7103339a7 100644
--- a/lib/resource-1.0/doc/gfdoc/Tensed.html
+++ b/lib/resource-1.0/doc/gfdoc/Tensed.html
@@ -7,7 +7,7 @@
Tensed forms of sentences, questions, and relative clauses
Author:
-Last update: Fri Jan 20 18:01:40 2006
+Last update: Wed Jan 25 10:50:14 2006
diff --git a/lib/resource-1.0/doc/gfdoc/Verb.html b/lib/resource-1.0/doc/gfdoc/Verb.html
index c1e20c622..a5cb77da9 100644
--- a/lib/resource-1.0/doc/gfdoc/Verb.html
+++ b/lib/resource-1.0/doc/gfdoc/Verb.html
@@ -7,7 +7,7 @@
The construction of verb phrases
Author:
-Last update: Fri Jan 20 18:01:40 2006
+Last update: Wed Jan 25 10:50:14 2006
diff --git a/lib/resource-1.0/german/ListConjunctionGer.gf b/lib/resource-1.0/german/ListConjunctionGer.gf
deleted file mode 100644
index 88cd8817e..000000000
--- a/lib/resource-1.0/german/ListConjunctionGer.gf
+++ /dev/null
@@ -1,43 +0,0 @@
---concrete ListConjunctionGer of Conjunction =
--- CatGer ** open ResGer, Coordination, Prelude in {
---
--- lin
---
--- ConjS conj ss = {s = conjunctX conj ss} ;
--- DConjS conj ss = {s = conjunctDistrX conj ss} ;
---
--- ConjAdv conj ss = {s = conjunctX conj ss} ;
--- DConjAdv conj ss = {s = conjunctDistrX conj ss} ;
---
--- ConjNP conj ss = conjunctTable Case conj ss ** {
--- a = {n = conjNumber conj.n ss.a.n ; p = ss.a.p}
--- } ;
--- DConjNP conj ss = conjunctDistrTable Case conj ss ** {
--- a = {n = conjNumber conj.n ss.a.n ; p = ss.a.p}
--- } ;
---
--- ConjAP conj ss = conjunctTable Agr conj ss ** {
--- isPre = ss.isPre
--- } ;
--- DConjAP conj ss = conjunctDistrTable Agr conj ss ** {
--- isPre = ss.isPre
--- } ;
---
----- These fun's are generated from the list cat's.
---
--- BaseS = twoSS ;
--- ConsS = consrSS comma ;
--- BaseAdv = twoSS ;
--- ConsAdv = consrSS comma ;
--- BaseNP x y = twoTable Case x y ** {a = conjAgr x.a y.a} ;
--- ConsNP xs x = consrTable Case comma xs x ** {a = conjAgr xs.a x.a} ;
--- BaseAP x y = twoTable Agr x y ** {isPre = andB x.isPre y.isPre} ;
--- ConsAP xs x = consrTable Agr comma xs x ** {isPre = andB xs.isPre x.isPre} ;
---
--- lincat
--- [S] = {s1,s2 : Str} ;
--- [Adv] = {s1,s2 : Str} ;
--- [NP] = {s1,s2 : Case => Str ; a : Agr} ;
--- [AP] = {s1,s2 : Agr => Str ; isPre : Bool} ;
---
---}
diff --git a/lib/resource-1.0/abstract/Lex.gf b/lib/resource-1.0/old/Lex.gf
similarity index 100%
rename from lib/resource-1.0/abstract/Lex.gf
rename to lib/resource-1.0/old/Lex.gf
diff --git a/lib/resource-1.0/english/LexEng.gf b/lib/resource-1.0/old/LexEng.gf
similarity index 100%
rename from lib/resource-1.0/english/LexEng.gf
rename to lib/resource-1.0/old/LexEng.gf
diff --git a/lib/resource-1.0/french/LexFre.gf b/lib/resource-1.0/old/LexFre.gf
similarity index 100%
rename from lib/resource-1.0/french/LexFre.gf
rename to lib/resource-1.0/old/LexFre.gf
diff --git a/lib/resource-1.0/german/LexGer.gf b/lib/resource-1.0/old/LexGer.gf
similarity index 100%
rename from lib/resource-1.0/german/LexGer.gf
rename to lib/resource-1.0/old/LexGer.gf
diff --git a/lib/resource-1.0/swedish/LexSwe.gf b/lib/resource-1.0/old/LexSwe.gf
similarity index 100%
rename from lib/resource-1.0/swedish/LexSwe.gf
rename to lib/resource-1.0/old/LexSwe.gf
diff --git a/lib/resource-1.0/abstract/SeqConjunction.gf b/lib/resource-1.0/old/SeqConjunction.gf
similarity index 100%
rename from lib/resource-1.0/abstract/SeqConjunction.gf
rename to lib/resource-1.0/old/SeqConjunction.gf
diff --git a/lib/resource-1.0/english/SeqConjunctionEng.gf b/lib/resource-1.0/old/SeqConjunctionEng.gf
similarity index 100%
rename from lib/resource-1.0/english/SeqConjunctionEng.gf
rename to lib/resource-1.0/old/SeqConjunctionEng.gf
diff --git a/lib/resource-1.0/german/SeqConjunctionGer.gf b/lib/resource-1.0/old/SeqConjunctionGer.gf
similarity index 100%
rename from lib/resource-1.0/german/SeqConjunctionGer.gf
rename to lib/resource-1.0/old/SeqConjunctionGer.gf
diff --git a/lib/resource-1.0/romance/SeqConjunctionRomance.gf b/lib/resource-1.0/old/SeqConjunctionRomance.gf
similarity index 100%
rename from lib/resource-1.0/romance/SeqConjunctionRomance.gf
rename to lib/resource-1.0/old/SeqConjunctionRomance.gf
diff --git a/lib/resource-1.0/scandinavian/SeqConjunctionScand.gf b/lib/resource-1.0/old/SeqConjunctionScand.gf
similarity index 100%
rename from lib/resource-1.0/scandinavian/SeqConjunctionScand.gf
rename to lib/resource-1.0/old/SeqConjunctionScand.gf
diff --git a/lib/resource-1.0/abstract/Test.gf b/lib/resource-1.0/old/Test.gf
similarity index 100%
rename from lib/resource-1.0/abstract/Test.gf
rename to lib/resource-1.0/old/Test.gf
diff --git a/lib/resource-1.0/english/TestEng.gf b/lib/resource-1.0/old/TestEng.gf
similarity index 100%
rename from lib/resource-1.0/english/TestEng.gf
rename to lib/resource-1.0/old/TestEng.gf
diff --git a/lib/resource-1.0/french/TestFre.gf b/lib/resource-1.0/old/TestFre.gf
similarity index 100%
rename from lib/resource-1.0/french/TestFre.gf
rename to lib/resource-1.0/old/TestFre.gf
diff --git a/lib/resource-1.0/german/TestGer.gf b/lib/resource-1.0/old/TestGer.gf
similarity index 100%
rename from lib/resource-1.0/german/TestGer.gf
rename to lib/resource-1.0/old/TestGer.gf
diff --git a/lib/resource-1.0/swedish/TestSwe.gf b/lib/resource-1.0/old/TestSwe.gf
similarity index 100%
rename from lib/resource-1.0/swedish/TestSwe.gf
rename to lib/resource-1.0/old/TestSwe.gf
diff --git a/lib/resource-1.0/abstract/Untensed.gf b/lib/resource-1.0/old/Untensed.gf
similarity index 100%
rename from lib/resource-1.0/abstract/Untensed.gf
rename to lib/resource-1.0/old/Untensed.gf
diff --git a/lib/resource-1.0/english/UntensedEng.gf b/lib/resource-1.0/old/UntensedEng.gf
similarity index 100%
rename from lib/resource-1.0/english/UntensedEng.gf
rename to lib/resource-1.0/old/UntensedEng.gf
diff --git a/lib/resource-1.0/french/UntensedFre.gf b/lib/resource-1.0/old/UntensedFre.gf
similarity index 100%
rename from lib/resource-1.0/french/UntensedFre.gf
rename to lib/resource-1.0/old/UntensedFre.gf
diff --git a/lib/resource-1.0/german/UntensedGer.gf b/lib/resource-1.0/old/UntensedGer.gf
similarity index 100%
rename from lib/resource-1.0/german/UntensedGer.gf
rename to lib/resource-1.0/old/UntensedGer.gf
diff --git a/lib/resource-1.0/romance/UntensedRomance.gf b/lib/resource-1.0/old/UntensedRomance.gf
similarity index 100%
rename from lib/resource-1.0/romance/UntensedRomance.gf
rename to lib/resource-1.0/old/UntensedRomance.gf
diff --git a/lib/resource-1.0/scandinavian/UntensedScand.gf b/lib/resource-1.0/old/UntensedScand.gf
similarity index 100%
rename from lib/resource-1.0/scandinavian/UntensedScand.gf
rename to lib/resource-1.0/old/UntensedScand.gf
diff --git a/lib/resource-1.0/swedish/UntensedSwe.gf b/lib/resource-1.0/old/UntensedSwe.gf
similarity index 100%
rename from lib/resource-1.0/swedish/UntensedSwe.gf
rename to lib/resource-1.0/old/UntensedSwe.gf
diff --git a/lib/resource-1.0/scandinavian/CommonScand.gf b/lib/resource-1.0/scandinavian/CommonScand.gf
new file mode 100644
index 000000000..8f076bec5
--- /dev/null
+++ b/lib/resource-1.0/scandinavian/CommonScand.gf
@@ -0,0 +1,193 @@
+--1 Auxiliary operations common for Scandinavian languages.
+--
+-- This module contains operations that are shared by the Scandinavian
+-- languages. The complete set of auxiliary operations needed to
+-- implement [Test Test.html] is defined in [ResScandinavian ResScandinavian.html],
+-- which depends on [DiffScandinavian DiffScandinavian.html].
+
+resource CommonScand = ParamScand ** open Prelude in {
+
+ flags optimize=all ;
+
+ oper
+
+-- For $Lex$.
+
+-- For each lexical category, here are the worst-case constructors.
+--
+-- But $mkNoun$ is fully defined only for each language, since
+-- $Gender$ varies.
+
+ nounForms : (x1,_,_,x4 : Str) -> (Number => Species => Case => Str) =
+ \man,mannen,men,mennen -> \\n,d,c => case of {
+ => mkCase c man ;
+ => mkCase c mannen ;
+ => mkCase c men ;
+ => mkCase c mennen
+ } ;
+
+ Adjective : Type = {s : AForm => Str} ;
+
+ mkAdjective : (x1,_,_,_,_,_,x7 : Str) -> {s : AForm => Str} =
+ \liten, litet, lilla, sma, mindre, minst, minsta -> {
+ s = table {
+ AF (APosit a) c => mkCase c (mkAdjPos a liten litet lilla sma) ;
+ AF ACompar c => mkCase c mindre ;
+ AF (ASuperl SupStrong) c => mkCase c minst ;
+ AF (ASuperl SupWeak) c => mkCase c minsta
+ }
+ } ;
+
+ mkVerb : (x1,_,_,_,_,_,_,x8 : Str) -> {s : VForm => Str ; vtype : VType} =
+ \finna,finner,finn,fann,funnit,funnen,funnet,funna -> {
+ s = table {
+ VF (VPres Act) => finner ;
+ VF (VPres Pass) => mkVoice Pass finn ;
+ VF (VPret v) => mkVoice v fann ;
+ VF (VImper v) => mkVoice v finn ;
+ VI (VInfin v) => mkVoice v finna ;
+ VI (VSupin v) => mkVoice v funnit ;
+ VI (VPtPret a c)=> mkCase c (mkAdjPos a funnen funnet funna funna)
+ } ;
+ vtype = VAct
+ } ;
+
+-- These are useful auxiliaries.
+
+ mkCase : Case -> Str -> Str = \c,f -> case c of {
+ Nom => f ;
+ Gen => f + case last f of {
+ "s" | "x" => [] ;
+ _ => "s"
+ }
+ } ;
+
+ mkAdjPos : AFormPos -> (s1,_,_,s4 : Str) -> Str =
+ \a, liten, litet, lilla, sma ->
+ case a of {
+ Strong gn => case gn of {
+ SgUtr => liten ;
+ SgNeutr => litet ;
+ Plg => sma
+ } ;
+ Weak Sg => lilla ;
+ Weak Pl => sma
+ } ;
+
+ mkVoice : Voice -> Str -> Str = \v,s -> case v of {
+ Act => s ;
+ Pass => s + case last s of {
+ "s" => "es" ;
+ _ => "s"
+ }
+ } ;
+
+
+-- For $Noun$.
+
+ artDef : GenNum -> Str = \gn -> gennumForms "den" "det" "de" ! gn ;
+
+ mkNP : (x1,_,_,_,x5 : Str) -> GenNum -> Person ->
+ {s : NPForm => Str ; a : Agr} = \du,dig,din,ditt,dina,gn,p -> {
+ s = table {
+ NPNom => du ;
+ NPAcc => dig ;
+ NPPoss g => gennumForms din ditt dina ! g
+ } ;
+ a = {
+ gn = gn ;
+ p = p
+ }
+ } ;
+
+ gennumForms : (x1,x2,x3 : Str) -> GenNum => Str = \den,det,de ->
+ table {
+ SgUtr => den ;
+ SgNeutr => det ;
+ _ => de
+ } ;
+
+ regNP : Str -> Str -> GenNum -> {s : NPForm => Str ; a : Agr} =
+ \det,dess,gn ->
+ mkNP det det dess dess dess gn P3 ;
+
+
+-- For $Verb$.
+
+ Verb : Type = {
+ s : VForm => Str ;
+ vtype : VType
+ } ;
+
+ VP = {
+ s : VPForm => {
+ fin : Str ; -- V1 har ---s1
+ inf : Str -- V2 sagt ---s4
+ } ;
+ a1 : Polarity => Str ; -- A1 inte ---s3
+ n2 : Agr => Str ; -- N2 dig ---s5
+ a2 : Str ; -- A2 idag ---s6
+ ext : Str ; -- S-Ext att hon går ---s7
+ --- ea1,ev2, --- these depend on params of v and a1
+ en2,ea2,eext : Bool -- indicate if the field exists
+ } ;
+
+
+ insertObj : (Agr => Str) -> VP -> VP = \obj,vp -> {
+ s = vp.s ;
+ a1 = vp.a1 ;
+ n2 = \\a => vp.n2 ! a ++ obj ! a ;
+ a2 = vp.a2 ;
+ ext = vp.ext ;
+ en2 = True ;
+ ea2 = vp.ea2 ;
+ eext = vp.eext
+ } ;
+
+ insertAdv : Str -> VP -> VP = \adv,vp -> {
+ s = vp.s ;
+ a1 = vp.a1 ;
+ n2 = vp.n2 ;
+ a2 = vp.a2 ++ adv ;
+ ext = vp.ext ;
+ en2 = vp.en2 ;
+ ea2 = True ;
+ eext = vp.eext
+ } ;
+
+ insertAdV : Str -> VP -> VP = \adv,vp -> {
+ s = vp.s ;
+ a1 = \\b => vp.a1 ! b ++ adv ;
+ n2 = vp.n2 ;
+ a2 = vp.a2 ;
+ ext = vp.ext ;
+ en2 = vp.en2 ;
+ ea2 = vp.ea2 ;
+ eext = vp.eext
+ } ;
+
+ infVP : VP -> Agr -> Str = \vp,a ->
+ (vp.s ! VPInfinit Simul).inf ++ vp.n2 ! a ++ vp.a2 ++ vp.ext ; --- a1
+
+
+-- For $Sentence$.
+
+ Clause : Type = {
+ s : Tense => Anteriority => Polarity => Order => Str
+ } ;
+
+ mkClause : Str -> Agr -> VP -> Clause = \subj,agr,vp -> {
+ s = \\t,a,b,o =>
+ let
+ verb = vp.s ! VPFinite t a ;
+ neg = vp.a1 ! b ;
+ compl = vp.n2 ! agr ++ vp.a2 ++ vp.ext
+ in
+ case o of {
+ Main => subj ++ verb.fin ++ neg ++ verb.inf ++ compl ;
+ Inv => verb.fin ++ subj ++ neg ++ verb.inf ++ compl ;
+ Sub => subj ++ neg ++ verb.fin ++ verb.inf ++ compl
+ }
+ } ;
+
+}