1*16467b97STreehugger Robotgrammar t053heteroTP18; 2*16467b97STreehugger Robotoptions { 3*16467b97STreehugger Robot language=JavaScript; 4*16467b97STreehugger Robot output=AST; 5*16467b97STreehugger Robot tokenVocab=t053heteroT18; 6*16467b97STreehugger Robot} 7*16467b97STreehugger Robottokens { ROOT; } 8*16467b97STreehugger Robot@header { 9*16467b97STreehugger Robotfunction V18(ttype, tree) { 10*16467b97STreehugger Robot if (!tree) { 11*16467b97STreehugger Robot V18.superclass.constructor.call(this, new org.antlr.runtime.CommonToken(ttype)); 12*16467b97STreehugger Robot } else { 13*16467b97STreehugger Robot V18.superclass.constructor.call(this, tree); 14*16467b97STreehugger Robot this.token.type = ttype; 15*16467b97STreehugger Robot } 16*16467b97STreehugger Robot}; 17*16467b97STreehugger Robotorg.antlr.lang.extend(V18, org.antlr.runtime.tree.CommonTree, { 18*16467b97STreehugger Robot toString: function() { 19*16467b97STreehugger Robot return t053heteroTP18Parser.tokenNames[this.getType()] + "<V>@" + 20*16467b97STreehugger Robot this.token.getLine(); 21*16467b97STreehugger Robot } 22*16467b97STreehugger Robot}); 23*16467b97STreehugger Robot} 24*16467b97STreehugger Robota : ID -> ROOT<V18>[$ID] 25*16467b97STreehugger Robot ; 26*16467b97STreehugger Robot 27