1grammar t053heteroT9; 2options { 3 language=JavaScript; 4 output=AST; 5} 6@header { 7function V2() { 8 var x, y, z, token, ttype; 9 if (arguments.length===4) { 10 ttype = arguments[0]; 11 x = arguments[1]; 12 y = arguments[2]; 13 z = arguments[3]; 14 token = new org.antlr.runtime.CommonToken(ttype, ""); 15 } else if (arguments.length===3) { 16 ttype = arguments[0]; 17 token = arguments[1]; 18 x = arguments[2]; 19 y = 0; 20 z = 0; 21 } else { 22 throw new Error("Invalid args"); 23 } 24 25 V2.superclass.constructor.call(this, token); 26 this.x = x; 27 this.y = y; 28 this.z = z; 29}; 30 31org.antlr.lang.extend(V2, org.antlr.runtime.tree.CommonTree, { 32 toString: function() { 33 var txt = ""; 34 if (this.token) { 35 txt += this.getText(); 36 } 37 txt += "<V>;"+this.x.toString()+this.y.toString()+this.z.toString(); 38 return txt; 39 } 40}); 41} 42a : ID -> ID<V2>[42,19,30] ID<V2>[$ID,99]; 43ID : 'a'..'z'+ ; 44WS : (' '|'\n') {$channel=HIDDEN;} ; 45 46