wanna/am using it.(2 yrs user) On Wed, Feb 10, 2010 at 4:31 AM, <[email protected]> wrote:
> Don't do it on my account, but I think I would use it because it looks much > more transparent and maintainable. As a new and occasional user, my biggest > challenge is getting my head back in the game after some time away from the > code. This would help. > > Kyle > > Sent from my Verizon Wireless BlackBerry > > -----Original Message----- > From: Terence Parr <[email protected]> > Date: Tue, 9 Feb 2010 17:30:12 > To: antlr-interest interest<[email protected]> > Subject: [antlr-interest] anybody using dynamic scopes? > > Hi, > > Is anybody using scopes? E.g., here is the use C grammar: > > scope Symbols { > Set types; // only track types in order to get parser working > } > > Every rule that declares its usage of Symbols pushes a new copy on the > stack effectively creating a new symbol scope. > > translation_unit > scope Symbols; // entire file is a scope > @init { > $Symbols::types = new HashSet(); > } > : external_declaration+ > ; > > > Then rule declaration declares a rule scope that lets any invoked rule see > isTypedef boolean. It's much easier than passing that info down as > parameters: > > declaration > scope { > boolean isTypedef; > } > @init { > $declaration::isTypedef = false; > } > : 'typedef' declaration_specifiers? {$declaration::isTypedef=true;} > init_declarator_list ';' // special case, looking for typedef > | declaration_specifiers init_declarator_list? ';' > ; > > > Rule direct_declarator can then easily determine whether the IDENTIFIER > should be declared as a type name. > > direct_declarator > : ( IDENTIFIER > { > if ($declaration.size()>0&&$declaration::isTypedef) { > $Symbols::types.add($IDENTIFIER.text); > System.out.println("define type "+$IDENTIFIER.text); > } > } > | '(' declarator ')' > ) > declarator_suffix* > ; > > Trying to decide if it's worth reimplementing for v4. > > Ter > > List: http://www.antlr.org/mailman/listinfo/antlr-interest > Unsubscribe: > http://www.antlr.org/mailman/options/antlr-interest/your-email-address > > List: http://www.antlr.org/mailman/listinfo/antlr-interest > Unsubscribe: > http://www.antlr.org/mailman/options/antlr-interest/your-email-address > -- Best Regards, Eslam A. AlMorshdy List: http://www.antlr.org/mailman/listinfo/antlr-interest Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-email-address -- You received this message because you are subscribed to the Google Groups "il-antlr-interest" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/il-antlr-interest?hl=en.
