diff --git a/doc/gf2-highlights.html b/doc/gf2-highlights.html
index d028ff133..82c2f358d 100644
--- a/doc/gf2-highlights.html
+++ b/doc/gf2-highlights.html
@@ -6,11 +6,11 @@
Grammatical Framework Version 2
-Highlights, version 2.0
+Highlights, versions 2.0 and 2.1
-13/10/2003 - 25/11 - 2/4/2004 - 18/6
+13/10/2003 - 25/11 - 2/4/2004 - 18/6 - 13/10
@@ -40,12 +40,13 @@ An accurate language specification is now available.
interface, instance, incomplete.
New experimental module types: transfer,
union.
-
+ Version 2.1: multiple inheritance in module extension.
Canonical format GFC
- The target of GF compiler; to reuse, just read in
- Readable by Haskell/Java/C++/C applications
+ The target of GF compiler; to reuse, just read in.
+ Readable by Haskell/Java/C++/C applications.
+ Version 2.1: Java interpreter available for GFC (by Björn Bringert).
New features in expression language
@@ -58,6 +59,8 @@ An accurate language specification is now available.
braces and where.
Pattern variables can be used on lhs's of oper definitions.
New Unicode transliterations (by Harad Hammarström).
+ Version 2.1: Initial segments of integers
+ (Intsn) available as parameter types.
New shell commands and command functionalities
@@ -103,32 +106,22 @@ An accurate language specification is now available.
By Peter Ljunglöf, based on MCFG.
Much more efficient for morphology and discontinuous constituents.
Treatment of cyclic rules.
-
+ Version 2.1: improved generation of speech recognition
+ grammars (by Björn Bringert).
+ Version 2.1: output of Labelled BNF files readable by the
+ BNF Converter.
-Status (18/6/2004)
+Missing features of GF 1.2 (13/10/2004)
-Grammar compiler, editor GUIs, and shell work for all platforms
-(with restrictions for Solaris).
-
-
-
-The updated HelpFile (accessible through h command)
-marks unsupported features present in GF 1.2 with *.
-They will be supported again if interested users appear.
-
-
-
-GF1 grammars can be automatically translated to GF2 (although the
+Generally, GF1 grammars can be automatically translated to GF2, although the
result is not as good
-as manual, since indentation and comments are destroyed). The results can be
+as manual, since indentation and comments are destroyed.
+The results can be
saved in GF2 files, but this is not necessary.
Some rarely used GF1 features are no longer supported (see next section).
-
-
-
It is also possible to write a GF2 grammar back to GF1, with the
command pg -printer=old.
@@ -136,14 +129,10 @@ command pg -printer=old.
Resource libraries
-and some example grammars and have been
+and some example grammars have been
converted. Most old example grammars work without any changes.
-There is a new resource API with
-many new constructions.
-
-
-
-A make facility works, finding out which modules have to be recompiled.
+However, there is a new resource API with
+many new constructions, and which is recommended.
@@ -313,16 +302,10 @@ Examples of extension:
lin times x y = expSg ("the" ++ "product" ++ "of" ++ x.s ++ "and" ++ y.s) ;
}
-Another important difference:
-
extension is single
- opening can be multiple: open Foo, Bar, Baz in {...}
-Moreover:
-
opening can be qualified
-
-Example of qualified opening:
+Opening, but not extension, can be qualified:
concrete NumberSystems of Systems = open (Bin = Binary), (Dec = Decimal) in {
lin
@@ -330,6 +313,17 @@ Example of qualified opening:
DZero = Dec.Zero
}
+
+
+
+Version 2.1 introduces multiple inheritance: a module
+can extend several modules at the same time, for instance,
+
+ abstract Dialogue = User, System ** { ...}
+
+may be used to put together "User's moves" and "System's moves" into
+one Dialogue System grammar.
+
@@ -346,7 +340,7 @@ first left bracket ({). The header gives
the module type: abstract, concrete (of A),
or resource
the name of the module (next to the module type keyword)
- the name of extended module (between = and **)
+ the names of extended modules (between = and **)
the names of opened modules
diff --git a/src/GF/Shell.hs b/src/GF/Shell.hs
index 1b8a8520d..2b7a66701 100644
--- a/src/GF/Shell.hs
+++ b/src/GF/Shell.hs
@@ -250,7 +250,7 @@ execC co@(comm, opts0) sa@((st,(h,_)),a) = checkOptions st co >> case comm of
let c0 = firstAbsCat os gro
c <- GrammarToCanon.redQIdent c0
lang <- maybeErr "no concrete" $ languageOfOptState os st
- t <- Look.lookupLincat cgr $ CMacros.redirectIdent lang c
+ t <- return $ errVal CMacros.defLinType $ Look.lookupLincat cgr $ CMacros.redirectIdent lang c
return $ if CMacros.isDiscontinuousCType t
then (putStrLn ("Warning: discontinuous category" +++ prt_ c))
else (return ())