コード例 #1
0
        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;
            }
        }
コード例 #2
0
 public ReturnLexeme(List <Token> tokens) : base(tokens, LexemeType.Return, false)
 {
     Expression = new ExpressionLexeme(tokens.Skip(1).ToList());
 }
コード例 #3
0
 public WhileLexeme(List <Token> tokens) : base(tokens, LexemeType.While, true)
 {
     Expression = new ExpressionLexeme(tokens.Skip(2).Take(tokens.Count - 3).ToList());
 }