我正在使用自定义脚本来自动化流程。(实际学习)。这是脚本。
var a = 5;
var b = 55;
return a+b;
我只是将源代码转换为 C# 并使用 CSharpCodeProvider 类进行编译。我目前正在将其转换为令牌,这是我的令牌枚举
public enum Tokens
{
RETURN,
NEWLINE,
WHITESPACE,
VAR,
WORD,
SYMBOL,
INTEGER
}
我成功获得了这些令牌
VAR, WHITESPACE, WORD, WHITESPACE, INTEGER, SYMBOL
NEWLINE,
VAR, WHITESPACE, WORD, WHITESPACE, INTEGER, SYMBOL
NEWLINE
NEWLINE
RETURN, WHITESPACE, WORD, SYMBOL, WORD, SYMBOL
我目前正在尝试查找未声明的变量并自己声明它们。我尝试将每个添加WORD
到变量列表并将其添加到脚本中,但它得到了重复的声明。
我希望它也验证
a = 5;
var b = 55;
return a+b;
即只为没有 var 关键字的事物添加声明。
我怎么解决这个问题?
谢谢。
编辑:
这是我解析源代码的方式。
List<Token> tokensList;
List<string> variables;
for (int i=0; i<tokensList.Count; i++)
{
Token token = tokensList[i];
switch (token.TokenType)
{
case WORD:
variables.Add(token.Value);
break;
}
result.Append(token.Value);
}