xref: /aosp_15_r20/external/antlr/runtime/JavaScript/tests/functional/t053heteroTP18.g (revision 16467b971bd3e2009fad32dd79016f2c7e421deb)
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