Commit Graph
100 Commits
Author SHA1 Message Date
hallgren 4d86f4d9a9 gf.cabal: bump version to 3.8-darcs 2016-07-05 10:27:00 +00:00
hallgren f051dcc613 Final changes for the GF 3.8 release
News item on the home page
Put the download page and release notes in place.
Add an entry in debian/changelog.
Update the version number in gf.cabal.
2016-06-22 11:13:06 +00:00
hallgren 3bc4bb1228 A couple of more adjustments of the GF 3.8 release notes. 2016-06-22 10:38:51 +00:00
hallgren 102a5f4356 Some adjustments to the GF 3.8 release notes and download page 2016-06-22 08:23:37 +00:00
hallgren c28cac4e66 bin/build-binary-dist.sh: fixes for the Java and Python bindings.
* Just skip the Java binding if there were errors compiling it.

* Install the Python binding in the expected place on Mac OS X when creating
  an OS X installer package. (i.e. under /Library/Python/2.7/site-packages)

Also updated the 3.8 download page and release notes to reflect the above.
2016-06-20 14:11:45 +00:00
hallgren 35e6508fe4 Remove lib/src/ancient_greek.tar.gz 2016-06-20 11:04:31 +00:00
hallgren 2318ebb664 PGFService: fix a type ambiguity when compiling without C run-time support
The function listCaches returns an empty list instead of the contents
of the cached C run-time system PGFs when compiled without C-run-time support
This gave rise to an ambiguity in GF.Server.
2016-06-17 11:32:40 +00:00
hallgren 4c514b2fad Documentation updates
Remove ghc-7.4 from the list of tested/recommended versions of GHC
(because of Hackage dependency problems).
Recommend version 7.10.3 of the Haskell Platform. (GHC 8.0.1 works too,
but I haven't tested the corresponding Haskell Platform packages.)
2016-06-17 10:09:25 +00:00
hallgren 373c95737a A few documentation updates
gf.cabal: include more GHC versions in the Tested-Width field.
2016-06-16 15:09:45 +00:00
hallgren 9b1be2dd2c debian: add txt2tags to Build-Depends and run 'make html' as part of the build
This is to make sure that gf-web-api.html gets included in the .deb package
and is available locally in the GF cloud when running gf -server.
2016-06-16 13:54:15 +00:00
hallgren 1df408b3d6 gf-web-api.t2t: document command=deptree (for word dependency diagrams)
Also add a few paragraphs listing undocumented commands and
briefly describing the commands that use the C run-time system.
2016-06-16 13:34:48 +00:00
hallgren b247e99c7e src/www/gf-web-api.t2t: Web API docs rescued from the Google Code graveyard
This is the GFWebServiceAPI.wiki rescued from the Google Code Archive,
converted to txt2tags format, with an updated introduction.
2016-06-16 12:11:06 +00:00
hallgren 008f69a6ca GF home page: add new RGL languages to the list
Also a couple of fixes in release-next.t2t
2016-06-16 10:09:01 +00:00
hallgren 9ad38726fe gf.cabal: don't build pgf-shell any more, it's been superceded by gf -cshell 2016-06-16 09:57:28 +00:00
hallgren 64bdd44175 GF cloud: more readable formatting of the GF version page
Factor out common CSS from gfse/editor.css into clouds.css.
2016-06-15 10:20:30 +00:00
hallgren 6025c59c55 release-next.t2t: notes about the vd and cc commands 2016-06-15 08:04:10 +00:00
hallgren 223278284b release-next.t2t: a few more notes 2016-06-10 09:14:19 +00:00
hallgren 172f2d12da minibar: define grammar_list in config.js to restrict the grammar menu
minibar.html now reads config.js and if it defines grammar_list, only the
grammars listed there will show up in the grammar menu.
2016-06-09 14:20:24 +00:00
hallgren 674b14a832 PGF service & minibar: only show dependency diagrams if the labels are known
+ The PGF service now reads and caches dependency label configuration files.
+ The grammar info returned by command=grammar has a new boolean field 
  'hasDependencyLabels' to indicate if dependency labels were found for
  the grammar. Also, command=deptree will now fail if no labels are present.
+ The minibar only shows word dependency trees if labels are present.
+ Also changed the type of getDepLabels from [String] -> Labels to
  String -> Labels, since all uses were in the form "getDepLabels . lines".
2016-06-09 13:12:14 +00:00
hallgren e952e10f33 PGFService: eleminate warning "Defined but not used: ‘serverError’" 2016-06-09 11:27:57 +00:00
hallgren 5e33b70d32 Minibar: show word dependecy diagrams
They are now included in the cycle of images shown when clicking on the
parse tree icon.
2016-06-08 19:11:49 +00:00
hallgren 7254d06011 PGF web service: switch to the new SVG rendering of word dependency trees
Also added the function outputText in CGIUtils.
2016-06-08 19:10:23 +00:00
hallgren 6eea348fd9 PGF.VisualizeTree: add white background in the SVG rendering of dependency trees
This makes them look the same as SVG produced by graphviz
2016-06-08 19:08:29 +00:00
hallgren 6071b4b9df PGF.VisualizeTree: add SVG renderering of word dependency trees
This was done by introducing an intermediate representation for the LaTeX
pictures produced by the LaTeX renderer and providing a new backend that
outputs SVG instead of LaTeX.
2016-06-08 17:49:15 +00:00
hallgren eeeae3d23f Minibar: remove spaces for better Thai speech synthesis 2016-06-06 10:46:13 +00:00
hallgren 773b2d8e16 Minibar: detect the language for show speech synthesis buttons in more cases
This was done to obtain speech synthesis for more languages in the Numerals
grammar, which uses neither language flags nor the standard naming for
concrete syntax.
2016-06-05 12:21:56 +00:00
hallgren 9fdcaed802 Enable compilation of Ancient Greek in Setup.hs
Also adjust the -path pragmas in a few places in lib/src/ancient_greek
2016-06-02 13:56:19 +00:00
hallgren 926d8db255 release-next.t2t: adding a few items 2016-06-02 13:06:04 +00:00
hallgren 0c123969bc download/{index,release}-next.t2t added, in preparation for the next release
Feel free to add things to the release notes in download/release-next.t2t.
2016-05-26 16:16:33 +00:00
hallgren d3078600a0 PGFService.hs: fix compilation problem when C run-time support is omitted 2016-05-26 13:56:43 +00:00
hallgren d651cd34d5 PGF web service: add command=deptree
This is the web interface to PGF.graphvizDependencyTree.

Accepted parameters: format=<output_format>, to=<lang>, tree=<tree>.

Accepted output formats: latex, conll, malt_tab, malt_input, png, gif, svg, gv

Also, label information is taken from <path>.labels if present, where
<path>.pgf is the path to the PGF file.
2016-05-26 13:39:48 +00:00
hallgren ccdb79fd23 Add haddock documentation to PGF.graphvizDependencyTree and PGF.getDepLabels
They seemed very difficult to use without the documentation, since their
types are not particularly self documenting.

Also documented what the (Bool,Bool) argument to PGF.graphvizAbstractTree
is for.
2016-05-26 13:12:38 +00:00
hallgren 652aba5a76 Fix documentation typo on PGF.Haskell 2016-05-26 13:11:56 +00:00
hallgren 0635f546f3 Changes for compatibility with GHC 8.0.1 2016-05-22 20:15:31 +00:00
hallgren 7bd7e22e6f Wide Coverage Translation Demo: improvements relating to application grammars
* Automatically update the translations when the set of selected
  application grammars is changed.
* Skip application grammars that do not support the currently selected
  source & target languages.
2016-05-19 09:36:40 +00:00
hallgren 77d8758a46 Wide Coverage Translation Demo: a couple of small fixes
Add missing initalization after a new application grammar has been selected.
Add an "X" close button in the upper left corner of the grammar selection popup.
2016-05-16 14:43:51 +00:00
hallgren ed9715dd92 Wide Coverage Translation Demo: you can now reorder the application grammars
When selecting which application grammars to use for translation, after
pressing the "Grammars..." button, it is now possible to change the order
of the selected grammars by dragging them up and down in the list.
2016-05-16 14:14:55 +00:00
hallgren 717876cb69 gfse/sort.js: enable dragging on touch screens 2016-05-16 12:57:01 +00:00
hallgren 99adb7a3ed Add a few missing languages in js/langcode.js. Use it also in gfse/editor.js.
gfse/editor.js had its own list with 34 languages, while js/langcode.js
only had 30 languages. The missing languages have been added to
js/langcode.js and all apps now use that list.
2016-05-13 13:03:28 +00:00
hallgren 4ddf95b89c Wide Coverage Translation Demo: select application grammars to use from a list
There is now a new button "Grammars..." which show a list where users can
select which application grammars to use for translation, in addition to
the wide coverage grammar. Application grammars can give higher quality
translations in the domain they cover.
TODO: make it possible control the order of the selected application grammars.
2016-05-12 17:53:56 +00:00
hallgren 5421df527f langcode.js: add Afrikaans 2016-05-12 15:28:11 +00:00
hallgren b1d20cfe04 translator.css: factor out div.overlay styles to a separate file overlay.css 2016-05-12 14:21:30 +00:00
hallgren 1c2ab94ec5 Fix a problem building the Java binding when creating binary packages
Pass -I and -L flags to gcc so that the C run-time system can be found.

Also added a line in src/runtime/java/Makefile to install jpgf.jar.
2016-04-25 14:21:04 +00:00
hallgren 8905fb19db debian/control: dependency change from libtool to libtool-bin
It seems that nowadays the libtool executable is not included in the package
named libtool, instead it is in the libtool-bin package.
2016-04-13 14:39:33 +00:00
hallgren 1ca5e51707 Minibar: don't show dependency information in parse trees.
This was fixed by adding "&nodep=true" in the minibar when it requests a
parse tree from the server. The reason dependency information got included
in the first place was that all rendering options are on by default in
command=parsetree requests in PGF service API.
2016-04-13 13:18:18 +00:00
hallgren 7b6cf8e854 Changes to include the Java binding in binary distribution packages
This means that you now need to have a Java SDK installed to build
a Debian package.

The bin/build-binary-dist.sh (which builds bintar packages and OS X installer
packages) now skips the Python binding if python is not installed. Likewise
it skips the Java binding if a Java SDK is not installed.
2016-04-12 15:01:11 +00:00
hallgren ee78d566e2 debian/rules: workaround for a problem on Ubuntu 15.10 and 16.04
dh_shlibdeps has a problem finding which package some of the Haskell
libraries come from, even though dpkg-query -S has no problem finding them.
But the gf executable is statically linked against the Haskell libraries, so
it will work even if these shared libraries aren't installed. But there will
be a problem if other shared libraries are missing (.e.g. libtinfo, libgmp),
so we need a better solution than simply ignoring all dependency problems...

See also http://stackoverflow.com/questions/11238134/dpkg-shlibdeps-error-no-dependency-information-found-for
2016-04-12 13:25:17 +00:00
hallgren ca97f6d217 GF.Command.Commands2: adapt gf -cshell to the changes in the previous patch 2016-04-07 14:55:13 +00:00
hallgren 58cd043fa8 GF shell: fix a parsing problem with the cc command
This patch fixes a problem introduced last year when the GF shell was
refactored to allow more commands to be treated uniformly and be part
of pipes. The cc command was one of those commands, but unfortunately this
introduced a parsing problem, e.g.

	> cc "last"
	constant not found: last

	> cc "last"++"year"
	command not parsed: cc "last"++"year"

This happened because the generic command line parser in
GF.Command.{Abstract,Parse} assumes that all commands have an argument of
type PGF.Expr. Commands that expect other types of arguments have to
use PGF.showExpr combined with other conversion to the argument type they
expect. The cc command excpets a GF.Grammar.Term, and unfortunately not 
all terms survice the roundtrip through PGF.Expr, in part because of
an additional hack to allow strings to be roundtripped through PGF.Expr
without adding superfluous double quotes.

To solve the problem, this patch

 + makes room for arguments of type Term in the Argument type in
   GF.Command.Abstract.
   
 + makes a special case for the cc command in GF.Command.Parse, by
   calling the partial parser 'runPartial pTerm' recently added in
   GF.Grammar.Lexer and GF.Grammar.Parser. Care was taken so that
   that "|" and ";" can be used both inside terms and as separators between
   commands in the shell, e.g. things like the following now work:

       > cc ("a"|"b") | ps -lexcode
       variants { "a" ; "b" }

 + introduces a type CommandArgument that replaces [Expr] as the
   type of values passed between commands in pipes. It has room for
   values of type [Expr], [String] and Term, thus eliminating the need
   to roundtrip through the Expr type all the time.
   The hack to avoid adding superfluous quotes when strings are
   roundtripped through Expr has been left in place for now,
   but can probably be removed.
2016-04-07 13:40:05 +00:00
hallgren 6d5ecf7c3f Lexer.x & Parser.y: add a partial parser for terms
Lexer.x: Change the parser monad type P to allow the remaining input to
	 be returned after a partial parse. Add function

           runPartial :: P t -> String -> Either (Posn, String) (String, t)

Parser.y: Add a partial parser pTerm for nonterminal Exp1.
          Re-export runPartial.
2016-04-07 13:32:14 +00:00
hallgren c4ea470eb1 Lexer.x: fix cyclic Functor instance
It looks like I introduced this cyclic definition in August 2014, but since
it isn't used, it hasn't been a problem...
2016-04-06 13:46:48 +00:00
hallgren bd8c96efb3 src/tools: update GFDoc.hs and Htmls.hs for compatibility with current libraries and add gf-tools.cabal to compile them 2016-04-05 13:29:56 +00:00
hallgren 4b103f248e GFSE: add Latvian to the list of RGL languages 2016-04-03 17:29:10 +00:00
hallgren 9f7593734a src/runtime/c/INSTALL: add automake to the list of needed packages on Linux
The automake package contains aclocal, which is needed when running
autoreconf -i.

I never needed to install automake explicitly on Linux, presumably because it
got installed anyway because of some other dependency, but apparently you
can't take this for granted.
2016-03-30 11:43:16 +00:00
hallgren d86c0848e6 gf.cabal: Remove GF.Compile.Compute.ConcreteNew1 2016-03-02 16:29:13 +00:00
hallgren 25bb254fd1 demos/index.html: a couple of fixes 2016-02-08 16:41:50 +00:00
hallgren a0f6cd1f74 GFSE: add Afrikaans to the list of available RGL languages. 2016-01-19 13:59:17 +00:00
hallgren f060ea7ea0 feedback.cgi: exclude empty submission when showing the feedback list 2015-12-11 13:08:46 +00:00
hallgren d0fc643951 Wide Coveage Translation Demo: sort parse results by probability
Because of the "heurisitc factor", the results returned by the parser might
not be in strict probability order. To compensate, a sorting pass has been
added to find and show the translation with the highest probability among the
10 first translations.

However, this means that the translation demo now immediately has to ask for
10 translations of every segment. Before, it initially asked for only one
translation of every segment, and then 9 more translations for a segment
when/if the user clicked on it. This change can slow down translation
noticeably (e.g. from 15s 30s to load an example with fiction in English).
2015-12-10 14:27:15 +00:00
hallgren b7e2ea30f5 Simple Translation Tool: bug fix
"File/Open In Wide Coverage Translation Demo" stopped working when support
for using different grammars in the Wide Coverage Translation Demo was added
On September 2.
2015-12-10 14:23:19 +00:00
hallgren a6c2ef97ff GF shell, cc command: try to compute pre{...} tokens in token sequences
This is implemented as a simple post-processing step after partial evaluation
to try compute pre{...} tokens in token sequences. Nothing is done to deal
with intervening free variants.

This was done in response to a query from René T on the gf-dev mailing list.
2015-12-02 16:41:18 +00:00
hallgren d5d4f11684 GF.Data.Str: change matchPrefix to agree with the GF book and the run-time system
The matchPrefix function is used in str2strings and the partial evaluator to
compute pre{...} tokens. But unlike the description in the GF book and
the implementation in the run-time system, matchPrefix looked at
the concatenation(!) of all following tokens and not just the next token
when deciding how to compute a pre{...} token.

This is a backwards incompatible change, but it is subtle and probably won't
cause any problems. In particular, the example grammars are unaffected.
2015-12-01 15:14:27 +00:00
hallgren 6d51e7f790 GF.Data.Str: unexport & comment out unused functions 2015-12-01 14:32:24 +00:00
hallgren d0b60f5458 Wide coverage translation demo: updated to use App15.pgf 2015-11-27 09:56:49 +00:00
hallgren 2ace6089e3 Fix bug in gf -server mode with /gfshell requests not updating the state of the shell
The test for the quit command had the wrong polarity.
The problem was reported by Fahime Ghasemi on gf-dev mailing list.
2015-10-28 15:03:19 +00:00
hallgren ea540c118c gf.cabal: require base>=4.5 (ghc>=7.4)
There are some low-level dependencies in GF.Text.Coding that break
compatibility with older versions of GHC and some other known problems.
2015-10-07 14:57:01 +00:00
hallgren ec31efccc6 Update PGF API documentation link on home page, bump version number in gf.cabal to 3.7.1-darcs 2015-10-05 12:38:23 +00:00
hallgren 5469706080 Setup.hs: fix off-by-one error the change count in the version info
The difference between "One change" and "No changes" is very noticeable.
2015-10-02 11:46:29 +00:00
hallgren 74d8e9c6cf Bump version number to 3.7.1 and finalize documentation
Updated version number in gf.cabal and update debian/changelog
News item on home page (index.html)
Some last minute edits on the download page
Move the new release notes and download page in place.
2015-10-02 10:15:02 +00:00
hallgren 1e88cf380a GF.Interactive2: extension FlexibleContexts is needed for GHC 7.10 compatibility 2015-10-02 09:59:55 +00:00
hallgren a6d95d6272 Minor edit of GF 3.7.1 release notes 2015-10-02 09:34:20 +00:00
hallgren 33e4f4eefc Some work on the release notes and download page for GF 3.7.1. 2015-10-01 12:57:31 +00:00
hallgren 0a7e8e7b5d bin/build-binary-dist.sh: fix hardcoded /usr install path for .pkg packages. 2015-10-01 12:49:55 +00:00
hallgren d0d1bc6be4 Makefile: make pkg: change install location from /usr to /usr/local
...for compatibility with OS X 10.11 El Capitan (which was released yesterday)
2015-10-01 08:39:35 +00:00
hallgren f122e2d351 cc -trace: don't try to show the bodies of lambda abstractions
This triggers evaluation of terms with free variables, which the partial
evaluator isn't equipped to handle.

Reported by Aarne.
2015-09-30 10:30:19 +00:00
hallgren 050c63f31e download/release-next.t2t: preliminary release notes for GF 3.7.1
To be released as soon as possible...
2015-09-29 20:15:51 +00:00
hallgren 11c08b9167 GF source lexer: allow numeric character escapes in string literals
This makes the output from PGF.showExpr (and other Haskell code that uses
the Prelude.show function to show strings) parsable as GF source code in
more cases.

This is a workaround for the problem that GHC's implementation of the show
function uses numeric escapes for printable non-ASCII characters, e.g.
show "dålig" = "d\229lig"...
2015-09-29 12:18:35 +00:00
hallgren af70a134f5 Preliminary new shell feature: cc -trace.
You can now do things like 

	cc -trace mkV "debug"

to see a trace of all opers with their arguments and results during the
computation of mkV "debug".
2015-09-28 22:23:56 +00:00
hallgren cf959444a2 haskell-bind/SG.hsc: fix unsafePerformIO import problem with ghc>=7.8 2015-09-14 11:42:42 +00:00
hallgren b717031cbf doc/gf-developers.t2t: script name for installing the C run-time was wrong, should be setup.sh 2015-09-14 11:19:29 +00:00
hallgren a3dcc2ff0e doc/gf-developers.t2t: some updates 2015-09-14 09:24:10 +00:00
hallgren 03d1066a1c WebSetup.hs: always enable parallel compilation of the RGL and the example grammars
This should work nicely now that GF itself can detect the number of processors
in the system.

Previously there was some code in WebSetup.hs that relied on Cabal to do this,
but it was commented out because it requires Cabal>=1.20, which is fairly new
and it would complicate the installation instructions if it was required to
compile GF...
2015-09-11 15:15:53 +00:00
hallgren 6aa4a7b737 Remove debug output introduced in previous patch
Oops.
2015-09-11 14:46:31 +00:00
hallgren 264fd05444 Parallel compilation: "gf -make -j" and "gf -make -j=n" now work as expected
* "gf -make -j=n" uses n parallel threads.
  * "gf -make -j" adapts to the number of processors in the system.

This mimics how "cabal build -j" and "ghc --make -j" works.

Support for this is implemented in the new module GF.System.Concurrency and
it depends on the function Control.Concurrent.setNumCapabilities, which is
only available in GHC>=7.6 (base>=4.6). GF can still be compiled with
GHC<7.6, but then you have to use +RTS -N -RTS to take advantage of
multicore processors.

To detect the number of processors in the system, the code depends on a
foreign import of a C function in the GHC run-time system.
2015-09-11 14:18:01 +00:00
hallgren a976a49cef PGF2.Expr: a fix for ghc-7.6
Apparently Foreign.unsafePerformIO is not just a re-export of
System.IO.Unsafe.unsafePerformIO (or vise versa), it is a different function,
so you get an ambiguity if you import both.
2015-09-10 15:07:48 +00:00
hallgren 6b285d215c example/foods/FoodsIce.gf: converted from Latin-1 to UTF-8 encoding 2015-09-10 12:37:12 +00:00
hallgren 81a99fc8ed GF shell: write_file now writes one tree per line
This compensates for other changes that removed line breaks.
Maybe it should have a -lines options like ps and rf?
2015-09-03 20:42:38 +00:00
hallgren dab749a956 PGF2.Expr fixes
It needs to be listed in gf.cabal
unsafePerformIO is only exported from System.IO.Unsafe, starting with ghc-7.8
2015-09-03 20:41:00 +00:00
hallgren cc1ec66e2e Wide coverage translation demo: make it easier to use with different grammars 2015-09-02 14:44:30 +00:00
hallgren e76fb3d9a1 GF.Infra.SIO: The SIO monad now supports putStr in addition to putStrLn
Also included some unrelated minor changes.
2015-08-31 12:22:13 +00:00
hallgren f62edb3e1e Comment out some dead code found with -fwarn-unused-binds
Also fixed some warnings and tightened some imports
2015-08-28 13:59:43 +00:00
hallgren 38ce5826a8 GF shell: change parse & linearize to obtain useful results from p|l and l|p in more cases
These changes are inspired by the gf -cshell implementation of these commands.

The output of the linearize command has been changed to remove superfluous
blank lines and commas, and deliver the result as a list of strings instead of
a single multi-line string. This makes it possible to use -all and pipe the
results to the parse command. This also means that with -treebank -all,
the language tag will be repeated for each result from the same language.

The parse command, when trying to parse with more than one language, would
"forget" other results after a failed parse, and thus not send all
successful parses through the pipe. For example, if English is not the first
language in the grammar,

    p "hello" | l

would output nothing, instead of translations of "hello" to all languages,
forcing the user to write

   p -lang=Eng "hello" | l

instead, to get the expected result. The cause of this behaviour was in the
function fromParse, which was rather messy, so I assume it is not intentional,
but the result of a programming mistake at some point.

The fromParse function has now been refactored from a big recursive function
into 

    fromParse opts = foldr (joinPiped . fromParse1 opts) void

where the helper functions fromParse1 deals with a single parse result and
joinPiped combines multiple parse results.
2015-08-26 13:56:23 +00:00
hallgren 72459b5158 lib/src/*/Numeral*.gf: fix inconsistent inheritance form Cat
While the abstract Numeral inherits only Cat[Numeral,Digits], some of the
concrete NumeralNNN of Numeral inherited everything from CatNNN.

Normally the compiler outputs a warning message when a concrete syntax 
contains superflous lincats, but apparently not when they get included
through inheritance...

This does not seem to cause problems in the Haskell run-time system, but the 
C run-time system fails to load PGFs with superflous lincats.

This problems shows up when creating application grammars that inherit Numeral.
The Phrasebook is an example of such a grammar.
2015-08-26 11:53:16 +00:00
hallgren 09f3937da1 GF shell bug fix: visualize_parse didn't accept the -lang flag
Even though the -lang flag was handled in the implementation, it was not
documented, and GF.Command.Interpreter rejects undocumented flags:

	option not interpreted: lang

This must be a fairly old bug, so it suggests that the vp command isn't used
much...
2015-08-21 12:20:40 +00:00
hallgren 672d83f41f GF -cshell: implement visualize_parse
Supported options and flags: -lang -format -view
None of the rendering options available in the Haskell run-time are supported.
2015-08-21 12:14:47 +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
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