public VarLexeme(List <Token> tokens) : base(tokens, LexemeType.Var, false) { VarName = tokens[1]; var index = tokens.FindIndex(p => p.Type == TokenType.EqualSign); if (index != -1) { TypeTokens = tokens.Skip(3).Take(index - 3).ToList(); Expression = new ExpressionLexeme(tokens.Skip(index + 1).ToList()); } else { TypeTokens = tokens.Skip(3).ToList(); DeclarationOnly = true; } }
public ReturnLexeme(List <Token> tokens) : base(tokens, LexemeType.Return, false) { Expression = new ExpressionLexeme(tokens.Skip(1).ToList()); }
public WhileLexeme(List <Token> tokens) : base(tokens, LexemeType.While, true) { Expression = new ExpressionLexeme(tokens.Skip(2).Take(tokens.Count - 3).ToList()); }