summaryrefslogtreecommitdiff
path: root/src/compiler/GF/Command
AgeCommit message (Collapse)Author
2013-11-12Fix Issue 60: Weird output when executing system commands from the gf shellhallgren
The system_pipe (aka "?") command creates a temporary file _tmpi containing the input of the system command. It *both* appends _tmpi as an extra argument to the system command line *and* adds an input redirection "< _tmpi". (It also uses and output redirection "> _tmpo" to captures the output of the command.) With this patch, the _tmpi argument is no longer appended to the command line. This allows system_pipe to work with pure filters, such as the "tr" commands, but it will no longer work with commands that require an input file name. (It is possible to use write_file instead...) TODO: it would also be fairly easy to eliminate the creation of the _tmpi and _tmpo files altogether.
2013-11-11Fix issue 61: GF shell cannot parse a system command ending with a spacehallgren
Trailing spaces caused the command line parse to be ambiguous, and ambiguous parses were rejected by function readCommandLine, causing the cryptic error message "command not parsed".
2013-11-06Make PGF.Tree internalhallgren
The only use of PGF.Tree outside the PGF library was in GF.Command.Commands, and it was eliminated by using PGF.Expr directly instead. PGF.Paraphrase still uses PGF.Tree.
2013-11-06the content of ParseEngAbs3.probs is now merged with ParseEngAbs.probs. The ↵kr.angelov
later is now retrained. Once the grammar is compiled with the .probs file now it doesn't need anything more to do robust parsing. The robustness itself is controlled by the flags 'heuristic_search_factor', 'meta_prob' and 'meta_token_prob' in ParseEngAbs.gf
2013-11-05added a -treebank option to the lc commandaarne
2013-11-05linearization by chunks in the GF shell: a new command 'lc' needed because ↵aarne
'l' requires type checking and trees with metavariable function heads don't type check. This will hopefully be a temporary command.
2013-11-05Eliminate mutual dependencies between the GF compiler and the PGF libraryhallgren
+ References to modules under src/compiler have been eliminated from the PGF library (under src/runtime/haskell). Only two functions had to be moved (from GF.Data.Utilities to PGF.Utilities) to make this possible, other apparent dependencies turned out to be vacuous. + In gf.cabal, the GF executable no longer directly depends on the PGF library source directory, but only on the exposed library modules. This means that there is less duplication in gf.cabal and that the 30 modules in the PGF library will no longer be compiled twice while building GF. To make this possible, additional PGF library modules have been exposed, even though they should probably be considered for internal use only. They could be collected in a PGF.Internal module, or marked as "unstable", to make this explicit. + Also, by using the -fwarn-unused-imports flag, ~220 redundant imports were found and removed, reducing the total number of imports by ~15%.
2013-10-30linref is now used by the linearizer. The visible change is that the 'l' ↵kr.angelov
command in the shell now can linearize discontinuous phrases
2013-10-24Functions merge trees into tries in the GF Shell and the PGF web servicehallgren
* In the shell, the new command tt (to_trie) merges a list of trees into a trie and prints it in a readable way, where unique subtrees are marked with a "*" and alternative subtrees are marked with numbers. * In the PGF web service, adding the parameter trie=yes to the parse and translate commands augments the JSON output with a trie. Example to try in the shell: Phrasebook> p -lang=Eng "your son waits for you" | tt
2013-10-24Commands.hs: fix a copy-paste error in the documentation of put_treehallgren
2013-09-19Introduce type RawIdent; only 9 imports of Data.ByteString.Char8 remainhallgren
The fact that identifiers are represented as ByteStrings is now an internal implentation detail in module GF.Infra.Ident. Conversion between ByteString and identifiers is only needed in the lexer and the Binary instances.
2013-04-19the option -old for the vp command is now redundantkr.angelov
2013-04-19remove the dead code left behind by Peter Ljunglöf in VisualizeTreekr.angelov
2013-04-19fix the command options for the vd command in the shellkr.angelov
2013-04-08PGF.hs: export function missingLinshallgren
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-03-29option pt -funs to show all fun's in a treeaarne
2013-03-13pt -nub to remove duplicate trees from a list returned e.g. by a parseraarne
2013-03-12command pt -subtrees that analyses a tree into the set of subtrees. Using pt ↵aarne
-subtrees <bigtree> | l -treebank for debugging the lin of a big tree
2013-02-03pg -lexc now writes a list of multichar symbols and a title ("Root") for the ↵aarne
lexicon, as required by Xerox lexc
2012-11-22better visualization of parse treespeter.ljunglof
2012-10-16GF.Command.Command: turn CommandOutput into a newtypehallgren
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-09-25Use the SIO monad in the GF shellhallgren
+ 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-25GF.Command.Commands: allCommands is now a constanthallgren
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-08-29A basic infrastructure for generating Teyjus bytecode from the GF abstract ↵kr.angelov
syntax
2012-06-10command option ma -known to drop unknown wordsaarne
2012-03-26Workaround for bug in ghc-7.2.2hallgren
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.)
2011-11-02Now the compiler maintains more precise information for the source locations ↵kr.angelov
of the different definitions. There is a --tags option which generates a list of all identifiers with their source locations.
2011-11-01Fixed a typo in the shell online helpNick Frolov
2011-09-25structured examples in help into pairs (command,explanation)aarne
2011-09-22the sd -size command now shows the size of all code needed for defining an operaarne
2011-09-22documented the ss commandaarne
2011-09-21commands ss to show source, and sd to show the dependencies of a constantaarne
2011-09-15Add a command name header to the 'help -t2t' outputhallgren
2011-09-14Omit empty sections in gf help outputhallgren
2011-09-14GF shell command 'help -t2t' outputs help in txt2tags formathallgren
2011-08-28import command now gives priority to new abstract syntax, and discards the ↵aarne
old concretes if they are for the old abstract; the new priority is implemented in PGF.Data.unionPGF
2011-08-25reload command in shellaarne
2011-05-02transliteration via configuration file: ps -to=file or ps -from=fileaarne
2011-04-08GF shell restricted mode: found one more writeFile that should be restrictedhallgren
2011-02-10Adding a basic lexicon-based tokenizer and the asociated command in gf shellgdetrez
2011-03-12generalized pt -transfer so that it goes into subtrees (naive implementation ↵aarne
in TreeOperations; using PGF.Expr.match would be better); example given in 'h pt'
2011-03-04switched the upper and lower parts of lexc entries to their standard orderaarne
2011-03-03GF shell restricted modehallgren
By setting the environment variable GF_RESTRICTED before starting GF, the shell will be run in restricted mode. This will prevent the GF shell from starting arbitrary system commands (most uses of System.Cmd.system are blocked) and writing arbitrary files (most commands that use writeFile et al are blocked). Restricted mode is intended minimize the potential security risks involved in allowing public access to the GF shell over the internet. It should be used in conjuction with system level protection mechanisms (e.g. file permissions) to make sure that a publicly acessible GF shell does not give access to parts of the system that should not be publicly accessible.
2011-03-03print lexicon in Xerox LEXC format: pg -lexcaarne
2011-03-01corrected help for l commandaarne
2011-02-28the command show_operations to inspect opers in scopeaarne
2011-02-25command ga moved to option 'aw -giza'aarne
2011-02-06a simple clitic analysis command 'ca'aarne
2010-12-21more clear LICENSE file for GFkrasimir
2010-12-14updated documentation of pg -printer formatsaarne