problem with declaration grammar?
Christopher Wright
dhasenan at gmail.com
Wed Feb 18 19:57:40 PST 2009
jerry quinn wrote:
> Hi there,
>
> I'm not sure if I'm missing something, but I'm having trouble seeing that a simple declaration will parse correctly with the D grammar.
>
> If we take a declaration statment like:
>
> int x = 3;
>
> we have (my best guess):
>
> DeclarationStatement -> Declaration
> Declaration -> Decl
> Decl -> BasicType Declarators ;
> BasicType -> int
> Declarators -> DeclaratorInitializer
> DeclaratorInitializer -> Declarator = Initializer
> Declarator -> BasicType2 Identifier
> BasicType2 -> ????
>
> I'm thinking that BasicType2 is optional here, rather than required as the grammar shows. Is that correct?
>
> Thanks
> Jerry
. Declaration -> Decl
. Decl -> BasicType Declarators
. BasicType -> "int"
. Declarators -> DeclaratorInitializer
. DeclaratorInitializer -> Declarator "=" Initializer
We agree up to here.
. Declarator -> Identifier
Here, you don't need BasicType2, and if you use it, you recurse, so
using the rule Declarator -> BasicType2 Declarator here is useless.
. Identifier -> "x"
. Initializer -> ... -> "3"
More information about the Digitalmars-d
mailing list