1
0
forked from GitHub/gf-core
Commit Graph

2720 Commits

Author SHA1 Message Date
hallgren
114788a3db GFServer.hs: apply UTF8 decoding to all server input 2012-05-16 14:03:09 +00:00
hallgren
5ac7bfc326 translator: file browser shows files alphabetically now 2012-05-16 13:25:18 +00:00
kr.angelov
d2e528c7f4 small fix for compiling the robust parser on MacOS 2012-05-16 12:18:50 +00:00
hallgren
adffb5f872 translator: bug fix
My menu hiding hack didn't work in Gecko browsers because of a difference in
the behaviour of the JavaScript setTimeout function.
2012-05-16 11:53:27 +00:00
hallgren
66e6b5269d Adding a Simple Translation Tool
It is part of the cloud services available with gf -server.
2012-05-15 15:36:06 +00:00
hallgren
e90e1202c4 Integrate Japanese
* Update Setup.hs to build Japanese by default.
* News item about Japanese on the home page.
* Add Japanese to the supported RGL imports in the grammar editor (gfse).
2012-05-15 13:11:32 +00:00
aarne
a2bae03824 missing case in partial evaluation of + fixed 2012-05-15 11:48:30 +00:00
kr.angelov
a6800fc0da a new unbiased statistical parser. it is still far from perfect use it on your own risk. 2012-05-08 12:13:28 +00:00
kr.angelov
931066f6fc yet another fix for parsing literals 2012-04-18 15:50:55 +00:00
kr.angelov
17bc8e5c89 some fixes in the robust parser and a new API for literals 2012-04-12 06:55:25 +00:00
hallgren
841e54e3dc alex 3 incompatibility workaround
As a temporary workaround, alex is no longer invoked automatically when
building with cabal. Developers who want to modify the lexer need to run
alex on Lexer.x manually and record the modified Lexer.hs.

    src/compiler/GF/Grammar/lexer/Lexer.x    -- hidden from cabal
    src/compiler/GF/Grammar/Lexer.hs         -- update it manually
2012-05-04 12:39:07 +00:00
hallgren
3022c7d08e minibar_offline: fix the link to the regular minibar 2012-04-30 14:03:58 +00:00
hallgren
c10bd79e26 minibar_offline: Update the API exported by pgf_offline.js to be compatible with pgf_online.js
This makes the minibar offline demo work again.
2012-04-30 13:53:55 +00:00
hallgren
c6c9b994d2 minibar: word-for-word replacements: use concrete syntax for replacement words when possible
Instead of showing the name of a function in the abstract syntax, linearize it
and show the result. For functions with argument, e.g. That : Kind -> Item,
the function is applied to the right number of placeholder arguments: 'That ?'.
If the linearization fails, the name of the function is shown anyway.
2012-04-27 14:00:01 +00:00
hallgren
c69f69ee9c minibar&gfse: grammar extension user interface improvements
The grammar extension is now done with a regular HTML form, so you can use the
TAB key to move between the fields and press ENTER to submit the extension when
you are done.
TODO: more immediate error feedback
2012-04-24 17:13:33 +00:00
hallgren
9d47b83e07 minibar & cloud service: minor style changes
Also include the GF logo on the cloud service start page.
2012-04-19 15:34:56 +00:00
hallgren
98ed039498 Minibar documentation update
Document recent additions in minibar/about.html.
2012-04-19 12:36:03 +00:00
hallgren
ff812613c8 minibar: add buttons to use generated translations as input
This functionality was available in the origial Fridge Poetry app, but has been
missing in minibar until now.
2012-04-18 16:26:49 +00:00
hallgren
baadce4acd minibar: fix to prevent the typed input field from losing focus when turning word-for-word replacment on or off 2012-04-11 14:03:39 +00:00
hallgren
68e2c0c0eb minibar: internal state type change
The current intput is now represented as an array of words instead of as a
string.
(This is the kind of change is scary to do in a dynamically type language
like JavaScript. In a statically typed language like Haskell you can do it
with confidence, since you know the compiler can help you catch all mistakes...)
2012-04-10 18:00:13 +00:00
hallgren
89b415ac37 minibar_input.js: internal state simplification
Get rid of list of previous states, which was only used to delete the last
word.
2012-04-10 16:49:51 +00:00
hallgren
500daf3bd4 minibar/pgf_online.js: pass arguments to the browse function in the same way as the other functions
Also document it in gf-web-api-examples.html.
2012-04-10 13:33:12 +00:00
hallgren
8b6817754b minibar&gfse: grammar extension user interface fixes
It works OK now, but it could be better, e.g. the number of mouse clicks
required to enter an extension could to be reduced...
2012-04-05 15:25:10 +00:00
hallgren
43c28ad276 minibar&gfse: first working grammar extension interface in minibar
There are still some user interface wrinkles to iron out.
2012-04-04 17:00:25 +00:00
hallgren
a4a154e5e2 minibar: remember current input
If you leave the minibar and later return, the previous input will be
restored. One input string per grammar is rememebered, so you can also switch
back and forth between grammars without losing the input.
This is implemented using localStorage, i.e. the data is stored locally on
the user's device.
2012-04-03 14:53:23 +00:00
kr.angelov
6644d93ec2 simple cleanup in the robust parser 2012-04-02 19:01:18 +00:00
hallgren
7ee66302d1 minibar: better implementation of word replacement
Instead of trying to reconstruct the abstract tree from the bracketed string,
use the node numbers (the field called "fid") to identify which node in the
abstact syntax tree a word in the bracketed string corresponds to.
2012-04-02 16:05:11 +00:00
hallgren
c2a72daa74 gf-server.cabal: mtl is needed to build pgf-server now 2012-04-02 15:58:21 +00:00
hallgren
1c1679227e PGFService.hs: add web API function "abstrjson"
Abstract syntax trees are represented as strings in the web API. To make them
easier to manipulate in JavaScript, the new function converts them to JSON.

To support structural editing, the nodes are numbered in the same way as in
the bracketed string created when linearizing an abstract syntax tree.

Example: "Pred (That Fish) Fresh" is converted to

	{fun:"Pred",fid:3,
	 children:[{fun:"That",fid:1,
		    children:[{fun:"Fish",fid:0}]},
		   {fun:"Fresh",fid:2}]}
2012-04-02 15:42:43 +00:00
hallgren
1db4fab25c support.js: add an implementation of Array.isArray for older browsers that lack it 2012-04-01 18:23:28 +00:00
hallgren
e85a3fff56 gfse&minibar: work in progress on grammar extension fromminibar 2012-03-29 17:10:36 +00:00
hallgren
a519d01754 gfse: show an informative error message in browsers that lack support for localStorage 2012-03-29 14:11:38 +00:00
hallgren
47c116b5a6 Workaround for bug in ghc-7.2.2
An apparent bug in ghc-7.2.2 causes the type Value to be exported from PGF.Data.
Workaround: restrict the imports from PGF.Data in GF.Command.Abstract and
GF.Compile.GeneratePMCFG to avoid the clash with locally defined type Value.
(ghc-7.0.4 and ghc-7.4.1 appear to be free from this bug.)
2012-03-26 23:56:56 +00:00
Sergei Trofimovich
c015ac77bd compiler/GF/Text/Coding.hs: fix build failure against ghc-7.2 2012-03-26 20:48:57 +00:00
Sergei Trofimovich
24740d250b Fix List.foldl / Map.foldl ambiguosity
Fixes the following error:
src/runtime/haskell/PGF/Expr.hs:111:14:
    Ambiguous occurrence `foldl'
    It could refer to either `List.foldl',
                             imported from `Data.List' at src/runtime/haskell/PGF/Expr.hs:27:1-24
                             (and originally defined in `GHC.List')
                          or `Map.foldl',
                             imported from `Data.Map' at src/runtime/haskell/PGF/Expr.hs:28:1-40
2012-03-26 20:18:23 +00:00
hallgren
a8ddb8fe5c minibar: support for adding grammars from several servers to the grammar menu
You can also add grammars from several directories on the same server of course.
The included minibar configuration file adds the user's own grammars from the
grammar editor.
2012-03-26 17:17:54 +00:00
hallgren
9a6887aa49 gfse: enable word replacement in minibar when activated from the editor 2012-03-26 17:13:40 +00:00
hallgren
671c9b5390 gfse&minibar: fix bug caused by function name clash
+ Function div_id was defined in both editor.js and support.js. Solution:
  moved the more general version from editor.js to support.js.
+ Function div_class was defined in both editor.js and support.js. Solution:
  resolv incompatibility with an argument type test and put the generalized
  function in support.js.
2012-03-26 17:08:29 +00:00
hallgren
4673aeca7b minibar: word-for-word replacement fixes
Check that the reconstructed abstract syntax tree is type correct before
enabling word-for-word replacement. Show an error message if word replacement
nevertheless fails.
2012-03-22 14:33:42 +00:00
hallgren
f8ea4b8046 pgf_online.js: error callbacks
To enable customized error handling, the methods in the pgf_online objects and
the AJAX server call functions in support.js accept an error callback function
as an extra argument, in addition to the callback (continuation) for normal
results.
2012-03-22 14:09:53 +00:00
hallgren
0d57b9fa09 minibar: word-for-word replacement fix
Turn off the highlighting that indicates that word-for-word replacement is
enabled when it is no longer available (e.g if a word is deleted and there no
longer is a complete parse).
2012-03-19 15:24:35 +00:00
hallgren
428c2184fa minibar: fix for recently introduced bug affacting Webkit browsers
It seems that in Gecko browsers, the effect of "with(x) stmts" reaches inside
the bodies of local functions in stmts, but in Webkit browers it does not.
2012-03-19 15:15:47 +00:00
hallgren
387deecd31 minibar: don't try to select the most recently used grammar if it isn't in the current grammar list 2012-03-19 00:35:10 +00:00
hallgren
0591f77658 minibar: automatically select the most recently used grammar when returning to the minibar 2012-03-18 23:54:50 +00:00
hallgren
07af8988d3 PGF run-time library: function names in BracketedString (experimental)
+ Make room for function names in the BracketedString data structure.
+ Fill in function names when linearizing an abstract syntax tree to a
  BracketedString.
+ Fill in wildCId when it is not obvious what the function is.
+ Function bracketedLinearize: for compatibility with the other linearization
  functions, return Leaf "" instead of error "cannot linearize".
+ Export flattenBracketedString from module PGF.
+ PGFServce: make function names available in the JSON representation of
  BracketedString.
2012-03-18 20:12:26 +00:00
hallgren
771c1a0ad7 minibar: word-for-word replacement (experimental)
The new functionality also needs some new PGF service functionality, which will
be provided in a separate patch.
2012-03-18 20:02:11 +00:00
hallgren
63e531ad39 Cloud service start page layout fix for small screens 2012-03-17 16:23:54 +00:00
hallgren
7c484aeada PGFService.hs: command=browse can now produce output in JSON format.
To get JSON output, add the parameter format=json. The JSON structure contains
the output from the function PGF.browse.
The default is format=html for backwards compatibility.
2012-03-16 13:55:19 +00:00
kr.angelov
230f309317 libpgf: a new implementation for literals which also allows custom literals. the same mechanism is now used for the metavariables 2012-03-12 14:25:51 +00:00
kr.angelov
1726995921 libpgf: added simple lexer 2012-03-09 09:14:44 +00:00