Commit Graph

8906 Commits

Author SHA1 Message Date
kr.angelov
e68067a83c update the project files for the Java binding 2013-11-27 12:34:33 +00:00
kr.angelov
085808513d space leak in the Java binding 2013-11-27 12:34:06 +00:00
hallgren
a617e50d95 Represent identifiers as UTF-8-encoded ByteStrings
This was a fairly simple change thanks to previous work on making the Ident
type abstract and the fact that PGF.CId already uses UTF-8-encoded
ByteStrings.

One potential pitfall is that Data.ByteString.UTF8 uses the same type for
ByteStrings as Data.ByteString. I renamed ident2bs to ident2utf8 and
bsCId to utf8CId, to make it clearer that they work with UTF-8-encoded
ByteStrings.

Since both the compiler input and identifiers are now UTF-8-encoded
ByteStrings, the lexer now creates identifiers without copying any characters.
**END OF DESCRIPTION***

Place the long patch description above the ***END OF DESCRIPTION*** marker.
The first line of this file will be the patch name.


This patch contains the following changes:

M ./src/compiler/GF/Compile/CheckGrammar.hs -3 +3
M ./src/compiler/GF/Compile/GrammarToPGF.hs -2 +2
M ./src/compiler/GF/Grammar/Binary.hs -5 +1
M ./src/compiler/GF/Grammar/Lexer.x -11 +13
M ./src/compiler/GF/Infra/Ident.hs -19 +36
M ./src/runtime/haskell/PGF.hs -1 +1
M ./src/runtime/haskell/PGF/CId.hs -2 +3
2013-11-26 16:12:03 +00:00
hallgren
30fc46e934 Change how GF deals with character encodings in grammar files
1. The default encoding is changed from Latin-1 to UTF-8.

2. Alternate encodings should be specified as "--# -coding=enc", the old
   "flags coding=enc" declarations have no effect but are still checked for
   consistency.

3. A transitional warning is generated for files that contain non-ASCII
   characters without specifying a character encoding:

	"Warning: default encoding has changed from Latin-1 to UTF-8"

4. Conversion to Unicode is now done *before* lexing. This makes it possible
   to allow arbitrary Unicode characters in identifiers. But identifiers are
   still stored as ByteStrings, so they are limited to Latin-1 characters
   for now.

5. Lexer.hs is no longer part of the repository. We now generate the lexer
   from Lexer.x with alex>=3. Some workarounds for bugs in alex-3.0 were
   needed. These bugs might already be fixed in newer versions of alex, but
   we should be compatible with what is shipped in the Haskell Platform.
2013-11-25 21:12:11 +00:00
hallgren
1ae58146cd examples/phrasebook: add Makefile2 for parallel grammar compilation
Makefile2 specificies the dependencies accurately enough that you can use
make's support for parallel compilation. Run

	make -f Makefile2 -j

to utilize all the cores in your computer to significantly speed up the
creation of Phrasebook.pgf.
2013-11-26 16:32:38 +00:00
hallgren
d55a3f9d6e examples/letter: convert grammar files to UTF-8 2013-11-26 12:52:05 +00:00
kr.angelov
c247aa6791 added translations of outside in DictEngBul 2013-11-26 10:24:32 +00:00
hallgren
1735dcf055 GF home page: mention upcoming default character encoding change 2013-11-25 20:11:11 +00:00
hallgren
06ed4cc263 Setup.hs: avoid a problem with Cabal-1.18
In Cabal-1.18, the build command takes some new arguments. The Setup.hs script
should not die if these are present.
2013-11-25 20:03:57 +00:00
hallgren
7d54466310 Document the upcoming default character encoding change in the release notes 2013-11-25 19:47:05 +00:00
hallgren
fc2f5b0a1a Add explicit character encoding specifications in 39 more RGL modules
To silence warnings and avoid potential problems after changing the default
encoding to UTF-8.
2013-11-25 18:17:12 +00:00
kr.angelov
1c34005ffc a few words in DictEngBul.gf 2013-11-25 10:40:23 +00:00
hallgren
b237996eb3 examples/phrasebook: adding --# -coding=latin1 to 18 modules
Adding coding pragmas
  
	--# -coding=latin1
    
so that grammars will continue to work when we change the default character
encoding to UTF-8.
2013-11-22 17:47:50 +00:00
hallgren
a24d8a9506 lib/src: adding --# -coding=latin1 to 119 RGL modules
Adding coding pragmas
  
	--# -coding=latin1
  
so that grammars will continue to work when we change the default character
encoding to UTF-8.
2013-11-22 17:26:00 +00:00
hallgren
1272015873 examples/foods: add --# -coding=latin1
Adding coding pragmas

	--# -coding=latin1

so that grammars will continue to work when we change the default character
encoding to UTF-8.
2013-11-22 17:21:36 +00:00
kr.angelov
210a813d1c fix in the GF keyboard for Android 2013-11-22 13:37:12 +00:00
kr.angelov
c119627dfc fix the export for CFG grammars with BIND, SOFT_BIND and nonExist 2013-11-22 13:36:14 +00:00
kr.angelov
4254b101f4 the GF syntax for identifiers is exteded with quoted forms, i.e. you could write for instance 'ab.c' and then everything between the quites is identifier. This includes Unicode characters and non-ASCII symbols. This is useful for automatically generated GF grammars. 2013-11-22 13:30:18 +00:00
kr.angelov
cddc19a5ad bugfix in the debug mode for the parser 2013-11-22 12:26:49 +00:00
hallgren
14bbbf1f27 Some refactoring in GF.Compile and GF.Compile.GetGrammar
Move source transcoding function GF.Compile to GF.Compile.GetGrammar, in
preparation for doing transcoding before lexing.
2013-11-21 16:27:26 +00:00
hallgren
c8d2ed96fd Some more monadic lifting changes 2013-11-21 15:01:04 +00:00
kr.angelov
e77c19c783 bugfix in the C runtime 2013-11-21 14:31:28 +00:00
kr.angelov
85e238f824 the Java binding for lookupMorpho should release the local references created in a loop 2013-11-21 14:29:47 +00:00
gregoire.detrez
2f877b760b Add a small readme to the rgl test suite 2013-11-21 10:32:26 +00:00
gregoire.detrez
e63e8d9765 Add a test runner and a test suite fore the rgl
The test suite tests the French Bescherelle paradigms.
2013-11-21 09:55:30 +00:00
aarne
4ba116d125 a shortcut in SentenceRomance.SlashVP to make it more easily compilable. This compromises the correctness of negation with polarity elements (e.g. the omission of "pas" in French when "rien" is present) in slash-type questions and polarity items. The correct version is left in a comment and waiting for optimizations that would enable compiling it into PMCFG. 2013-11-21 08:48:08 +00:00
aarne
254b2f0f40 optimized VerbRomance.SlashV2VNP to make it compilable 2013-11-20 15:08:34 +00:00
aarne
ab8b220dc8 more stack in Translate Makefile 2013-11-20 12:48:53 +00:00
kr.angelov
b255f19b63 fix in the Python binding 2013-11-20 09:54:37 +00:00
hallgren
ab8037c3c6 Removed some code duplication in GF.Compile.Update 2013-11-20 01:26:41 +00:00
hallgren
c8cbd4477f Reduced clutter in monadic code
+ Eliminated vairous ad-hoc coersion functions between specific monads 
  (IO, Err, IOE, Check) in favor of more general lifting functions
  (liftIO, liftErr).
+ Generalized many basic monadic operations from specific monads to
  arbitrary monads in the appropriate class (MonadIO and/or ErrorMonad),
  thereby completely eliminating the need for lifting functions in lots
  of places.

This can be considered a small step forward towards a cleaner
compiler API and more malleable compiler code in general.
2013-11-20 00:45:33 +00:00
hallgren
c29326d074 GF shell: improved system_pipe (aka "?") command
1. No temporary files are created.

2. The output of a system command is read lazily, making it feasible to 
   process large or even infinite output, e.g. the following works as
   expected:

	? "yes" | ? "head -5" | ps -lextext
2013-11-19 15:18:58 +00:00
aarne
c58b6d8a60 added a missing path to SymbolUrd, previously causing an error message when compiling the rgl 2013-11-19 10:49:42 +00:00
kr.angelov
33a76f1cd5 bugfix in the robust parser 2013-11-18 09:05:27 +00:00
kr.angelov
2dd04b2b2f add gu_buf_insert in libgu 2013-11-18 09:05:09 +00:00
inari
c92372c381 fix empty strings in DictEngFre 2013-11-15 15:11:52 +00:00
kr.angelov
fb8de0e8ea fixes in the C runtime to avoid warnings when compiling on MacOS 2013-11-15 10:03:22 +00:00
kr.angelov
684a3b8df5 pgf_read should open the grammar file in binary mode to prevent the Windows runtime from messing up the content. 2013-11-15 09:04:00 +00:00
kr.angelov
254aba33a1 pgf_reader_done should do nothing if the reading has failed 2013-11-15 08:59:18 +00:00
kr.angelov
6d94bffc87 NumeralLav should use restricted inheritance from CatLav 2013-11-15 08:04:51 +00:00
kr.angelov
d7dfa01bb0 add additional options for compiling the Java binding on Windows (suggested by Normunds) 2013-11-15 07:48:02 +00:00
kr.angelov
4874165cea two senses of ring_V2 which have different morphology in English 2013-11-14 21:55:40 +00:00
kr.angelov
230f7d5e01 three words in DictEngBul 2013-11-14 21:55:16 +00:00
kr.angelov
58b47c2766 added date_3_N for the sense of "meeting". also added comments for the meanings of a few sense disambiguated words in the abstract syntax. The format of the comments follows the Haddock convention 2013-11-14 20:15:02 +00:00
kr.angelov
4b919ba26f a number of changes in the dictionaries. marvellous_A is merged with marvelous_A. organise as alternative spelling of organize_V2. A few new Bulgarian words. DictEngSwe.gf is now disconnected from DictSwe.gf and follows the same convention as the English, Bulgarian and German dictionaries. 2013-11-14 18:03:33 +00:00
kr.angelov
05cec7c67d add VerbBul.AdVVPSlash 2013-11-14 13:36:34 +00:00
hallgren
ec82c3af9a gfse: re-enable example-based grammar construction 2013-11-14 12:54:25 +00:00
kr.angelov
bfd555b452 ring was not marked as irregular verb in the dictionary 2013-11-13 21:00:08 +00:00
kr.angelov
644c2f40d4 fix the valencies of vote and spread_out in the dictionary 2013-11-13 20:59:28 +00:00
kr.angelov
90e2f11045 now ago_Prep is postposition in English 2013-11-13 20:58:08 +00:00