Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.arch.embedded > #18922

Re: Parsers for extensible grammars?

From Don Y <this@is.not.me.com>
Newsgroups comp.arch.embedded
Subject Re: Parsers for extensible grammars?
Date 2014-10-23 12:15 -0700
Organization Aioe.org NNTP Server
Message-ID <m2bk4s$v2i$1@speranza.aioe.org> (permalink)
References <m28vlb$lum$1@speranza.aioe.org> <TZ6dnVdPYcdMktXJnZ2dnUVZ5r-dnZ2d@giganews.com> <m2a55m$6po$1@speranza.aioe.org> <sPydnUuaKdBH0dTJnZ2dnUU7-VmdnZ2d@giganews.com>

Show all headers | View raw


On 10/23/2014 11:45 AM, Tim Wescott wrote:
> On Wed, 22 Oct 2014 22:54:13 -0700, Don Y wrote:

>>>> Ideally, I want a solution that allows folks developing those "other"
>>>> commands to just "bolt onto" what I have done.  E.g., creating a
>>>> single "grammar definition" (lex/yacc) is probably not a good way to
>>>> go (IME, most small parsers tend to be ad hoc).
>>>>
>>>> [Note:  I can't even guarantee that the extensions will be consistent
>>>> or "harmonious" with the grammar that I implement]

>> The problem I'm stuck with is not knowing what is likely to be added.
>> While I suspect most will be similarly trivial, I can also imagine some
>> esoteric additions!
>
> Who's going to be adding stuff, why, and why won't you have control over
> the process?

Other developers.
To address the needs of their environments.
Because its not my codebase.

>> The "common" commands are trivial enough that, if I knew ALL would be of
>> similar form, I would almost adopt an approach of sequentially
>> attempting to parse a command with individual templates -- until one
>> "fit".  Extensions would just be tacked onto the end of a (short) series
>> of conditionals:
>>
>>       if (parse(string, template1))
>>            command1();
>>       else if (parse(string, template2))
>>            command2();
>>       else if ...
>
> I have an in-house parser that I use for debugging and service on a number
> of projects.  It's OO in C++, but it basically supports a syntax of
>
> <keyword> <anything else>
>
> You create an object and give it the keyword, which automagically
> registers it with the first-layer parser.  When someone types something in
> the first-layer parser looks for the keyword, and if its found, hands it
> to the object for further parsing.
>
> It's crude but effective.  I keep telling myself that I'll make more
> library-ish functionality for parsing the <anything else> bit, but so far
> that's all ad-hoc.

I actually think a viable solution might be as above.  I.e., write something
that parses for *just* one particular command.  If no match, try invoking
the thing that parses for the *next* particular command.  Lather, rinse, repeat
until a match is found (successful parse) *or* no more possibilities (FAIL).

Again, this gets used with very low frequency so it doesn't have to be
super efficient.  With subroutines/functions that the developer can invoke
(because I had to write them to parse the commands that *I* implemented),
it could be just a few lines of code extracting parameters from syntactic
sugar, etc.

I *don't* want to intimidate a developer into having to embrace some more
formal framework with which he may not be comfortable.  That way lies bugs.

Back to comp.arch.embedded | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Parsers for extensible grammars? Don Y <this@is.not.me.com> - 2014-10-22 12:14 -0700
  Re: Parsers for extensible grammars? Don Y <this@is.not.me.com> - 2014-10-22 12:17 -0700
  Re: Parsers for extensible grammars? Tim Wescott <seemywebsite@myfooter.really> - 2014-10-22 15:13 -0500
    Re: Parsers for extensible grammars? Don Y <this@is.not.me.com> - 2014-10-22 22:54 -0700
      Re: Parsers for extensible grammars? Stefan Reuther <stefan.news@arcor.de> - 2014-10-23 18:36 +0200
        Re: Parsers for extensible grammars? Don Y <this@is.not.me.com> - 2014-10-23 12:10 -0700
      Re: Parsers for extensible grammars? Tim Wescott <seemywebsite@myfooter.really> - 2014-10-23 13:45 -0500
        Re: Parsers for extensible grammars? Don Y <this@is.not.me.com> - 2014-10-23 12:15 -0700
      Re: Parsers for extensible grammars? jim.brakefield@ieee.org - 2014-10-24 07:05 -0700
        Re: Parsers for extensible grammars? Don Y <this@is.not.me.com> - 2014-10-24 08:04 -0700
  Re: Parsers for extensible grammars? Clifford Heath <no.spam@please.net> - 2014-10-23 08:22 +1100
    Re: Parsers for extensible grammars? Don Y <this@is.not.me.com> - 2014-10-22 23:25 -0700
    Re: Parsers for extensible grammars? George Neuner <gneuner2@comcast.net> - 2014-10-23 04:45 -0400
      Re: Parsers for extensible grammars? Don Y <this@is.not.me.com> - 2014-10-23 04:14 -0700
        Re: Parsers for extensible grammars? George Neuner <gneuner2@comcast.net> - 2014-10-23 16:49 -0400
          Re: Parsers for extensible grammars? Don Y <this@is.not.me.com> - 2014-10-24 07:38 -0700
            Re: Parsers for extensible grammars? George Neuner <gneuner2@comcast.net> - 2014-10-26 03:47 -0400
              Re: Parsers for extensible grammars? Don Y <this@is.not.me.com> - 2014-10-26 08:41 -0700
                Re: Parsers for extensible grammars? George Neuner <gneuner2@comcast.net> - 2014-10-26 14:36 -0400
                Re: Parsers for extensible grammars? Don Y <this@is.not.me.com> - 2014-10-26 12:37 -0700
                Re: Parsers for extensible grammars? George Neuner <gneuner2@comcast.net> - 2014-10-26 18:54 -0400
        Re: Parsers for extensible grammars? Simon Clubley <clubley@remove_me.eisner.decus.org-Earth.UFP> - 2014-10-25 02:02 +0000
          Re: Parsers for extensible grammars? Don Y <this@is.not.me.com> - 2014-10-25 01:56 -0700
            Re: Parsers for extensible grammars? Simon Clubley <clubley@remove_me.eisner.decus.org-Earth.UFP> - 2014-10-25 11:15 +0000
              Re: Parsers for extensible grammars? Don Y <this@is.not.me.com> - 2014-10-25 10:21 -0700
                Re: Parsers for extensible grammars? Simon Clubley <clubley@remove_me.eisner.decus.org-Earth.UFP> - 2014-10-26 01:05 +0000
                Re: Parsers for extensible grammars? Don Y <this@is.not.me.com> - 2014-10-25 19:37 -0700
  Re: Parsers for extensible grammars? Andrew Smallshaw <andrews@sdf.lonestar.org> - 2014-10-23 20:04 +0000
  Re: Parsers for extensible grammars? Les Cargill <lcargill99@comcast.com> - 2014-10-23 22:30 -0500
    Re: Parsers for extensible grammars? rickman <gnuarm@gmail.com> - 2014-10-25 13:36 -0400
      Re: Parsers for extensible grammars? Les Cargill <lcargill99@comcast.com> - 2014-10-25 13:14 -0500
        Re: Parsers for extensible grammars? rickman <gnuarm@gmail.com> - 2014-10-25 14:23 -0400
          Re: Parsers for extensible grammars? Les Cargill <lcargill99@comcast.com> - 2014-10-26 00:50 -0500
          Re: Parsers for extensible grammars? albert@spenarnc.xs4all.nl (Albert van der Horst) - 2014-10-26 19:21 +0000
            Re: Parsers for extensible grammars? rickman <gnuarm@gmail.com> - 2014-10-26 15:29 -0400
  Re: Parsers for extensible grammars? Paul E Bennett <Paul_E.Bennett@topmail.co.uk> - 2014-10-24 09:56 +0100
    Re: Parsers for extensible grammars? Don Y <this@is.not.me.com> - 2014-10-24 07:46 -0700
      Re: Parsers for extensible grammars? Don Y <this@is.not.me.com> - 2014-10-25 19:54 -0700
        Re: Parsers for extensible grammars? Simon Clubley <clubley@remove_me.eisner.decus.org-Earth.UFP> - 2014-10-26 12:15 +0000
          Re: Parsers for extensible grammars? Don Y <this@is.not.me.com> - 2014-10-26 09:02 -0700
            Re: Parsers for extensible grammars? rickman <gnuarm@gmail.com> - 2014-10-26 12:13 -0400
    Re: Parsers for extensible grammars? rickman <gnuarm@gmail.com> - 2014-10-25 13:35 -0400
      Re: Parsers for extensible grammars? Paul E Bennett <Paul_E.Bennett@topmail.co.uk> - 2014-10-26 01:29 +0100
        Re: Parsers for extensible grammars? rickman <gnuarm@gmail.com> - 2014-10-25 21:11 -0400

csiph-web