Sorry: incomplete thought. Every time, it translates it to simply: <pack>
What am I not getting? On Thu, Apr 28, 2011 at 12:41 PM, Kim Slattery <slattery....@gmail.com>wrote: > I have been trying to parse this and translate it using a .stg file, and it > does not work. Every time, it parses I have no idea what's going on. > Help!? > > Hop.stg: > > group Hop; > start(p) ::= "<pack>" > package(name) ::= "packagedafdjk <name>" > qualified_name(name) ::= "<name>" > > > HopSymbolTableWalker.g: > > tree grammar HopSymbolTableWalker; > > options { > tokenVocab=Hop; > ASTLabelType=CommonTree; > output = template; > } > ... > start > @after{$st = %start(p={$pack.text});} > : (pack = package_rule ref = reference+ // -> start(pack={$ > pack.st}) > | ref = reference+ pack = package_rule > | pack = package_rule // -> start(pack={$ > pack.st}) > | ref = reference+ > | ) > cl = class_declaration EOF //Declaring a class name > ; > > package_rule > @after{$st = %package(name={$qn.text});} > : PACKAGE_NAME qn=qualified_name > { > thisPackage = $qn.type; > } > ; > > qualified_name returns [QualifiedNameDescriptor type] > @after {$st = %{result};} > @init { > String result = ""; > } > : ^(QUALIFIED_NAME ids+= ID (PERIOD ids+=ID)*) > { > QualifiedNameDescriptor t = new QualifiedNameDescriptor(); > t.setLineBegin(((CommonTree)$ids.get(0)).token.getLine()); > > t.setColumnBegin(((CommonTree)$ids.get(0)).token.getCharPositionInLine()); > /*t.setNameFromList($ids); > */ > String name = ""; > Iterator it = $ids.iterator(); > > while(it.hasNext()) { > name += ((CommonTree) it.next()).getText(); > > if(it.hasNext()) { > name += $PERIOD.text; > } > > } > t.setName(name); > > result = name; > > t.setLineEnd(((CommonTree)$ids.get($ids.size() - 1)).token.getLine()); > t.setColumnEnd(((CommonTree)$ids.get($ids.size() - > 1)).token.getCharPositionInLine()); > $type = t; > } //-> > qualified_name(name={result}) > ; > > > > Thanks for your ideas. I'm absolutely stuck. > > Kim > 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 il-antlr-inter...@googlegroups.com. To unsubscribe from this group, send email to il-antlr-interest+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/il-antlr-interest?hl=en.