[antlr-interest] a crazy problem cost me almost two days ---how can i get the return value from antlr?

Su Zhang westlifezs at gmail.com
Tue Nov 25 15:35:43 PST 2008


 I got rid of this part, like this"for(Certificate cert: retval.cred.getCertificates()) {"

but there still eorror information:Certificate cannot be resolved to a type,
is there any problems?
thank you
Su
2008/11/23 Su Zhang <westlifezs at gmail.com>
>
> Hi all,
>  
> I wrote a returns [String s] in my rules in order to get a return value, but when I call the function generated by the exact rule in the main function, there is not any return value, and the type of return value is not a String, and the value includes a tree structure,etc, but I define it as a string in the antlrworks, does anybody know what's the problem in my project? how can i get the return String I defined? I am almost crazy about this annoying problem, 
> here is a part of my grammar:
>  
> num    returns [String t]
>         :n = Num  {$t = $n.getText();}|b64=Base64Block{$t=$b64.getText();}|ident=Id{$t=$ident.getText();}
>         ;
> base1   returns[String input] 
>         : b64=Base64Block{$input=$b64.getText();}|ident=Id{$input=$ident.getText();}|n = Num  {$input = $n.getText();}
>         ;
> id1   returns[String input]  
>       :ident=Id{$input=$ident.getText();/*System.out.println($input);*/} |b64=Base64Block{$input=$b64.getText();}|n = Num  {$input = $n.getText();}
>       ;
>
> Num   :     ( '0'..'9' ) * ;
> Id   :     ( 'a'..'z' | 'A'..'Z' | '_' ) ( 'a'..'z' | 'A'..'Z' | '_' |'-'| '0'..'9' ) *;
> Base64Block  :('a'..'z'| 'A'..'Z'|'0'..'9'|'/'|'+'|'=')*;
> //Base64Block      : ('a'..'z' | 'A'..'Z' | 'O'..'9' | '/' | '+' | '=')*;
> ChallengeBlock   : ( 'a'..'z' | 'A'..'Z' | 'O'..'9'| ':')* ;
> //fragment
> WS  :  (' '|'\r'|'\t'|'\u000C'|'\n') {$channel=HIDDEN;}
>     ;
>  
>  
>  
> thanks alot!
> -- 
> Su Zhang
> Computer Information and Science
> Kansas State University 




-- 
Su Zhang
PHD Candidate 
Computer Information and Science
Kansas State University 


More information about the antlr-interest mailing list