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