[antlr-interest] python grammar(s)
alexander krohn
12345alex at gmx.net
Thu Apr 3 15:06:24 PDT 2008
Johannes Luber schrieb:
> alexander krohn schrieb:
>>>
>> can you explain what you mean by "semantic limitations"?
>
> There is syntax and there is semantics. Syntax means only correct use
> of the grammar, but not necessarily that the semantics are correct,
> that there is meaning being conferred. "The jam flew like carwinkle."
> is correct syntax, but still nonsense.
>
> Other example. In C# you can use modifiers in front of class-,
> method-, etc.-definitions. But while there is a set of known
> modifiers, only a subset is valid for certain definitions and even
> there is additional context involved. Allowing all modifiers at every
> place would be syntactically correct.
>
> Semantically correct, you can use "virtual" on methods, but not on
> classes. Classes can be "protected" or "private" only when being
> nested themselves. Methods can have "override" only, if there is in a
> base class a suitable "virtual" method.
>
> Some of these limitations can be expressed in BNF where you just allow
> only sensible modifiers, removing only the ones which are never used.
> But this imposes semantic meaning on a pure syntactical construct.
> This should be done in a second pass, because then one can check for
> other context-dependent limitations.
yes, i see. but i think the python grammar's differences are more from
syntactical nature.
>
>> what would the second pass look like? what grammar should it use? a
>> tree grammar maybe?
>
> A tree grammar is probably the right approach. At least I don't know
> any reason why it isn't. I would use the first pass also to create a
> symbol table. While I haven't gotten around to get my own C# compiler
> to include symbol tables yet, my dissertation thesis may be still
> useful for you, at least the bits about compiler design and ANTLR
> grammar tweaking. If you like I can send you one copy.
sure, would like to read it.
>
>> i want to do a mostly complete transformation using a heterogenous
>> ast build by using rule arguments and return values. this puts more
>> stuff to the rules than using rewrite rules but the result is really
>> nice.
>
> That goes beyond my own expertise. Sorry. :(
>
> Johannes
>
i'm still unsure if i should fix the grammar, at least i will try.
as terence said: "don't touch the lexer" ;)
regards
alexander
More information about the antlr-interest
mailing list