Commit Graph
100 Commits
Author SHA1 Message Date
hallgren aa9280b287 Workaround for a problem with lock fields
This problem showed up after delaing eta expansion until just before partial
evaluation
2013-09-10 13:43:59 +00:00
hallgren b93f817058 new-comp: delay eta expansion until just before partial evaluation
This seems to work for the most part, but a problem showed up in WordsCat.gf in
the phrasebook.
2013-05-30 16:01:12 +00:00
hallgren bf5dfb2293 Nonlinear patterns in concrete syntax are now detected and reported as errors
Before, they were silently converted to linear patterns.
Nonlinear patterns in MorphoCat.gf, ParadigmsGre.gf and ParadigmsFin.gf have
been make linear by renaming pattern variables.
2013-09-09 19:52:08 +00:00
hallgren 3543cb7a16 partial evaluator: prettier complaint about nonlinears patterns 2013-09-09 16:23:01 +00:00
hallgren 990789eb91 partial evaluator: complain about nonlinear patterns 2013-09-09 15:53:14 +00:00
hallgren 83283b0d6a Fix an old name shadowing bug in concrete syntax by removing the refresh pass
The refresh pass does not correctly keep track of the scope of local variables
and can convert things like \x->(\x->x) x into \x1->(\x2->x2) x2. Fortunately,
it appears that the refresh pass is not needed anymore, so it has been removed.
2013-09-09 14:29:57 +00:00
hallgren d7916c1b08 Fix an old bug that prevented pattern matching agains values containg tables
The function GF.Grammar.PatternMatch.isInConstantForm returned False for all
tables, causing matchPattern to fail, claiming that "variables occur in" the
term if it contains tables.

This problem is several years old, confirmed present in GF 3.2.10 (Oct 2010).
2013-09-05 15:20:41 +00:00
hallgren d626a194de gf.cabal: version: 3.5-darcs 2013-09-02 20:27:47 +00:00
hallgren 018b43837b Demo page: added a link to Phrasomatic 2013-08-22 19:27:33 +00:00
hallgren 9efb9ce2fb gfse: don't use multiline text boxes everywhere, just for concrete syntax 2013-08-21 14:19:05 +00:00
hallgren 08766585e6 gf -server: fix for directory URLs without a trailing slash
When a browser requests a URL that refers to a directory, web server usually
redirect the browser to the same URL with a trailing '/' added, if one was not
already present. This is to prevent relative links in the returned document
from being interpreted relative to the parent directory instead of the current
document. This type of redirection was missing in gf -server.
2013-08-20 15:38:26 +00:00
hallgren 4e7be49927 download page: link to Inari's notes on installing GF on windows 2013-08-20 08:09:58 +00:00
hallgren 2aa14bfef8 gfse: only try to upload/compile grammars when browser is online
Show error message "Offline" if browser is offline.
2013-08-19 15:00:55 +00:00
hallgren 029f1d40e5 gfse: always open a resizable text box when editing concrete syntax
(Also fixed a broken link in gf-web-api-examples.html)
2013-08-19 14:19:18 +00:00
hallgren 8a81641b00 doc/gf-developers.t2t: add some notes on how to create .deb and .rpm packages 2013-08-08 12:51:24 +00:00
hallgren fad63a14be Better error messages for attempts to redefine predefined constants
Instead of just "syntax error", you now get e.g.

   PType is a predefined constant, it can not be redefined

This is a simple change in the parser.
2013-08-07 19:36:09 +00:00
hallgren 824fbee593 Update to version 3.5 in gf.cabal and debian/changelog 2013-08-06 15:42:57 +00:00
hallgren 4dd9a42f4a Move GF 3.5 download page into place. Update home page. 2013-08-06 15:32:20 +00:00
hallgren 2b3854b635 Finalize GF 3.4 download page and release notes 2013-08-06 15:28:53 +00:00
hallgren f0cded5f53 Next release will be GF 3.5, release notes moved to download/release-3.5.t2t.
Some more work on the 3.5 release notes and download page.
2013-08-05 12:38:38 +00:00
hallgren 3be7ab3f49 Update shell reference manual 2013-08-05 11:47:17 +00:00
hallgren 27da46a79d Cloud & PGF service: use Content-Type application/json for JSON output
This is in accordance with RFC 4627. http://tools.ietf.org/html/rfc4627
Use application/javascript for JSONP output.
2013-07-29 16:05:54 +00:00
hallgren ecfcaa5395 Adding download page and release notes for the next release of GF
The suggested next release is 3.4.8 in early August.
Feel free to add things in download/release-3.4.8.t2t.
2013-07-29 13:26:22 +00:00
hallgren 3b334b5707 minibar: more robust test for availability localStorage
Minibar should now work if localStorage is disabled or unavailable.
(In Firefox, disabling cookies also disables localStorage.)
2013-07-29 11:58:17 +00:00
hallgren e07a74df01 Allow cross origin requests to GF cloud & PGF services
By adding a header

	Access-Control-Allow-Origin: *

to the HTTP responses, web browsers are informed that it is OK to call the
services from web pages hosted on other sites.

This is apparently supported in most modern browsers, so it should no longer
be necessary to resort to JSONP.

See https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS
2013-07-25 16:04:43 +00:00
hallgren fe79e8cd25 gf-server.cabal: same changes as in gf.cabal for ghc-7.6 compatibility 2013-07-15 17:07:51 +00:00
hallgren bdfd663e91 Fix UTF-8 decoding problem in gf -server
The package network-2.4.1.1 thoughlessly introduced a backward incompatible
change to the function Network.URI.unEscapeString, see

    https://github.com/haskell/network/commit/f2168b1f8978b4ad9c504e545755f0795ac869ce

This also affects the function Network.Shed.Httpd.queryToArguments, which is
used in GFServer.hs.

To remain compatible with older and newer versions of the network package,
we need to stay clear of queryToArguments and unEscapeString. A replacement
function has been added to server/URLEncoding.hs.
2013-06-13 08:23:48 +00:00
hallgren d010dfdcfa Update the usage text for the --output-format option
It needs to be updated manually when the list of available output format
changes.
2013-06-10 12:00:14 +00:00
hallgren 5b36461c1d GF.Text.Transliterations: avoid error prone function Data.Map.fromAscList 2013-06-02 10:10:46 +00:00
hallgren 29f1487aa4 Demo page: add a version of the minibar that shows just the MOLTO Application grammars 2013-05-24 14:20:36 +00:00
hallgren da577d15ef Download page: the .deb packages also work on Ubuntu 13.04 2013-05-03 13:14:27 +00:00
hallgren e44580aced Setup.hs: comment out ineffective parallelisation 2013-05-02 12:36:16 +00:00
hallgren 41bccf5737 Download page & developers guide: add a section about known problems with Cabal 2013-04-29 13:12:37 +00:00
hallgren 8d866541d3 gfse: use alltenses/ instead of present/ when looking up RGL oper types 2013-04-26 15:01:11 +00:00
hallgren b88065e250 Add greek to Setup.hs and the web apps 2013-04-26 13:42:01 +00:00
hallgren c841c2c3c9 minibar: remove two more uses of with() 2013-04-25 15:08:26 +00:00
hallgren 7fe4ff8c46 minibar: fix bug that prevented minibar from working in Webkit browsers
The with(...) {...} statement has different scoping rules in Webkit browsers
and Gecko browsers, so it is better to avoid it.
2013-04-25 14:55:24 +00:00
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