コード例 #1
0
        //public static bool IsLValue()
        //{

        //}

        public static ValueStatement ParseSingle(Block block, Declaration LValue, Token RValue)
        {
            if (Immediate.IsImmediate(RValue) == false)
            {
                Declaration valDecl = block.FindDeclaration(RValue.Text);
                if (valDecl != null && LValue.ConstValue != null)
                {
                    LValue.ConstValue = new Immediate(LValue.ConstValue.Value);
                }
                return(new Move(LValue, valDecl));
            }
            else
            {
                Immediate valImm = new Immediate(RValue);
                LValue.ConstValue = valImm;
                return(new Assignment(LValue, valImm));
            }
        }