[fpc-pascal] Interactive command recognition & mapping to program functions & other 'cli' features as a unit

Mark Morgan Lloyd markMLl.fpc-pascal at telemetry.co.uk
Fri Jul 31 17:41:08 CEST 2015


Lukasz Sokol wrote:
> On 31/07/15 14:46, Mark Morgan Lloyd wrote:
>> Lukasz Sokol wrote:
>>> Hi,
>>>
>>> I tried piecing something like in $topic together,
>>>
>>> intended as an 'interactive' command interpreter for my program. 
>>> (which will in time grow an 'embedded' web server and intended to
>>> run as a (windows) service, but it's too early for that at the
>>> moment)

Looking at your question another way, I suppose that you also have the 
issue of parsing a command as well as handling the data entry. I think 
that there's various possibilities here depending on what you're trying 
to handle:

* A simple sequence of names/numbers.

* A unix-style command line, with leading options.

* A sequence of email/HTTP headers.

* XML.

* Any of the above but with macro and/or numeric evaluation.

I note in particular that PostgreSQL uses Flex and Bison, and if they'll 
parse (a fairly comprehensively extended) SQL I guess they'll parse 
about anything. Apart from that I've hacked something together for my 
own use based on Smalltalk (as an outer parser) with various evaluation 
possibilities (as an inner parser), this was intended as a way for 
programs to talk to each other and has its good points.

I'm not sure whether getopts from the RTL provides a facility for you to 
feed it an arbitrary string for processing, but it would probably be a 
good place to start.

-- 
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]



More information about the fpc-pascal mailing list