[antlr-interest] single-pass pattern matching "for free"?
Terence Parr
parrt at cs.usfca.edu
Sun Jan 15 11:44:06 PST 2006
On Jan 14, 2006, at 8:18 PM, Nigel Sheridan-Smith wrote:
>> Would thing kind of thing be useful? Best of both worlds? For many
>> applications, this would be great!
>>
>
> Sounds good to me! But I think one of Andy's points was that not
> everything
> in translation can be applied at the AST node level. You sometimes
> need to
> look deeper (e.g. within strings), or broader (e.g. multiple lines
> of code).
Correct. Andy's experience in this would be gold! perhaps he would
like to help build this generic pattern engine...
Yes, we could do patterns on two levels: char and token I should think.
1. by char. This is how I do fuzzy parsing (filter=true mode). Try
to match one of a set of rules against the input stream at position
p. If none matches, advance to p+1 and try again. This would allow
you to see inside strings. The stuff in <...> could only be token
refs like <ID>
2. by token. This would be the normal mode probably and much
faster. You could specify grammatical structures like <expr> and
<stat>. you could only see properly tokenized input. The tool would
tokenize via the grammar's lexer you provide separately and then
generate a parser that would apply the rules and do replacement.
Make sense?
Ter
More information about the antlr-interest
mailing list