Commit Graph

4061 Commits

Author SHA1 Message Date
krasimir
51640c4478 add a type signature in GF.Interactive2 to make ghc-7.6.3 happy 2015-08-21 11:58:32 +00:00
hallgren
bf0d75002a gf -cshell: implement visualize_tree
But the following options are not supported: -mk -nocats -nofuns
2015-08-21 10:14:46 +00:00
hallgren
9efa45b80b gf -cshell: implement a subset of print_grammar and abstract_info
pg supports only the -funs, -cats and -langs output modes.

ai IDENTIFIER shows info about a category or a function. ai can not type check
and refine metavariables in expressions.
2015-08-20 16:06:10 +00:00
hallgren
d2217c0715 PGF2: export BindType(..) and two new functions: showType & categories
showType :: Type -> String
categories :: PGF -> [Cat]

But both are implemented as quick hacks: categories is implemented by listing
all functions and taking the target categories from their types. showType uses
ppType copied & modified from PGF.Type, and needs a ppExpr, which is currently
implemented by wrapping showExpr...

TODO: need something correpsonding to PGF.categoryContext.
2015-08-20 15:55:24 +00:00
krasimir
c7c47fbded add the initial sketches of the semantic graph storage 2015-08-20 13:31:43 +00:00
hallgren
5f3417ec5e gf -cshell: linearize: implement options -all -list -treebank
Options -all and -list use PGF2.linearizeAll, which lists all variants, but
not all forms...
Also, there is no attempt to be compatible with the output from the Haskell
run-rime shell, which produces superfluous blank lines (-all) or
commas (-list), and mixes tagged and untagged lines (-treebank -all).
2015-08-18 16:05:45 +00:00
hallgren
d1cf9d734e GF shell: restore the eh command to working order and document it
Also, when the command line parser fails, append the problematic command line
to the error message "command not parsed".
2015-08-18 13:13:31 +00:00
hallgren
d039147261 GF shell: add the start options to GFEnv, turn "reload" into an ordinary command 2015-08-17 15:56:39 +00:00
hallgren
a3db215f5b GF Shell: "ph | wf -file=foo.gfs" now works as advertised
The print_history command was among the commands implemented in an ad-hoc
way instead of being handled by the command line interpreter, which means
it could not be used in a pipe, as in the example in the help info.
The refactoring in the previous patch made this old bug easy to fix.

Also fixed a bug in the "empty" command, introduced when moving the PGF from
CommandEnv to GFEnv.

TODO: fix the undocumented eh command. A comment in the help info for
print_history, and some commented out old code, suggest that eh means
"execute_history", but at present it does nothing...
2015-08-13 15:30:23 +00:00
hallgren
5339c1e6b5 GF Shell: refactoring for improved modularity and reusability:
+ Generalize the CommandInfo type by parameterizing it on the monad
  instead of just the environment.
+ Generalize the commands defined in
  GF.Command.{Commands,Commands2,CommonCommands,SourceCommands,HelpCommand}
  to work in any monad that supports the needed operations.
+ Liberate GF.Command.Interpreter from the IO monad.
  Also, move the current PGF from CommandEnv to GFEnv in
  GF.Interactive, making the command interpreter even more generic.
+ Use a state monad to maintain the state of the interpreter in
  GF.{Interactive,Interactive2}.
2015-08-13 10:49:50 +00:00
hallgren
5c6adb1927 GF Shell: turn set_encoding into a common command
Implemented in GF.Command.CommonCommands instead of GF.Interactive &
GF.Interactive2.
2015-08-12 15:00:03 +00:00
hallgren
2f3b6779c6 GF.Interactive2: cleanup 2015-08-12 12:33:36 +00:00
krasimir
8e6ae8fb86 Bugfix in the android app for Chinese which was causing the first character in the translation to disappear 2015-08-12 18:44:45 +00:00
hallgren
721f653e99 GF shell: source commands (cc, sd, so, ss & dg) can now be used in pipes
These commands are now implemented as regular commands (i.e. using the
CommandInfo data type) in the new module GF.Command.SourceCommands.

The list of commands exported from GF.Command.Commmands now called pgfCommands
instead of allCommands.

The list allCommands of all commands is now assembled
from sourceCommands, pgfCommands, commonCommands and helpCommand in
GF.Interactive.
2015-08-12 11:05:08 +00:00
hallgren
ba9c057650 Move welcome message from GF.Interactive & GF.Interactive2 to GF.Command.Messages
...to avoid the duplication.
2015-08-12 11:01:45 +00:00
hallgren
07fd298700 GF shell: make environment types abstract, comment out some dead code 2015-08-11 16:14:38 +00:00
krasimir
db07275527 pickling/unpickling for types 2015-08-12 10:11:00 +00:00
krasimir
d21b9e52d8 support for transparent pickling/unpickling of abstract expressions in Python 2015-08-12 09:21:23 +00:00
hallgren
624de05fe3 gf -cshell: improved help for the 'import' command 2015-08-10 16:39:31 +00:00
hallgren
f371a020f9 Factor out common code from GF.Command.Commands and GF.Command.Commands2
Created module GF.Command.CommonCommands with ~250 lines of code for commands
that do not depend on the type of PGF in the environemnt, either because they
don't use the PGF or because they are just documented here and implemented
elsewhere.

TODO: further refactoring so that documentation and implementation of
*all* commands can be kept together.
2015-08-10 16:30:17 +00:00
hallgren
230d9780b7 gf -cshell: preliminary support for the C run-time system in the GF shell
Some C run-time functionality is now available in the GF shell, by starting
GF with 'gf -cshell' or 'gf -crun'. Only limited functionality is available
when running the shell in these modes:

- You can only import .pgf files, not source files.
- The -retain flag can not be used and the commands that require it to work
  are not available.
- Only 18 of the 40 commands available in the usual shell have been
  implemented. The 'linearize' and 'parse' commands are the only ones
  that call the C run-time system, and they support only a limited set of
  options and flags. Use the 'help' commmands for details.
- A new command 'generate_all', that calls PGF2.generateAll, has been added.
  Unfortuntaly, using it causes 'segmentation fault'.

This is implemented by adding two new modules: GF.Command.Commands2 and
GF.Interactive2. They are copied and modified versions of GF.Command.Commands
and GF.Interactive, respectively. Code for unimplemented commands and other
code that has not been adapted to the C run-time system has been left in
place, but commented out, pending further work.
2015-08-10 14:12:51 +00:00
hallgren
97c6ffd462 Refactor GF shell modules to improve modularity and reusability
+ Move type CommandInfo from GF.Command.Commands to a new module
  GF.Commands.CommandInfo and make it independent of the PGF type.
+ Make the module GF.Command.Interpreter independent of the PGF type and
  eliminate the import of GF.Command.Commands.
+ Move the implementation of the "help" command to its own module
  GF.Command.Help
2015-08-10 13:01:02 +00:00
krasimir
c0ecbc26a4 bump the version number for the Android app 2015-08-10 08:34:29 +00:00
krasimir
4fc67beb42 now the app shows the correct abstract syntax names for unknown words while it still produces the right TTS 2015-08-06 14:19:13 +00:00
krasimir
89e4df680e another fix in the Thai keyboard 2015-08-06 14:18:49 +00:00
krasimir
0fc59b8e50 disable the visualization of glosses in the App until we have a complete database 2015-08-06 13:02:27 +00:00
krasimir
365ddfb5a5 set the optimization levels for the JNI code to release level 2015-08-06 13:01:07 +00:00
krasimir
e9a8e083a0 bugfix for the word prediction in the App 2015-08-06 12:51:42 +00:00
krasimir
13ca43806c a better layout for the Thai keyboard 2015-08-06 12:23:27 +00:00
krasimir
a982a4d15f bugfix in lookup_morpho in the C runtime 2015-08-06 11:51:23 +00:00
hallgren
2fe31eca17 PGF web service: option to leave &+ uninterpreted in linearized output
By adding unlexer=none (or unlexer=id) in requests that output linearizations
(e.g. command=linearize, command=translate), you can leave &+ uninterpreted
instead of gluing the adjacent tokens. This means that the output is left in
a format that can be parsed in a subsequent request.

To implement this consistently, the function linearizeAndBind was replaced
with the function linearizedAndUnlex (but there are a couple of requests
that do not call this function...)

Note that this applies to the Haskell run-time requests only. The C run-time
request (c-linearize, c-translate) always applies the &+ token and the
c-parse request can parse input containing glued tokens.
2015-07-21 14:21:49 +00:00
krasimir
a976d7e44b make the virtual machine instructions more uniform 2015-07-16 15:43:18 +00:00
krasimir
806a33ef98 refine the GNU lightning patch to avoid generating unnecessary code 2015-07-16 15:29:14 +00:00
krasimir
2b52a1a2ea bugfixes in the JIT compiler for x86_64. One of the fixes is actually in GNU lightning 2015-07-16 15:21:09 +00:00
aarne
eb8714fd77 added a space after the tag in word alignment to work around a graphviz bug shown with Chinese characters 2015-07-16 08:36:14 +00:00
hallgren
c14ca1eba4 Wide Coverage Demo: avoid errors if d3 or d3Tree can't be loaded 2015-07-15 14:07:26 +00:00
krasimir
8b3d6059c6 fixed missing do in the Haskell binding 2015-07-12 15:37:45 +00:00
krasimir
99a0b5a1d8 the reasoner's states are now closures just like the code for the def rules. This means more compact JIT compiled code and uniformity with the code for def rules 2015-07-04 15:06:34 +00:00
krasimir
85e6e017af merge the states for reasoning and evaluation into a single structure 2015-07-03 11:53:52 +00:00
krasimir
2c9c72c88d forgot to add the DBManager 2015-07-01 09:51:01 +00:00
krasimir
f716974e89 the Android app now can show Glosses from WordNet 2015-07-01 09:44:56 +00:00
krasimir
950155e24d specify strict APP_PLATFORM to avoid crashes on devices with older android version 2015-06-30 22:14:12 +00:00
krasimir
02fd379649 add function 'functions' in the Haskell binding to the C runtime 2015-06-30 20:42:19 +00:00
krasimir
2c6017ab59 some more comments in the help page 2015-06-30 17:01:56 +00:00
krasimir
f622a6250f bugfix in the Android keyboard 2015-06-30 16:51:22 +00:00
krasimir
27b4fa7453 better layout for the Thai keyboard 2015-06-30 15:54:14 +00:00
krasimir
10e48563e2 increase the version number for the app 2015-06-30 13:53:57 +00:00
krasimir
3419cf9337 added ant.properties in the App folder to make it easier to prepare releases 2015-06-30 13:53:09 +00:00
krasimir
974e152ac3 bugfix in the parser for lexical lookup 2015-06-30 12:54:19 +00:00
hallgren
4e9e7c2bdd Documentation updates for the release of GF 3.7 2015-06-25 12:10:47 +00:00