Commit Graph

3039 Commits

Author SHA1 Message Date
kr.angelov
1ddcfc219e the bottom up filtering in the C runtime is temporary disabled. It takes too much memory and even makes it impossible to load the Finnish and the German parsing grammars. 2013-03-19 10:59:44 +00:00
hallgren
c823b7fd91 Fix a problem with pattern macros in pre { } expressions
The old partial evaluator has special rules to convert pattern macros in
pre { } expressions. These rules were missing in the new partial evaluator.
2013-03-16 13:36:23 +00:00
kr.angelov
cb37254882 bug fix in the linearizer in the C runtime 2013-03-14 12:31:49 +00:00
kr.angelov
f1a42ad78e update the pgf-service tool from the C runtime after the changes in the API 2013-03-14 10:37:01 +00:00
hallgren
6045ddae19 PGF web API: add 'to' parameter to the 'alignment' command
Word alignment diagrams can now be restricted to a subset of the languages
supported by the grammar.
2013-03-13 15:56:03 +00:00
hallgren
e2bb437943 PGF web API: generalize the 'to' parameter to accept a list of languages
Some commands (linearize, linearizeAll, random, generate, translate and
translategroup) by default produce output in all languages supported by the
grammar and the 'to' parameter could be used to restrict output to a single
language. Now you can restrict the output to a list of languages. Languages
should be separated by spaces.

Also removed an unnecessary LANGUAGE pragma and reduced code verbosity.
2013-03-13 15:25:28 +00:00
aarne
0dc182c216 pt -nub to remove duplicate trees from a list returned e.g. by a parser 2013-03-13 13:43:30 +00:00
hallgren
7710dc42db partial evaluator: push predefined functions inside variants
This should prevent errors like

Internal error in Compute.ConcreteNew:
    Applying Predef.drop: Expected a value of type String, got VFV [VString "gewandt",VString "gewendet"]
2013-03-12 16:36:58 +00:00
aarne
9d1be48e0f command pt -subtrees that analyses a tree into the set of subtrees. Using pt -subtrees <bigtree> | l -treebank for debugging the lin of a big tree 2013-03-12 14:58:06 +00:00
kr.angelov
2893397fbb bugfix in the statistical parser 2013-03-11 14:47:43 +00:00
hallgren
cd8cbda3d4 Additional changes for GHC 7.4 & 7.6 compatibility 2013-03-11 12:57:09 +00:00
Sergei Trofimovich
05e5895134 ghc-7.6: allow directory-1.2
Get rid of old-time depend (and ClockTime in favour of UTCTime).
time-compat helps to retain backward compatibility with directory-1.1
and lower.
2013-03-09 21:38:43 +00:00
Sergei Trofimovich
6898804a11 ghc-7.6: fix src/server/PGFService.hs (use catch from base-4 Control.Exception) 2013-03-09 21:38:14 +00:00
Sergei Trofimovich
8d00819790 ghc-7.6: add missing Num instance for Bits
Fixes the following build failure:
    src/runtime/haskell/Data/Binary/IEEE754.lhs:256:17:
        Could not deduce (Num a) arising from a use of `mask'
        from the context (Bits a)
          bound by the type signature for
                     clamp :: Bits a => BitCount -> a -> a
2013-03-09 21:19:53 +00:00
hallgren
e61f2f8d03 Fix a bug that could cause "Prelude.head: empty list"
In Data.Operations, the function topoTest2 assumed too much about the form of
the input, compared to the older function topoTest.
2013-02-28 17:46:13 +00:00
hallgren
5e3e5821fb pattern match length estimation code simplication 2013-02-28 15:13:20 +00:00
hallgren
bbc13e9f0c Faster regular expression pattern matching in the grammar compiler.
The sequence operator (x+y) was implemented by splitting the string to be
matched at all positions and trying to match the parts against the two
subpatterns. To reduce the number of splits, we now estimate the minimum and
maximum length of the string that the subpatterns could match. For common
cases, where one of the subpatterns is a string of known length, like
in (x+"y") or (x + ("a"|"o"|"u"|"e")+"y"), only one split will be tried.
2013-02-27 20:59:43 +00:00
hallgren
8174364250 GF grammar pretty printer improvements
Allow line breaks in more places to make large terms more readable.
2013-02-27 14:22:47 +00:00
kr.angelov
f001d40ae3 added gu_buf_flush in seq.c which removes all elements from a buffer 2013-02-26 09:48:09 +00:00
kr.angelov
5a54596fe8 the parser in the C runtime should not crash if the start category is not defined 2013-02-19 12:08:48 +00:00
kr.angelov
f86dcb6572 bugfix in the grammar reader in the C runtime 2013-02-19 12:04:10 +00:00
kr.angelov
ffb17bd26a bugfix in the linearizer for the C runtime 2013-02-13 15:39:01 +00:00
hallgren
0f7ebcc10d Fix for a PGF portability problem
GF produced slightly different PGF files on 64-bit systems and 32-bit systems.
This could cause problems when a PGF was produced on a 32-bit system and used
on a 64-bit system.

To fix this, the GF compiler and the Haskell PGF run-time library now reads
and writes PGF files like the 32-bit version even when compiled on a 64-bit
system.

Note: the Haskell type Int is still used internally in GF, which could be
32 bits or 64 bits...
2013-02-13 14:28:06 +00:00
kr.angelov
55203110bb now the beam size for the statistical parser can be configured by using the flag beam_size in the top-level concrete module 2013-02-12 10:53:13 +00:00
kr.angelov
1f77afcfce the statistical parser now uses a baseline lexical estimation of the beam size 2013-02-12 09:41:32 +00:00
hallgren
3cf08928f3 translator: add some menu padding for touch devices 2013-02-11 16:46:43 +00:00
hallgren
70f5363f73 translator: small style change 2013-02-11 16:33:48 +00:00
hallgren
84ce2b49ae translator: remove debug code 2013-02-11 16:13:39 +00:00
hallgren
f4c9a88962 translator: "Open..." doesn't discard the current document anymore
It shows available documents and a Cancel button on top of the current
document.
2013-02-11 16:03:17 +00:00
kr.angelov
a6b35a9053 the class PgfConcr from the Python binding now has a property name which returns the name of the concrete syntax 2013-02-11 15:51:26 +00:00
kr.angelov
0b7b939aca refactoring: now all named objects in the C runtime have an explicit name field 2013-02-11 14:10:54 +00:00
kr.angelov
56c8f91d19 remove the pgf2yaml tool which was both broken and redundant. The declarations for generic programming from data.c are removed as well 2013-02-11 13:51:12 +00:00
kr.angelov
ff25ba8f90 the grammar reader in the C runtime is completely rewritten and it doesn't use the generic programming API 2013-02-11 10:16:58 +00:00
aarne
28c59faf29 pg -lexc now writes a list of multichar symbols and a title ("Root") for the lexicon, as required by Xerox lexc 2013-02-03 10:03:15 +00:00
kr.angelov
e9b5557c6c This patch removes Gregoire's parse_tokens function in the python binding and adds another implementation which builds on the existing API for lexers in the C runtime. Now it is possible to write incremental Lexers in Python 2013-02-01 09:29:43 +00:00
kr.angelov
eca4a28563 implement gu_exn_caught in gu/exn.c. It was missing 2013-02-01 09:26:30 +00:00
hallgren
09fb4cdef0 Better error message for unsupported token gluing
Instead of "Internal error in ...", you now get a proper error message with
a source location and a function name.
2013-01-29 16:25:03 +00:00
hallgren
79795cb0e7 Fix a bug with record extension
Add a conversion rule for ({ l1 = e } ** x).l2 in PMCFG generation. (A rule
for the symmetric case (x ** { l1 = e }).l2 was added some time ago.)
2013-01-29 14:59:16 +00:00
hallgren
4d2de24ce9 Avoid crash in random generation with probabilities 2013-01-29 13:59:20 +00:00
kr.angelov
87545f3f83 bugfix in the reference counting for Python 2013-01-29 09:41:12 +00:00
kr.angelov
d4717d533a the Python binding is in pure C again 2013-01-29 09:20:32 +00:00
kr.angelov
66282bfcb7 added an API for composing and decomposing abstract trees from Python 2013-01-29 09:07:41 +00:00
kr.angelov
1723d8637c fixed typos in the python binding: in a few places pgf_ExprType was used instead of pgf_ExprIterType 2013-01-29 09:06:23 +00:00
hallgren
c14e75706e Quick fix to render some parser error messages from UTF-8-encoded source files correctly.
The parser works on raw byte sequences read from source files. If parsing
succeeds the raw byte sequences are converted to proper Unicode characters 
in a later phase. But the parser calls the function buildAnyTree, which can 
fail and generate error messages containing source code fragments, which might
then containing raw byte sequences. To render these error messages correctly, 
they need to be converted in accordance with the coding flag in the source 
file. This is now done for UTF-8-encoded source files, but should ideally also
be done for other character encodings. (Latin-1-encoded files never suffered 
from this problem, since raw bytes are proper Unicode characters in this case.)
2013-01-28 17:23:02 +00:00
hallgren
764b649959 Better error message for Predef.error
+ Instead of "Internal error in ...", you now get a proper error message with
  a source location and a function name.
+ Also added some missing error value propagation in the partial evaluator.
+ Also some other minor cleanup and error handling fixes.
2013-01-28 16:12:56 +00:00
aarne
6af9575a68 improved error message for overloading in case the given signature looks the same as one of the expected ones: it shows full records rather than just lock fields. 2013-01-28 14:00:23 +00:00
gregoire.detrez
459a9a855b Python binding: add a parsing function that accepts directly a list of tokens.
Is allows to define a tokenizer in python (or use an existing one, from nltk for instance.)
2013-01-24 13:31:34 +00:00
john.j.camilleri
f633e899e9 Add fun/cat printnames to PGF web service
This is accessible vis the `browse` command, by adding the flag `printnames`
e.g.: .../Letter.pgf?command=browse&id=Recipient&format=json&printnames=1
2013-01-18 09:39:50 +00:00
hallgren
d55f5b4e7b gf -server: fix bug in bug fix for current directory 2013-01-13 12:36:58 +00:00
hallgren
f9551337a9 gf -server: small logging improvements 2013-01-12 18:48:23 +00:00