我正在尝试使用 java 表达式语句创建用于创建 HTML 模板的自定义域特定语言。
例如,它应该解析结合 java 语句的标签:
<div>
if (someValue == true) {
<span>"someValue was true"</span>
}
</div>
现在我知道如何编写这样的解析器了。但是,如果我可以只对表达式使用标准 Java Parser,那将非常简单,这样我就不必重新实现 Java Parser 的一部分。我想要实现的可能看起来像:
IfStatementNode parseIfStatement() {
scanner.expect("if");
scanner.expect("(");
JavaExpression expression = scanner.parseJavaExpression(); // <--- how to implement this?
scanner.expect(")");
return new IfStatementNode(expression);
}
如何做到这一点以便scanner.parseJavaExpression
解析任何 Java 表达式?