Commit Graph

3409 Commits

Author SHA1 Message Date
aarne
f21928802f html templates for Finnish noun and verb inflection started 2013-11-28 22:04:30 +00:00
kr.angelov
ab0cd56b40 bugfix in the android app 2013-11-28 20:00:17 +00:00
kr.angelov
123d2098dd now the TTS is used only if there is actually a language model. this is better than using English for speaking Swedish 2013-11-28 19:59:03 +00:00
kr.angelov
2bc2dc750f a bit of cleanup in the Android app 2013-11-28 19:57:45 +00:00
kr.angelov
74de6c1097 extension in the template format for inflection tables. This makes it possible to use the templates with Finish 2013-11-28 19:52:31 +00:00
hallgren
ead60581af GFI: adapt to character encoding changes
GF.Compile.Coding is not used any more.
2013-11-28 13:55:08 +00:00
hallgren
29b1607f93 SimpleEditor.Convert: adapt to recent character encoding changes
Things got simpler!
2013-11-28 13:27:45 +00:00
kr.angelov
5475dd7613 the Android App now show the valency patterns for verbs in English, Bulgarian and Swedish 2013-11-28 12:48:55 +00:00
kr.angelov
f5ec987c5d better dictionary visualization in the Android App 2013-11-27 22:16:05 +00:00
kr.angelov
47182d4045 minor tweaks in the Android UI 2013-11-27 12:37:55 +00:00
kr.angelov
d3e56a6e7e fix the character encoding problem in the web view in the Android UI 2013-11-27 12:37:15 +00:00
kr.angelov
b0a74ddc59 added API in the C runtime and the Java binding for checking whether a given function is linearizable in a given language. This is used in the Android UI for better vizualizations 2013-11-27 12:35:11 +00:00
kr.angelov
eeec31cbab update the project files for the Java binding 2013-11-27 12:34:33 +00:00
kr.angelov
7a428198c6 space leak in the Java binding 2013-11-27 12:34:06 +00:00
hallgren
3f57151cc3 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
9d7fdf7c9a 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
kr.angelov
22fe61b533 fix in the GF keyboard for Android 2013-11-22 13:37:12 +00:00
kr.angelov
8cc6be0152 fix the export for CFG grammars with BIND, SOFT_BIND and nonExist 2013-11-22 13:36:14 +00:00
kr.angelov
8bcc70eac8 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
1d2786f7da bugfix in the debug mode for the parser 2013-11-22 12:26:49 +00:00
hallgren
260c0dfedc 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
fe065b5ee4 Some more monadic lifting changes 2013-11-21 15:01:04 +00:00
kr.angelov
aad6a1c4bb bugfix in the C runtime 2013-11-21 14:31:28 +00:00
kr.angelov
a50724ca2c the Java binding for lookupMorpho should release the local references created in a loop 2013-11-21 14:29:47 +00:00
kr.angelov
9a2725279e fix in the Python binding 2013-11-20 09:54:37 +00:00
hallgren
308421789a Removed some code duplication in GF.Compile.Update 2013-11-20 01:26:41 +00:00
hallgren
018c9838ed 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
ddac5f9e5a 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
kr.angelov
5b83da5583 bugfix in the robust parser 2013-11-18 09:05:27 +00:00
kr.angelov
edb4f7320d add gu_buf_insert in libgu 2013-11-18 09:05:09 +00:00
kr.angelov
a6d60f9c8d fixes in the C runtime to avoid warnings when compiling on MacOS 2013-11-15 10:03:22 +00:00
kr.angelov
d997df2864 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
b3149b7897 pgf_reader_done should do nothing if the reading has failed 2013-11-15 08:59:18 +00:00
kr.angelov
2dadc3aa4c add additional options for compiling the Java binding on Windows (suggested by Normunds) 2013-11-15 07:48:02 +00:00
hallgren
982befac20 gfse: re-enable example-based grammar construction 2013-11-14 12:54:25 +00:00
kr.angelov
198f527255 add two files from the Android app that were forgoten 2013-11-13 17:27:11 +00:00
kr.angelov
126d5e0278 bugfix in the C runtime which had made the parser up to 200 times slower for some sentences 2013-11-13 15:15:28 +00:00
kr.angelov
7417326795 the dictionary view in the Android app now shows both the source and the target linearizations 2013-11-13 12:29:10 +00:00
kr.angelov
5f60445d2c minor bugfix in the translator keyboard 2013-11-13 10:59:03 +00:00
kr.angelov
ab1856046f now the Android App has a translation keyboard which allows the translations to be done from inside another application 2013-11-13 10:45:20 +00:00
hallgren
fa4c327463 Fix Issue 60: Weird output when executing system commands from the gf shell
The system_pipe (aka "?") command creates a temporary file _tmpi containing
the input of the system command. It *both* appends _tmpi as an extra argument
to the system command line *and* adds an input redirection "< _tmpi". (It
also uses and output redirection "> _tmpo" to captures the output of the
command.)

With this patch, the _tmpi argument is no longer appended to the command line.
This allows system_pipe to work with pure filters, such as the "tr" commands,
but it will no longer work with commands that require an input file name.
(It is possible to use write_file instead...)

TODO: it would also be fairly easy to eliminate the creation of the _tmpi and
_tmpo files altogether.
2013-11-12 18:07:38 +00:00
hallgren
709b2bb067 Fix Issue 68: Cannot use an overloaded operator in table defined using square brackets
Add proper type checking of course-of-values tables:

 + Make sure that all subterms have the same type.
 + Resolve overloaded operators.

Note though that the GF book states in C.4.12 that the "course-of-values
table [...] format is not recommended for GF source code, since the
ordering of parameter values is not specified and therefore a
compiler-internal decision."
2013-11-12 13:55:38 +00:00
hallgren
31d7a9f73c GF.System.Chatch: remove redundant #include 2013-11-12 13:51:11 +00:00
kr.angelov
0095119ec0 added Predef.SOFT_BIND. This special token allows zero or more spaces between ordinary tokens. It is also used in the English RGL to attach the commas to the previous word. 2013-11-12 09:54:57 +00:00
hallgren
b111b476a7 Fix Issue 41: "," in context-free rules causes parsing failure
The CF parser in GF.Grammar.CF assigns function names to the rules, but they
are not always unique, causing rules to be dropped in the follwing CF->GF
conversion. So a pass has been added before the CF->GF conversion, to make
sure that function names are unique.

A comment says "rules have an amazingly easy parser", but the parser looks
like quick hack. It is very sloppy and silently ignores many errors, e.g.
- Explicitly given function names should end with '.', but if the do not, the
  last character in the function name is silently dropped.
- Everything following a ';' is silently dropped.
2013-11-11 16:50:43 +00:00
hallgren
47e04656fb Fix issue 61: GF shell cannot parse a system command ending with a space
Trailing spaces caused the command line parse to be ambiguous, and
ambiguous parses were rejected by function readCommandLine, causing
the cryptic error message "command not parsed".
2013-11-11 15:13:24 +00:00
kr.angelov
af4a1f628d factor of 3 speedup for the translation without slowing down the grammar loading. The parser still seems to be 8 times slower than before I introduced the BIND. At least the Android UI now feels a lot more comfortable 2013-11-07 11:14:32 +00:00
kr.angelov
3f5ae22a0c bugfix in the binary search implementation in libgu 2013-11-07 11:13:47 +00:00
kr.angelov
7160a06a30 remove redundant type signature in gu/seq.h 2013-11-07 09:47:07 +00:00
kr.angelov
71744f7642 fix for the memory allocation in the jitter which should work for Windows. 2013-11-07 08:47:35 +00:00