我有一个由 Tokeniser 生成的令牌列表。
List<Token> tokenList = new List<Token>();
这是令牌类。
public class Token
{
public Tokens TokenName { get; set; }
public string TokenValue { get; set; }
public Token Previous {
get; set;
}
public Token Next {
get; set;
}
public Token(Tokens name, string value)
{
TokenName = name;
TokenValue = value;
}
}
而且我需要设置列表中每个标记的Next
andPrevious
属性,但要避免它们指向NEWLINE
or WHITESPACE
orTABSPACE
标记,而是使用它们的下一个标记。
这是我的代码。
Token token = null;
foreach (Token tkn in tokenList)
{
if (token != null)
{
switch (token.TokenName)
{
case Tokens.NEWLINE:
case Tokens.WHITESPACE:
case Tokens.TABSPACE:
break;
default:
switch (tkn.TokenName)
{
case Tokens.NEWLINE:
case Tokens.WHITESPACE:
case Tokens.TABSPACE:
break;
default:
tkn.Previous = token;
token.Next = tkn;
token = tkn;
break;
}
break;
}
}
else
{
token = tkn;
}
}
但是,它似乎不起作用。请问有什么帮助吗?