Open petermr opened 8 years ago
The syntax of EmmaParser will be:
emma [global args] [command]*
where command
is:
-c commandName [args]
and args
can be
[globalArg | commandArg]*
It's trivial to write a BNF and also trivial to write the syntactic part of a parser.
an arg
consists of:
[--|-]argName argValue*
So a simple but complete emma
command is:
emma -p myProject -c species -t binomial -c dictionary -t disease -c word -t frequencies --stopword myStop -c summary -t datatables
This is brief enough to type at the CL, but can also be generated by RSU's new code or run by canary
Many of the commands will have defaults managed by args.xml
(which is essentially a configuration file) and will become even more important . It can define symbols for the parser, constraints, and defaults.
I hope to show this working by the end of today (Saturday).
Positively the last change in command syntax. This is clean, workable by humans and machines, configurable, flexible, robust.
It will mean that for the "plugin" Foo
, FooArgProcessor
will be split into FooEmmaParser
and FooEmmaCommand
. The commands are actually declarative models and "command" may be the wrong name. The actions are inititiated by Emma
running over the models.
I am creating a new module which is a (currently simple) workflow for running norma and AMI jobs.
Because its function is running, the animal is an Emu (which can run 50 kph) and she's called Emma.
Emma will clean up the recent CmineParser and CMineCommand into separate modules. Currently: