我的输入文本是用 JSON 数组中的前缀概念编写的表达式。 其中数组[0]是运算符,之后的任何项都是运算符的操作数。数组可以嵌套,因此如果数组项之一是数组,我必须首先对其进行评估。例["+", 2, 3]["+", ["+", 1, 1], 3]
关于如何为此表示创建语法的任何建议
// lexer rules:
expression:
NUMBER
|'[' OPERATOR (',' expression)* ']';
// parser rules:
QUOTE: '"';
NUMBER: '0-9'+; // not that simple
OPERATOR_PLUS: '+';
OPERATOR_MINUS: '-';
...
OPERATOR: QUOTE (OPERATOR_PLUS | OPERATOR_MINUS | ...) QUOTE;
类似的东西。考虑词法分析和递归规则。