Я уверен, что мне скажут сделать это по-другому, но по определенным причинам это нужно сделать таким образом. Если бы этого не произошло, я бы не застрял: -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 очень хорошо. Поскольку они хотят иметь возможность делать переменные без объявления типа, я как бы застрял в том, что делать сейчас, то есть как я могу получить мои переменные, у которых нет объявленного типа, сохраненные в соответствующих классах. Буду признателен за любую помощь, надеюсь, все это имеет смысл.