[svlug] Lex question about variable length fields

Ivan Sergio Borgonovo mail at webthatworks.it
Thu May 22 17:01:24 PDT 2014


On Thu, 22 May 2014 15:33:25 -0700
Bob Smith <bsmith at linuxtoys.org> wrote:

> Ivan Sergio Borgonovo wrote:
> > It'd be clearer if you could make an actual example and the expected
> > result (parser tree)
> 
> Jesse, Ivan, thanks for your replies.  Yeah, my original post
> was pretty vague.  Let me try again.
> 
> 
> I would like to get three single word tokens followed by a fourth
> token that is whatever is left on the input line.  So, the input
> line "My name is Jabba the Hutt" would return tokens
> "My",
> "name",
> "is", and
> "Jabba the Hutt".
> 
> The last token looks like several words and when I write the lex
> rules to pick up more than one word, it picks up the whole line.

We're getting nearer.
It's not clear if what precede the name (Jabba the Hutt) has a
particular structure or it has a fixed number of tokens or if the name
itself (Jabba the Hutt) has a particular structure.

Otherwise understanding when the "before the name" end and where the
"name" start is impossible.

BTW lex/bison/yacc and Co. don't ignore \s (or punctuation) by default,
you've to explicitly tell them so.

BTW are you sure you need a full fledged parser and not just a regexp?

-- 
Ivan Sergio Borgonovo
http://www.webthatworks.it





More information about the svlug mailing list