我敢肯定,我会被告知以另一种方式进行,但出于特定原因,必须以这种方式进行。如果没有,我就不会被卡住:-P
我正在使用的脚本语言必须接受这样定义的变量:
Variables: x(1), y("hi");
这是一个要求。我之前写了一个小语法,让我这样定义它们
int x = 1;
string y = "hi";
但要求发生了变化。我的语法之前的样子是这样的
syntax sDeclareVar = t:sType i:tID "=" x:sExpression ";" => DeclareVar { VariableName{i},Type{t},Value{x}};
sType 的值是 System.String、Int32 等,然后是变量名,然后是表达式。然后我将其投影到 DeclareVar 节点并为其提供所需的参数,在代码中我将其解析为 XML,然后让 MGrammar 解析 XML 并很好地遍历我的 AST。由于他们希望能够在不声明类型的情况下执行变量,所以我有点坚持现在要做什么,即如何将没有声明类型的变量存储到适当的类中。任何帮助将不胜感激,希望这一切都有意义。