Commit Graph
100 Commits
Author SHA1 Message Date
hallgren 5fe680c837 PGF service: apply the token binding operator &+ to all linearizations
The &+ operator is now consistently eliminated from the output of commmands
that produce linearizations. Before, only the commands translate and
translategroup did this.
2013-04-24 18:32:53 +00:00
hallgren 7f0f91a54b js/localstorage.js: don't throw an exception if JSON parsing fails
Return the given default value instead.
2013-04-23 14:14:38 +00:00
hallgren 1146b94685 gfse: add access to the syntax editor
via the minibar
2013-04-23 13:55:00 +00:00
hallgren 2639dc67b1 js/gfrobust.js: don't try to translate sentenses that are too long
The C run-time responds badly to input that is too long, so we return an
error message here instead.
The limit is 200 URL-encoded characters.
2013-04-23 13:40:38 +00:00
hallgren ba1bdaa3dc js/localstorage.js: improved faked localStorage if real localStorage is missing 2013-04-23 12:44:12 +00:00
hallgren bcf8346716 minibar: use the common interface to localStorage
...for more streamlined code and better browser compatibility.
2013-04-23 12:39:18 +00:00
hallgren a0bcea3076 gfse: don't add --# -path=.:present
Nowadays GF includes alltenses by default in the grammar search path.
2013-04-20 07:25:38 +00:00
hallgren 4ca26b8734 simple translation tool: minor documentation fix 2013-04-19 14:10:03 +00:00
hallgren 8f187584e9 gf-cloud-api.html: fixed a typo
in the documentation of command=remake.
2013-04-19 12:17:27 +00:00
hallgren 27545f6d18 gf-cloud-api.html: clarification
Unrecoginzed parameter in cloud service requests are silently ignored.
2013-04-19 12:06:00 +00:00
hallgren ff691dee7b simple translator: improved translation with the GF robust parser
by separate punctuation from the string sent to the robust parser.
Also added buttons to view parse trees from the robust parser.
2013-04-18 13:11:46 +00:00
hallgren 5f35a59b95 gfrobust.js: add a method for constructing parse tree image URLs. 2013-04-18 13:11:05 +00:00
hallgren 6ae28fc693 GF home page: add "machine translation" in a meta keywords tag
GF does not show up if you google for machine translation. This meta tag might
help, but in general I think it is better for SEO to mention relevant keyword
in the body text than to rely on meta tags.
2013-04-18 12:02:32 +00:00
hallgren 563299085d minibar: syntax editor integration bug fix
The minibar has the alternative "All" in the target language menu. This should
not be included when transfering to the syntax editor.
2013-04-17 08:49:31 +00:00
hallgren b037fa2b32 minibar: fixes for phrasebook
Add minibar option to_multiple to be able to turn off selection of multiple
target languages.
2013-04-17 08:39:39 +00:00
hallgren d35790e656 GF cloud: work on syntax editor integration
+ The syntax editor is now accessible from the Simple Translaton Tool.
+ The minibar now automatically provides access to the syntax editor (provided
  the necessary JavaScript files and style sheets have been loaded).
+ Preparations for making the syntax editor accessible from the grammar editor.
2013-04-12 18:29:15 +00:00
hallgren 1d0f9372f4 syntax editor: fix references to global object 'server' 2013-04-12 17:50:44 +00:00
hallgren eb941d6eac minibar/syntax editor integration fixes
When starting from the minibar, the selected set of target languages is now
preserved when switching back and forth.
2013-04-12 14:30:27 +00:00
hallgren a0d785610d Simple Translation Tool: eliminate &+ in translations from GF
Also fixed a bug introduced in previous refactoring.
2013-04-12 13:00:05 +00:00
hallgren 40e9fe30c3 gfrobust.js: adding a JavaScript API to the GF Robust Parser translation service
Factored out from the Simple Translation Tool.
2013-04-12 12:47:13 +00:00
hallgren 59f9f9dd17 minibar.html: add debug element
to allow debug output from the syntax editor when it is started from the
minibar.
Also fix broken markup.
2013-04-11 11:47:06 +00:00
hallgren 5bce1d7a16 gf -s/-q now silences "no linearization of" warnings 2013-04-10 23:00:01 +00:00
hallgren b8ce5ef5b3 PGF.hs: export function missingLins
Also in Commands.hs: be explicit about things imported from the PGF library
that are not in the public API.
Also a couple of haddock documentation fixes.
2013-04-08 15:38:11 +00:00
hallgren 35b47968d2 minibar: add a visual hint that linearizations can be expanded into tables 2013-04-07 12:06:12 +00:00
hallgren cc0743ade1 Compiler.hs: ghc 7.6.2 compatibility 2013-04-05 20:37:37 +00:00
hallgren 5a7e8cc601 Simple Translator: add GF Robust Parser to the menu for individual segments 2013-04-05 20:32:20 +00:00
hallgren 0bbbda0911 Simple Translator: use lextext/unlextext for translations with the robust parser 2013-04-05 15:15:40 +00:00
hallgren fca0a00c81 Simple Translator: initial support for translation with the GF robust parser 2013-04-05 13:25:09 +00:00
hallgren 3c244ff27f minibar/syntax editor integration improvements
Work in progress on preserving the start category and selected target languages
when switching between the minibar and the syntax editor.
2013-04-04 14:04:31 +00:00
hallgren a22a419bc7 Simple Translation Tool: initial support for editing source segments in the minibar 2013-04-03 20:24:57 +00:00
hallgren 0568a1a32a Adding src/www/js/localstorage.js
A common interface to localStorage, to store JSON data under a unique prefix.
2013-04-03 20:23:32 +00:00
hallgren c02d5b188b Prevent Unicode characters in warning messages from stopping grammar compilation
When compiling a grammar containing characters that are not supported in the
current locale, warning messages could cause GF fail with 

  hPutChar: invalid argument (Invalid or incomplete multibyte or wide character)

With this quick fix, warning messages that can not be displayed are silently
truncated instead, and compilation continues.
2013-04-03 06:42:08 +00:00
hallgren 078edf3e6b gf.cabal: fix tab char problem 2013-04-02 14:53:15 +00:00
hallgren eb3fc960d5 gf.cabal: gf depends on utf8-string even when compiled without server support 2013-04-02 14:50:01 +00:00
hallgren f26778feb0 minibar: remember the selected set of target langauges 2013-04-02 13:49:50 +00:00
hallgren 4e40fd5697 minibar: abstract syntax trees are now shown with or without category names
Function names are always shown.
2013-04-02 11:56:10 +00:00
hallgren 63c0b7ae5d minibar: show abstract syntax trees without or with function names
Click once to show abstract syntax trees without function names. Click again
to add function names.
2013-03-28 16:00:04 +00:00
hallgren 08046137cb PGF web API: command=abstrtree not supports the nocat and nofun options 2013-03-28 15:57:17 +00:00
hallgren be1d380ea5 minibar: fix problems with the To: menu
Automatically expanding the menu when the mouse is over it seems to cause wierd
scrolling behavior in Chrome (and also in Firefox but less severe).
2013-03-27 23:39:35 +00:00
hallgren 323982b0ea minibar: documentation update 2013-03-27 16:45:09 +00:00
hallgren 8b06936c01 minibar: click on a linearization to obtain a table with all variants and forms
Click again to hide the table.
2013-03-27 16:35:56 +00:00
hallgren 7e214fee01 support.js: add function replaceNode 2013-03-27 16:35:32 +00:00
hallgren 1ff78dae97 PGF web API: add comand linearizeTable
The new command linearizeTable outputs linearizations as tables containing all
variants and forms, labelled by parameters
2013-03-27 16:31:52 +00:00
hallgren 060e3147e8 minibar: fix buttons for abstract syntax trees and word alignment diagrams
They stopped working after yesterday's changes.
2013-03-27 14:07:16 +00:00
hallgren 2cb7ed5734 minibar: documentation update 2013-03-26 14:38:10 +00:00
hallgren 155c559e5f minibar: show parse trees without or with function names
Click once to show the parse tree without function names. Click again to
add function names.
2013-03-26 14:24:22 +00:00
hallgren 1962574941 PGF service: support all parse tree visualziation options in the web API
The new options are

  * noleaves, nofun, nocat (booleans, false by default)
  * nodefont, leaffont, nodecolor, leafcolor, nodeedgestyle, leafedgestyle
    (strings, empty by default)
2013-03-26 14:17:24 +00:00
hallgren 9faa3407ab haddock bug workaround 2013-03-26 13:14:37 +00:00
hallgren dca51e7417 minibar: initial support for selecting an arbitrary subset of target languages
This affects which translations are shown and which languages are included in
the word alignment diagrams.
2013-03-25 17:43:12 +00:00
hallgren 3ae3df209e Setup.hs: paralell RGL module compilation experiment
For this to have any effect, Setup.hs has to be compiled with -threaded, which
cabal-install doesn't do, unfortunately...
2013-03-25 14:03:10 +00:00
hallgren 80fe693546 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
hallgren 66dae1fe17 Update shell reference manual 2013-03-14 08:08:51 +00:00
hallgren 07f958a9b7 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 d4fc60f260 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
hallgren e5ce4d4b1e 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
hallgren d1c5fafc69 Additional changes for GHC 7.4 & 7.6 compatibility 2013-03-11 12:57:09 +00:00
hallgren 8200145513 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 95d77e3c37 pattern match length estimation code simplication 2013-02-28 15:13:20 +00:00
hallgren 0feb386691 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 95c4cbb8f5 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
hallgren 4f243fbf12 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
hallgren e5231eebbd translator: add some menu padding for touch devices 2013-02-11 16:46:43 +00:00
hallgren ae16e48d0d translator: small style change 2013-02-11 16:33:48 +00:00
hallgren 4ee6a83369 translator: remove debug code 2013-02-11 16:13:39 +00:00
hallgren 0a8ccfe912 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
hallgren 234572b556 gf.cabal: version 3.4-darcs 2013-02-11 16:02:50 +00:00
hallgren 88d20ca612 GF home page style update 2013-02-07 13:11:09 +00:00
hallgren 74c5bdbafc download page: add link to Fedora RPMs, mention GitHub 2013-01-31 13:03:37 +00:00
hallgren 1393f0519f GF 3.4 download page: add binary packages for Mac OS X and Ubuntu 2013-01-31 00:49:13 +00:00
hallgren c57fcca3d1 Update download page to GF 3.4 2013-01-30 23:34:50 +00:00
hallgren 38fbd142a0 This is GF 3.4! 2013-01-30 23:27:06 +00:00
hallgren 9c63cb9e2c debian/changelog: updated for GF 3.4 2013-01-30 17:20:46 +00:00
hallgren 6c7948fa24 download/index-3.4.t2t: download page for GF 3.4
Will be renamed to index.t2t when the release is official.
2013-01-30 16:44:16 +00:00
hallgren d149dd8a58 doc/gf-developers.t2t: updated 2013-01-30 16:32:44 +00:00
hallgren 3cd71e7c0d gf.cabal: Tested-with GHC==7.4.2 only, older versions cause minor problems 2013-01-30 15:57:35 +00:00
hallgren f0de776045 Setup.hs: eliminate "minimal" mode, fix darcs version info
The reported number of recorded changes since the last tagged version was off
by one (because it counted the change that set the tag).
Also added a note that -K32M is not needed when using new-comp. But -old-comp
is still available as a configuration option, so I'm keeping -K32M for now.
2013-01-30 15:48:36 +00:00
hallgren 3ebf878281 release-3.4.t2t updates
Don't include names of contributors, link to additional info instead.
2013-01-30 15:08:26 +00:00
hallgren d4b6d1b6fe 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 14c8da214c 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 211cd9bb25 Avoid crash in random generation with probabilities 2013-01-29 13:59:20 +00:00
hallgren a559e51608 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 713e883ad7 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
hallgren 3360cc904c Setup.hs: add some incomplete languages to the list compiled languages
To be specific: Amh, Ara, Lat, Tur and Mlt.
2013-01-28 16:07:44 +00:00
hallgren 35aedadc83 gf -server: fix bug in bug fix for current directory 2013-01-13 12:36:58 +00:00
hallgren 68c04cdd63 gf -server: small logging improvements 2013-01-12 18:48:23 +00:00
hallgren b0228af26d gf -server: defend against problems with the current directory caused unhandled errors 2013-01-12 17:11:31 +00:00
hallgren 4f4c4e4107 GF 3.4 release notes update 2013-01-11 15:43:32 +00:00
hallgren a8f281491c partial evaluator: fix token glueing bug
"a"+("b"++"c") was simplified to "bb"++"c" instead of "ab"++c.
2013-01-11 15:14:42 +00:00
hallgren f2751ff9e1 Fixes for minibar offline
Tested it in Firefox 18 (which has the new Ionmonkey JavaScript engine).
Still get stack overflows.
2013-01-09 16:44:18 +00:00
hallgren 1497fd863a PGF service: new command: download
This makes it possible to download PGF files from servers where the PGF service
is installed.

I am also considering making commmand=download the default instead of
command=grammar.
2013-01-09 13:28:45 +00:00
hallgren 12dec2503d bug fix in the new partial evaluator
It can leave wildcard tables in their origial form, but it easy to handle
them in the unfactor function in GeneratePMCFG.
2012-12-20 16:41:43 +00:00
hallgren d968503d90 PGFService.hs: code duplication reduction 2012-12-20 00:15:18 +00:00
hallgren ece3e33c52 partial evaluator bug fix
It failed to delay table selection when the selector contains a run-time
variable, causing "gf: Prelude.(!!): index too large" instead.

Also:
  + Show better source locations on unexpected errors, to aid bug hunting.
  + Removed unused SourceGrammar argument to value2term.
2012-12-19 23:12:37 +00:00
hallgren b4207d1b00 GF.Grammar.Lookup: new function lookupResDefLoc
It's like lookupResDef but it includes a source location in the output.
2012-12-19 23:08:56 +00:00
hallgren c3beefba47 partial evaluator bug fix
Int was missing from the list of predefined canonical constants.
2012-12-18 13:03:20 +00:00
hallgren 9ab3a6034d Add language extension for ghc<7.4
FlexibleInstances does not imply TypeSynonymInstances, apparently.
2012-12-14 14:21:46 +00:00
hallgren d7e3c869c2 More work on the new partial evaluator
The work done by the partial evaluator is now divied in two stages:
 - A static "term traversal" stage that happens only once per term and uses
   only statically known information. In particular, the values of lambda bound
   variables are unknown during this stage. Some tables are transformed to
   reduce the cost of pattern matching.
 - A dynamic "function application" stage, where function bodies can be
   evaluated repeatedly with different arguments, without the term traversal
   overhead and without recomputing statically known information.

Also the treatment of predefined functions has been reworked to take advantage
of the staging and better handle partial applications.
2012-12-14 14:00:21 +00:00
hallgren 5e091d2e3d partial evaluator work
* Evaluate operators once, not every time they are looked up
* Remember the list of parameter values instead of recomputing it from the
  pattern type every time a table selection is made.
* Quick fix for partial application of some predefined functions.
2012-12-11 15:37:41 +00:00
hallgren 93da60fa04 GF home page: link to the Resource Grammar Library coverage map by Tommi Nieminen 2012-12-10 15:17:55 +00:00
hallgren 621291a575 Compute.ConcreteNew: add missing case for variant functions
Also adding a test case in the test suite for this.
2012-12-10 13:25:32 +00:00