xref: /aosp_15_r20/external/antlr/runtime/JavaScript/tests/functional/t013parser.g (revision 16467b971bd3e2009fad32dd79016f2c7e421deb)
1*16467b97STreehugger Robotgrammar t013parser;
2*16467b97STreehugger Robotoptions {
3*16467b97STreehugger Robot  language = JavaScript;
4*16467b97STreehugger Robot}
5*16467b97STreehugger Robot
6*16467b97STreehugger Robot@parser::members {
7*16467b97STreehugger Robotthis.identifiers = [];
8*16467b97STreehugger Robotthis.reportedErrors = [];
9*16467b97STreehugger Robot
10*16467b97STreehugger Robotthis.foundIdentifier = function(name) {
11*16467b97STreehugger Robot    this.identifiers.push(name);
12*16467b97STreehugger Robot};
13*16467b97STreehugger Robot
14*16467b97STreehugger Robotthis.emitErrorMessage = function(msg) {
15*16467b97STreehugger Robot    this.reportedErrors.push(msg);
16*16467b97STreehugger Robot};
17*16467b97STreehugger Robot}
18*16467b97STreehugger Robot
19*16467b97STreehugger Robotdocument:
20*16467b97STreehugger Robot        t=IDENTIFIER {this.foundIdentifier($t.text)}
21*16467b97STreehugger Robot        ;
22*16467b97STreehugger Robot
23*16467b97STreehugger RobotIDENTIFIER: ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'0'..'9'|'_')*;
24