Files
GGD/node_modules/java-parser/src/productions/lexical-structure.js

43 lines
1.3 KiB
JavaScript

"use strict";
function defineRules($, t) {
// https://docs.oracle.com/javase/specs/jls/se16/html/jls-3.html#jls-Literal
$.RULE("literal", () => {
$.OR([
{ ALT: () => $.SUBRULE($.integerLiteral) },
{ ALT: () => $.SUBRULE($.floatingPointLiteral) },
{ ALT: () => $.SUBRULE($.booleanLiteral) },
{ ALT: () => $.CONSUME(t.CharLiteral) },
{ ALT: () => $.CONSUME(t.TextBlock) },
{ ALT: () => $.CONSUME(t.StringLiteral) },
{ ALT: () => $.CONSUME(t.Null) }
]);
});
// https://docs.oracle.com/javase/specs/jls/se16/html/jls-3.html#jls-IntegerLiteral
$.RULE("integerLiteral", () => {
$.OR([
{ ALT: () => $.CONSUME(t.DecimalLiteral) },
{ ALT: () => $.CONSUME(t.HexLiteral) },
{ ALT: () => $.CONSUME(t.OctalLiteral) },
{ ALT: () => $.CONSUME(t.BinaryLiteral) }
]);
});
// https://docs.oracle.com/javase/specs/jls/se16/html/jls-3.html#jls-FloatingPointLiteral
$.RULE("floatingPointLiteral", () => {
$.OR([
{ ALT: () => $.CONSUME(t.FloatLiteral) },
{ ALT: () => $.CONSUME(t.HexFloatLiteral) }
]);
});
// https://docs.oracle.com/javase/specs/jls/se16/html/jls-3.html#jls-BooleanLiteral
$.RULE("booleanLiteral", () => {
$.OR([{ ALT: () => $.CONSUME(t.True) }, { ALT: () => $.CONSUME(t.False) }]);
});
}
module.exports = {
defineRules
};