java-parser
Version:
Java Parser in JavaScript
35 lines (30 loc) • 881 B
JavaScript
;
const { tokenMatcher } = require("chevrotain");
function defineRules($, t) {
// https://docs.oracle.com/javase/specs/jls/se11/html/jls-10.html#jls-ArrayInitializer
$.RULE("arrayInitializer", () => {
$.CONSUME(t.LCurly);
$.OPTION(() => {
$.SUBRULE($.variableInitializerList);
});
$.OPTION2(() => {
$.CONSUME(t.Comma);
});
$.CONSUME(t.RCurly);
});
// https://docs.oracle.com/javase/specs/jls/se11/html/jls-10.html#jls-VariableInitializerList
$.RULE("variableInitializerList", () => {
$.SUBRULE($.variableInitializer);
$.MANY({
// The optional last "Comma" of an "arrayInitializer"
GATE: () => tokenMatcher(this.LA(2).tokenType, t.RCurly) === false,
DEF: () => {
$.CONSUME(t.Comma);
$.SUBRULE2($.variableInitializer);
}
});
});
}
module.exports = {
defineRules
};