public SymbolTable()
        {
            Level++;
            var symbolList = new SymbolList();

            symbolTable.AddLast(symbolList);
            Current = symbolTable.Last;
        }
        private void InterpretDecVariable(TreeNode node, int type, SymbolList table)
        {
            var variable = node;

            if (variable.MiddleNode == null)
            {
                string value = null;
                if (variable.RightNode != null)
                {
                    value = InterpretExp(variable.RightNode.MiddleNode);
                }

                if (type == TokenType.Int)
                {
                    Codes.AddLast(new Quadruple(InstructionType.Int, value, null, variable.LeftNode.Value, Line));
                    Line++;
                    var symbol = new Symbol(variable.LeftNode.Value, SymbolType.IntValue, Level);
                    SymbolTable.Register(symbol);
                }
                else if (type == TokenType.Real)
                {
                    Codes.AddLast(new Quadruple(InstructionType.Real, value, null, variable.LeftNode.Value, Line));
                    Line++;
                    var symbol = new Symbol(variable.LeftNode.Value, SymbolType.RealValue, Level);
                    SymbolTable.Register(symbol);
                }
                else if (type == TokenType.Char)
                {
                    Codes.AddLast(new Quadruple(InstructionType.Char, value, null, variable.LeftNode.Value, Line));
                    Line++;
                    var symbol = new Symbol(variable.LeftNode.Value, SymbolType.CharValue, Level);
                    SymbolTable.Register(symbol);
                }
            }
            else if (variable.MiddleNode != null)       //数组暂时不能初始化
            {
                if (variable.RightNode != null)
                {
                    throw new InterpretException("ERROR : 初始化非法.\n");
                }
                var len = InterpretArrayDim(variable.MiddleNode, out var dim);
                if (type == TokenType.Int)
                {
                    Codes.AddLast(new Quadruple(InstructionType.Int, dim.ToString(), len, variable.LeftNode.Value, Line));
                    Line++;
                    var symbol = new Symbol(variable.LeftNode.Value, SymbolType.IntArray, Level);
                    SymbolTable.Register(symbol);
                }
                else if (type == TokenType.Real)
                {
                    Codes.AddLast(new Quadruple(InstructionType.Real, dim.ToString(), len, variable.LeftNode.Value, Line));
                    Line++;
                    var symbol = new Symbol(variable.LeftNode.Value, SymbolType.RealArray, Level);
                    SymbolTable.Register(symbol);
                }
                else if (type == TokenType.Char)
                {
                    Codes.AddLast(new Quadruple(InstructionType.Char, dim.ToString(), len, variable.LeftNode.Value, Line));
                    Line++;
                    var symbol = new Symbol(variable.LeftNode.Value, SymbolType.CharArray, Level);
                    SymbolTable.Register(symbol);
                }
            }
        }