S-expression parsing
JVM | Platform | Status |
---|---|---|
OpenJDK (Temurin) Current | Linux | |
OpenJDK (Temurin) LTS | Linux | |
OpenJDK (Temurin) Current | Windows | |
OpenJDK (Temurin) LTS | Windows |
A general-purpose, configurable S-expression parser.
[f (g [x y])]
.#
, %
, or ;
).See the user manual.
Give the configuration for the lexer:
var squareBrackets = true;
var newlinesInQuotedStrings = true;
var startAtLine = 1;
final var lexConfiguration =
new JSXLexerConfiguration(
squareBrackets,
newlinesInQuotedStrings,
Optional.of(URI.create("file.txt")),
EnumSet.noneOf(JSXLexerComment.class),
startAtLine
);
Instantiate a parser using a parser and lexer configuration:
var preserveLexicalInfo = true;
final var parserConfig =
new JSXParserConfiguration(preserveLexicalInfo);
final JSXParserSupplierType parsers =
new JSXParserSupplier();
final var parser =
parsers.createFromStreamUTF8(
parserConfig,
lexConfiguration,
lexers,
System.in
);
Parse expressions:
final var exprOpt = parser.parseExpressionOrEOF();
if (exprOpt.isPresent()) {
final var e = exprOpt.get();
System.out.println(e);
}