예제 #1
0
 public override string ToString()
 {
     if (IsAssignTo)
     {
         return(ValueExp.ToString() + "=>" + ToExp.ToString());
     }
     else
     {
         return(ToExp.ToString() + "=" + ValueExp.ToString());
     }
 }
예제 #2
0
        protected override void AnalyBody()
        {
            ValueExp = AnalySubExp(ValueExp);
            ToExp    = AnalyToExp();
            if (ToExp is ExpBracketWrapOne)
            {
                ToExp = ((ExpBracketWrapOne)ToExp).VarExp;
            }

            if (ValueExp is ExpBracketWrapOne)
            {
                ValueExp = ((ExpBracketWrapOne)ValueExp).VarExp;
            }
            else if (ValueExp is ExpBracket)
            {
                ValueExp = ((ExpBracket)ValueExp).UnBracket();
            }

            if (ToExp is ExpDe || ToExp is ExpDi)
            {
                AnalyToExp_DeDi();
            }
            else if (ToExp is ExpVarBase)
            {
                //没有错误,不需要提示错误
            }
            else if (ToExp is ExpEachItem)
            {
                //没有错误,不需要提示错误
            }
            else if (ToExp is ExpUseEnumItem)
            {
                Errorf(this.ToExp.Position, "约定值'{0}'不能被赋值", ToExp.ToString());
            }
            else
            {
                Errorf(this.ToExp.Position, "该表达式不能被赋值");
            }
            this.RetType = ZLangBasicTypes.ZVOID;
            NewValueExp  = ValueExp;
            AnalyArgLambda();
        }