To follow up, it had to do with the way I was outputting. I read something
in, I believe, the Language Implementation Patterns book and interpreted it
as, when printing the output, you need to call output.getTemplate().
However, that's definitely wrong. Most places, it says to call
output.toString(). My mistake.

Kim

On Thu, Apr 28, 2011 at 1:44 PM, Kim Slattery <[email protected]>wrote:

> Glaring syntax error in the above--I forgot to change the string template
> for start to <p> from <pack>.  This shouldn't be the problem, but I'll let
> you know if it is.
>
>
> On Thu, Apr 28, 2011 at 12:54 PM, Terence Parr <[email protected]> wrote:
>
>> if you get <...>That means that somehow ST is interpreting it using $...$
>> not <...> I think. not sure why that would be.
>> Ter
>> On Apr 28, 2011, at 10:42 AM, Kim Slattery wrote:
>>
>> > 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 <[email protected]
>> >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
>>
>>
>

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.

Reply via email to