Commit Graph
100 Commits
Author SHA1 Message Date
hallgren 7b87169c76 minibar: add a button to get detailed grammar info
After pressing the "i" button to view grammar info, there is now a
"More info" button to get more detailed information about all categories and
functions in the grammar.
2012-11-29 19:15:30 +00:00
hallgren c9522c0a37 minibar: add tool tips to some of the buttons
Also move the functions title and attr from editor/editor.js to js/support.js.
Also mention recent changes in minibar/about.html.
2012-11-29 16:05:42 +00:00
hallgren bf1ce93220 Convert some documentation to UTF-8
Using

	%!encoding:utf-8

in txt2tags files ensures that the generated HTML includes an appropriate
charset declaration. This way we avoid relying on browser defaults, which can
be wrong.
2012-11-27 16:03:29 +00:00
hallgren a6ac00023d some documentation updates and fixes
doc/Makefile: add a rule to regenerate gf-help-full.txt
gf-help-full.txt: updated (new parse tree visualization options)
demo & cloud index: clarifications
minibar documentation: better layout on mobile devices
GF 3.4 release notes: reorganized & updated
2012-11-27 14:11:47 +00:00
hallgren 7d528dc5b3 gfse: add Prelude to the list of RGL modules that can be opened 2012-11-26 15:08:16 +00:00
hallgren be311aeb07 gfse: more readable layout for not so simple grammars + bug fix
To make definitions that span multiple lines more readable in guided mode,
preserve line breaks and indentation when lin and oper definitions are
displayed and edited in guided mode.

Bug fix: moving the cursor by clicking and selecting text by dragging did
not work in textareas and input fields, because those mouse event were
intercepted by the sort-by-drag-and-drop handler.
2012-11-26 14:11:12 +00:00
hallgren 158aafa3af gf -server + gfse: show modification time of public grammars 2012-11-23 23:21:17 +00:00
hallgren ba9db76063 gf -server: support overloaded opers in gfse 2012-11-23 19:59:39 +00:00
hallgren 9b3d106ff8 gfse: use POST requests when parsing grammar modules after editing as text
instead of GET, to avoid the Apache httpd URI length limitation.

This means that gfse can no longer use JSONP when parsing grammars, so it
has to be located on the same host as the cloud service.

Also clean away trailing white space in support.js.
2012-11-23 18:51:44 +00:00
hallgren b410cc75cd Fix a prededence bug in GF grammar pretty printer
The pretty printer produced

	mkDet pre {"a"; "an" / vowel} Sg

which is not accepted by the parser. The parser assigns pre { ... }, to
prededence level 4, and this is now reflected in the pretty printer, so
it prints

	mkDet (pre {"a"; "an" / vowel}) Sg

(This caused a problem in GFSE since it parsers pretty printed grammars...)
2012-11-23 18:44:08 +00:00
hallgren fe9b368b90 syntax editor + minibar: fix bug with repeated switching back and forth
By avoiding "this" in callback functions, the code can be kept cleaner.
2012-11-23 13:15:16 +00:00
hallgren 8c9b90cc90 minibar: can now switch back to the minibar after switching to the syntax editor
This is done by including a lin_action when starting the syntax editor from
the minibar.
Also: added some minibar options in the syntax editor for consistency...
2012-11-22 16:42:39 +00:00
hallgren 78a2a90903 PGFService.hs: fix type error caused by change to PGF.graphvizParseTree
Note that some of the graphviz functions have backwards incompatible changes
that might also affect other clients of the PGF run-time library.

Also added graphvizDefaults and export it together with GraphvizOptions from 
the PGF run-time library.
2012-11-22 15:27:16 +00:00
hallgren 1354888b31 minibar: fix bug introduced in previous update
It could case JavaScript error

	ReferenceError: initial_grammar is not defined
2012-11-21 19:01:52 +00:00
hallgren bd3b512074 minibar+syntax editor integration, work in progress 2
+ Transfer current astract syntax tree when activating the syntax editor
  from the minibar.
+ Add options to start the minibar with given input. You need to include
  the current grammar url, the current language and the input, like this:

    initial_grammar: "/grammars/Foods.pgf",
    initial: { from: "FoodsEng", input:["that","fish","is","fresh"]}

+ Fix a style sheet clash.
2012-11-21 17:13:21 +00:00
hallgren 73a458dc66 minibar+syntax editor integration, work in progress 2012-11-21 15:07:59 +00:00
hallgren b62d41b8f6 gfse: remove obsolete files 2012-11-20 15:31:31 +00:00
hallgren fdab9fab6c GF cloud: move gf-web-api-examples.html out of minibar directory 2012-11-20 15:18:05 +00:00
hallgren f402d1687d GF cloud: move support.js and pgf_online.js
Created the folder js and moved minibar/support.js and minibar/pgf_online.js
there, to emphasize their status as app independent support libraries.

There are probably more files that should be moved here.

The cloud apps have been updated, externally hosted apps that link directly
to our server need to be updated too.
2012-11-20 12:56:48 +00:00
hallgren 4ec77e5664 GF web service API examples: update examples of the browse command
Also some style tweaks.
2012-11-17 17:42:30 +00:00
hallgren 57ab3564c0 PGF service: command=browse&format=json returns info on all cats and funs
The browse command used to have a required parameter id=... and it returned
info on the given identifier only. Now, if format=json, the id=... parameter
can be omitted to get info on all identifiers at the same time. The returned
JSON structure in this case is

        {cats:{...},funs:{...}}

where the inner objects contain one field per category and function,
respectively, in the same format as when you request info on one category or
function.
2012-11-17 14:22:30 +00:00
hallgren 34ce2ab81e GF web service API examples: added the "abstrjson" command
It converts an abstract syntax tree (represented as a string) to a JSON
structure.
Also some HTML code cleanup.
2012-11-17 11:55:32 +00:00
hallgren cf00c8bd0b new-comp: rewrite f (x|y) into (f x|f y)
With this change, all languages in molto/mgl/mixture except German and Polish
can be compiled.
2012-11-16 13:47:10 +00:00
hallgren 19f5112b9f Updated summer school links
You can now use the following links to refer to GF Summer School web pages:

- Latest summer school: http://school.grammaticalframework.org/
- 2009 summer school: http://school.grammaticalframework.org/2009
- 2011 summer school: http://school.grammaticalframework.org/2011
- 2013 summer school: http://school.grammaticalframework.org/2013

This is accomplished with DNS and web server configuration. No files have
been moved, so this does not break any existing links (except that
http://school.grammaticalframework.org/ now refers to the latest summer school
instead of the 2011 summer school).
2012-11-15 21:05:10 +00:00
hallgren 5a920eea11 download/release-3.4.t2t: starting to prepare for the next release of GF
Feel free to add to the release notes.
The file can be renamed if the next release will not be called GF 3.4.
2012-11-15 19:33:42 +00:00
hallgren 586d7488f2 Add flag --document-root for user with gf --server
This can make it easier to test cloud service updates before installing them.
2012-11-14 13:52:45 +00:00
hallgren 0ef7b8a3b5 GF usage message fixes
Change the command name from gfc to gf in the usage message header.
Correct spelling of "overide" to "override" in -gf-lib-path description.
2012-11-14 13:49:10 +00:00
hallgren b6f392b4e1 Adding a new experimental partial evalutator
GF.Compile.Compute.ConcreteNew + two new modules contain a new
partial evaluator intended to solve some performance problems with the old
partial evalutator in GF.Compile.Compute.ConcreteLazy. It has been around for
a while, but is now complete enough to compile the RGL and the Phrasebook.

The old partial evaluator is still used by default. The new one can be activated
in two ways:

  - by using the command line option -new-comp when invoking GF.
  - by using cabal configure -fnew-comp to make -new-comp the default. In this
    case you can also use the command line option -old-comp to revert to the old
    partial evaluator.

In the GF shell, the cc command uses the old evaluator regardless of -new-comp
for now, but you can use "cc -new ..." to invoke the new evaluator.

With -new-comp, computations happen in GF.Compile.GeneratePMCFG instead of
GF.Compile.Optimize. This is implemented by testing the flag optNewComp in
both modules, to omit calls to the old partial evaluator from GF.Compile.Optimize
and add calls to the new partial evaluator in GF.Compile.GeneratePMCFG.
This also means that -new-comp effectively implies -noexpand.

In GF.Compile.CheckGrammar, there is a check that restricted inheritance is used
correctly. However, when -noexpand is used, this check causes unexpected errors,
so it has been converted to generate warnings, for now.

-new-comp no longer enables the new type checker in
GF.Compile.Typeckeck.ConcreteNew.

The GF version number has been bumped to 3.3.10-darcs
2012-11-13 14:09:15 +00:00
hallgren c2b7288411 Eliminate warnings about deprecated use of catch and try
This is also needed for compatibility with GHC 7.6.
2012-11-08 15:53:46 +00:00
hallgren ad74dfe527 GF.Grammar.PatternMatch: relax overly restrictive type signatures 2012-11-07 17:23:08 +00:00
hallgren a912ad813d Some changed/new utility functions
GF.Data.Utilities:  Rename mapFst to apFst, mapSnd to apSnd.
		    Add apBoth, mapFst, mapSnd, mapBoth.
GF.Data.Operations: Remove onSnd (same as apSnd)
2012-11-07 15:31:45 +00:00
hallgren d441b2c629 gf -server: make it possible to pass arbitrary flags/options to gf when compiling grammars
For example, you can add -optimize-pgf:

  http://localhost:41296/cloud?dir=...&command=remake&-optimize-pgf=&Foods2Eng.gf=&Foods2Swe.gf=
2012-11-06 15:29:38 +00:00
hallgren 78120c84b5 TransQuiz: use the grammars from the same server
Unlike the other web apps in the cloud, the translation quiz was configured
to use the grammars at http://www.grammaticalframework.org/grammars.
2012-10-30 14:36:55 +00:00
hallgren 2013ee4e36 GF home page: avoid line breaks in dates in the news section 2012-10-26 14:05:27 +00:00
hallgren 5bfaed7b10 gf.cabal: version of parallel needs to be >=3 2012-10-26 09:25:45 +00:00
hallgren 4f161ee5b3 GF.Grammar.Macros: add function collectPattOp
collectPattOp :: (Patt -> [a]) -> Patt -> [a]
2012-10-25 16:12:21 +00:00
hallgren 71dd493987 GF.Grammar.Macros: add function composPattOp
For Patt, analogous to composOp for Term.
2012-10-24 22:40:18 +00:00
hallgren b841664a63 Compute.ConcreteNew: support variants
Also add a missing check for Predef values in apply.
2012-10-24 17:49:20 +00:00
hallgren eed724271f GeneratePMCFG: prefix messages about "impossible" errors with 'Internal error:'
Just to make them easier to spot when wading through thousands of lines of
warnings...
2012-10-24 17:08:52 +00:00
hallgren 3c24b72147 gf-cloud-api.html: document the new command=remake
Also improve the documentation of the responses to the upload and make
commands.
2012-10-23 21:16:31 +00:00
hallgren 87b280fd4f gf -server: introduce command=remake for recompiling previously uploaded grammars
Also remove some old commented out code.
2012-10-23 20:23:01 +00:00
hallgren c2d02e1fca fracas: code to generate HTML treebank 2012-10-23 12:55:32 +00:00
hallgren 7565ba8b87 cleanup
Simplify the implementation of writeUTF8File and use it in one more place.
Remove unused imports left over after a previous change.
2012-10-23 11:48:23 +00:00
hallgren c70c01745b Add Chinese to the list of installed RGL languages and support it in the web apps
Aarne says the Chinese resource grammar is complete, but not yet completely
correct.
2012-10-22 10:16:10 +00:00
hallgren d0e1187b10 Refactor compileSourceModule
There was 55 lines of rather repetitive code with calls to 6 compiler passes.
They have been replaced with 19 lines that call the 6 compiler passes
plus 26 lines of helper functions.
2012-10-19 20:14:11 +00:00
hallgren 885aaca6de Consistenly use SourceGrammar instead of [SourceModule] when calling compiler passes 2012-10-19 19:56:00 +00:00
hallgren edb700ddf8 Phrasebook: make clean 2012-10-19 14:08:09 +00:00
hallgren 1d6cbf8189 Use NOINLINE for build info and darcs version info
... to avoid unnecessary recompilation of other modules.
2012-10-18 20:01:22 +00:00
hallgren cf44576573 gfse: grammars can now contain one-line descriptions
Also fixed two small problems with public grammars.
2012-10-18 12:48:39 +00:00
hallgren a74e619c3f gfse: small fix 2012-10-16 23:06:37 +00:00
hallgren d63d350cef gfse: identify inherited grammars by their unique id
This helps avoiding problems if an inherited grammar is renamed, or if there
is more than one grammar with the same name.
2012-10-16 22:10:49 +00:00
hallgren eff4d46fba GF.Command.Command: turn CommandOutput into a newtype
The output from commands is represented as ([Expr],String), where the [Expr] is
used when data is piped between commands and the String is used for the final
output. The String can represent the same list of trees as the [Expr] and/or
contain diagnostic information.

Sometimes the data that is piped between commands is not a list of trees, but
e.g. a string or a list of strings. In those cases, functions like fromStrings
and toStrings are used to encode the data as a [Expr].

This patch introduces a newtype for CommandOutput and collects the functions
dealing with command output in one place to make it clearer what is going on.
It also makes it easier to change to a more direct representation of piped
data, and make pipes more "type safe", if desired.
2012-10-16 13:01:03 +00:00
hallgren 5af6af0dd8 demo page: adding a link to the question answering demo from the ICFP 2012 GF tutorial 2012-10-12 15:33:38 +00:00
hallgren ea4ed8b4db gfse: adding a section about public grammars in about.html 2012-10-09 14:54:50 +00:00
hallgren 02e128d493 gfse: show the grammar list if the currently selected grammar can not be loaded
Avoid showing a blank page if there is an unexpected problem with the grammars
in localStorage.
2012-10-09 13:44:34 +00:00
hallgren aaae3aecd4 gf -server: /parse command now supports input with character codes > 255
This enables the use of arbitrary Unicode character in text mode in GFSE.
2012-10-09 13:14:18 +00:00
hallgren 28f87140c7 Factor out code for setting the console encoding
Moved similar low-level code blocks in Main and GFI for setting the console
encoding to the new module GF.System.Console.
2012-10-05 12:54:49 +00:00
hallgren 3d47d7b6f9 simple translator: make it usable on iOS devices
To make the popup menus accessible, use a simple trick to activate the
simulate-hovering-by-tapping behaviour.
2012-10-04 22:29:42 +00:00
hallgren 99b0e42e12 simple translator: bug fix
"Edit/Add a segment..." stopped working at some point.
(Importing text still worked.)
2012-10-04 18:02:31 +00:00
hallgren 5e1da255a3 gfse: various code improvements and prelimiary support for public grammars 2012-10-04 15:21:30 +00:00
hallgren dad8d4a0ea gfse: fix a bug caused by sharing when copying a linearization function in the row view
Functional programming is easier than imperative programming!
2012-10-03 13:54:35 +00:00
hallgren edc51c6a2f gfse: some refactoring 2012-10-03 13:22:50 +00:00
hallgren 432a354b91 gfse: row view: add a button to copy a linearization
When adding a new function, you can enter a linearization for one language
and then copy it to the other languages with one button click.
2012-10-03 12:37:47 +00:00
hallgren a64b4a7c79 gfse and cloud service documentation update 2012-10-02 17:32:52 +00:00
hallgren 59f693e891 index.html: better news formatting 2012-10-02 14:19:33 +00:00
hallgren ba31d0c332 index.html: change to and explicitly declare that the character encoding is UTF-8
...to avoid complaints from HTML validators and potential problems in browsers
with different default character encodings.
2012-10-02 13:57:10 +00:00
hallgren 57a63d2512 gfse: you can now add new functions from the matrix view 2012-10-02 13:50:35 +00:00
hallgren 2925aed17c gfse: more intuitive buttons for switching between the column, matrix & row views 2012-10-02 13:09:56 +00:00
hallgren 5ec3f70224 gfse: adding a "row" view
Accessed by clicking on a function in the Abstract column in the matrix view.
2012-10-01 21:08:09 +00:00
hallgren 00e333dc11 gfse: matrix view improvements
+ You can click on a column header to switch to column view (i.e. the
  corresponding abstract/concrete syntax tab).
+ The categories and functions in the abstract syntax can be edited directly
  in the matrix view.
2012-10-01 16:29:59 +00:00
hallgren 8b1cec5610 gfse: small linearization type display adjustment 2012-09-30 19:53:57 +00:00
hallgren bd00109cc5 gfse: display "??" instead of "null" in linearization types when lincats are missing 2012-09-30 19:47:30 +00:00
hallgren 3c826315d7 gfse: show the types of linearization functions when hovering over their names 2012-09-30 19:33:25 +00:00
hallgren fc09b7e604 PGF service & minibar: put a limit on the number of parse trees
+ In the PGF web service API, the commands parse, translate and translategroup
  now accept a limit parameter. It limits the number of parse trees returned.
  If no limit is given, the behaviour is backwards compatible, i.e. no limit
  is applied.
+ In minibar, the limit is now set to 25 by default.

This change is based on a suggestion by Kaarel Kaljurand.
2012-09-30 15:35:25 +00:00
hallgren 26cb037a78 Make two more page more mobile friendly 2012-09-28 20:55:30 +00:00
hallgren 0dbe9a6d50 Make the GF web site more mobile friendly
Most of the pages on the GF web site have an exemplary simple design,
with just one column of text. This make them adapt exceptionally
well to screens of different sizes. In particular, they should be
easy to read even on smartphones.

However, smartphone browsers like Mobile Safari and the default
Android Browser assume that pages do *not* adapt well to small
screens, so by default they emulate a big screen, forcing the user
to zoom in to a part of the page to be able to read it. By adding
the meta tag

  <meta name = "viewport" content = "width = device-width">

the big screen emulation can be turned off, allowing pages to be
formatted to fit the actual screen size and text to be displayed
at a readable size.
2012-09-28 20:26:13 +00:00
hallgren 253ddde6c3 gfse & cloud improvements
+ Added "Symbolic" to the list of resource modules that can be opened.
+ Clicking on the name of an opened resource module now displays the list
  operations it provides. (Implemented using show_operations in the GF shell.)
+ Added a GF version info link to the cloud service start page.
2012-09-28 14:27:18 +00:00
hallgren 98989e1f20 GF shell, show_operations: nicer looking types for linearization functions
Adding a lock field to the result type of linearization functions.
TODO: figure out how to add a lock field to the argument types too.
2012-09-28 12:38:26 +00:00
hallgren 45094fca23 GF shell, show_operations: also show the types of linearization functions
This is a simple change in GF.Grammar.Lookup.allOpers, which is used only in
the implementation of the show_operations command in the shell.

This is useful when importing a concrete syntax (like LexiconEng) as a resource.
However, the types don't always look as nice as I hoped...
2012-09-27 15:55:20 +00:00
hallgren 3c66e95176 Setup.hs: add Maltese to the list of known RGL languages, but don't compile it by default 2012-09-27 14:28:59 +00:00
hallgren 2b4182409d SIO bug fix
Line breaks were missing when capturing stdout. (putStrLn acted like putStr.)
2012-09-26 18:13:47 +00:00
hallgren a82eae9985 phrasbook/Compile.hs: make it work with ghc>=7.2 2012-09-26 15:37:37 +00:00
hallgren 3bc65ba527 gf -server: add a GF version info request
GF version info can now be obtained from http://localhost:41926/version
Also removed some unused imports.
2012-09-26 15:23:29 +00:00
hallgren da0dcab111 Setup.hs: Persian does not support mkPresent 2012-09-26 15:21:34 +00:00
hallgren 2546a841dd Add Persian to the list of installed RGL langauges 2012-09-26 13:04:18 +00:00
hallgren 7c65cd4073 Use the SIO monad in the GF shell
+ The restrictions on arbitrary IO when GF is running in restricted mode is now
  enforced in the types.
+ This hopefully also solves an intermittent problem when accessing the GF
  shell through the web API provided by gf -server. This was visible in the
  Simple Translation Tool and probably caused by some low-level bug in the
  GHC IO libraries.
2012-09-25 19:08:33 +00:00
hallgren ad536c1369 GF.Infra.SIO.hs: adding the SIO monad (where S = Shell or Safe)
The SIO monad is a restriction of the IO monad with two purposes:

+ Access to arbitrary IO operations can be turned off by setting the environment
  variable GF_RESTRICTED. There is a limited set of IO operations that are
  considered safe and always allowed.

+ It allows output to stdout to be captured. This can be used in gf -server
  mode, where output of GF shell commands is made part of HTTP responses
  returned to clients.
2012-09-25 18:38:13 +00:00
hallgren 31ac2add1f GF.Command.Commands: allCommands is now a constant
The dependency on PGFEnv has been moved from the list to the exec function of
the commands in the list. This means that the help command no longer needs
to generate a new list of commands and that the state of the shell
(type GF.Command.Interpreter.CommandEnv) no longer needs to contain the list
of commands.
2012-09-25 11:42:32 +00:00
hallgren 539856de26 GFServer.hs: code improvements
Use a monad in the request handler to make the code a bit more modular and
readable.
2012-09-22 22:10:10 +00:00
hallgren f79838c299 gf -server: also restrict the paths of uploaded files 2012-09-21 14:53:11 +00:00
hallgren 620207802f gfse: added a new "matrix view" of grammars 2012-09-21 10:45:10 +00:00
hallgren 29e2e8c9a4 simple translator: make it possible to delete documents 2012-09-21 09:07:31 +00:00
hallgren 3d3ee05704 gf -server: improved security checks
+ More restrictive limits on which file paths can be downloaded and removed.
+ Add more extensions to the list of file types that may be removed. In
  particular, allow documents created by simple translation tool to be removed.
2012-09-21 09:00:48 +00:00
hallgren efedb1f7ba simple translator: bug fix
A bug in the line break change prevented text import from working.
2012-09-20 07:49:13 +00:00
hallgren 1a4f828870 simple translator: accept DOS, Mac and Unix line breaks when importing text 2012-09-17 15:58:40 +00:00
hallgren fd298007be minibar-api.html: documentation fixes 2012-09-17 15:52:57 +00:00
hallgren 745a949980 doc/icfp-2012: adding a link to my slides 2012-09-14 21:18:36 +00:00
hallgren 2700a4e604 doc/gf-developers: a few more small fixes 2012-09-11 19:08:50 +00:00
hallgren f4fcaf3e25 doc/gf-developers: fixed a typo 2012-09-11 18:43:40 +00:00
hallgren f55d644e90 simple translator: export GlobalSight Download Files
TODO: consider using a better way to save to a local file
2012-09-11 14:30:09 +00:00