| Refresh | Home EGTry.com

return multiple values from a rule


rule that return multiple value

grammar P;

prog:
   s1=WORD  s2=WORD s=cal[$s1.text,$s2.text]  
   {
    System.out.println("return 1: "+$s.rv1);
    System.out.println("return 2: "+$s.rv2);
   }
 ;

cal[String a, String b] returns [String rv1, String rv2] 
  :
    WORD { 
        retval.rv1=$WORD.text+"/"+a+"/"+b;
        retval.rv2=$WORD.text+";"+a+";"+b; 
     } 
  ;

WORD: ('a' .. 'z')+;

WS: (' '|'\r'|'\n') {$channel=HIDDEN;};


input example

how are you


Output

return 1: you/how/are
return 2: you;how;are