[cl-ppcre-devel] Roles of scanner vs. parser vs. lexer?

Edi Weitz edi at agharta.de
Wed Aug 3 23:32:37 UTC 2005


[You forgot to Cc the mailing list.]

On Wed, 3 Aug 2005 15:49:58 -0700, Derek Peschel <dpeschel at eskimo.com> wrote:

> CL-PPCRE makes a start, with a grammar and a set of token types that
> the lexer produces.  The problem, as you know, is how to make sure
> the specification is complete while stating it in a way that's not
> tied to a particular implementation.  All the context-sensitive
> tricks (extended mode, backreference vs. octal constants, \Q and \E)
> make the spec harder to check too.

Definitely.  I'm afraid I won't be able to help very much, though.
CL-PPCRE's parser/lexer is very much an ad hoc implementation and it's
the first parser I ever wrote.

> Climacs's syntax highlighters work with parse trees, so CL-PPCRE's
> use of them seemed to make it a good match for Climacs.  I think
> Climacs needs to reconstruct the original text from the parse tree,
> and it parses the text incrementally, and a good syntax module will
> flag errors yet allow further changes to the text.  So I don't know
> if the Climacs parse tree could be ready to pass to CL-PPCRE.  But
> that would be ideal.

Without knowing anything about Climacs' internals: How about using
CL-PPCRE::PARSE-STRING and feeding the result to Climacs?

> Are dangling \Es legal in Perl too?

Yep.

  edi at vmware:~$ perl -le '$a = "\Q*\E\E"; print $a'
  \*

Cheers,
Edi.



More information about the Cl-ppcre-devel mailing list