別の方法で行うように言われると思いますが、特定の理由から、この方法で行う必要があります。そうでなければ、私は立ち往生しないでしょう:-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を正常にトラバースしました。彼らは型を宣言せずに変数を実行できるようにしたいので、私は今何をすべきか、つまり宣言された型を持たない変数を適切なクラスに格納する方法に固執しています。どんな助けでもありがたいです、うまくいけばそれはすべて理にかなっています。