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
및 Previous
속성을 설정하지만, NEWLINE
또는 WHITESPACE
또는 TABSPACE
토큰을 지적하지만, 그들의 다음 사람을 사용하도록 않도록해야합니다.
여기 내 코드가 있습니다.
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;
}
}
그러나 작동하지 않는 것 같습니다. 어떤 도움을 주시겠습니까?
코드가 정확히 어떻게 작동하지 않습니까? 그것은 무엇을 하는가? – svick
속성은 항상 WhiteSpace 토큰을 참조합니다. –
이 코드는 의미가 없습니다. 예를 들어, 변수 이름 토큰을 설정하는 루프가 있고 때로는 그렇지 않을 수도 있습니다. 그러나이 값으로는 아무런 효과가 없습니다. 정확히이 루프의 요점은 무엇입니까? 정확히 무엇을하려고하는지 설명하십시오. – Hogan