コード例 #1
0
 protected void CheckRealEquation()
 {
     if (LeftType.Equals(SimpleType.Real) && RightType.Equals(SimpleType.Real))
     {
         GenerateFind(new RealEqualWarning(Token.Operator, Words, this is EqualToken));
     }
 }
コード例 #2
0
        protected virtual void ConvertOperands()
        {
            LeftType  = LeftOperand.GetSemanticType();
            RightType = RightOperand.GetSemanticType();

            if (LeftType.Equals(SimpleType.Integer) && RightType.Equals(SimpleType.Real))
            {
                LeftType = SimpleType.Real;
            }

            if (LeftType.Equals(SimpleType.Real) && RightType.Equals(SimpleType.Integer))
            {
                RightType = SimpleType.Real;
            }
        }
コード例 #3
0
ファイル: PlusToken.cs プロジェクト: seljmov/Semantic-IDE
 protected override bool OperationIsCorrect()
 => LeftType.Equals(RightType) &&
 (LeftType.Equals(SimpleType.Integer) || LeftType.Equals(SimpleType.Real));
コード例 #4
0
ファイル: DivideToken.cs プロジェクト: seljmov/Semantic-IDE
 protected override bool OperationIsCorrect()
 => LeftType.Equals(RightType) && LeftType.Equals(SimpleType.Real);
コード例 #5
0
 protected override bool OperationIsCorrect()
 => LeftType.Equals(RightType) ||
 LeftType.Equals(SimpleType.NullPointer) && RightType is PointerType ||
 RightType.Equals(SimpleType.NullPointer) && LeftType is PointerType;
コード例 #6
0
 protected override bool OperationIsCorrect()
 => LeftType.Equals(SimpleType.Boolean) && RightType.Equals(SimpleType.Boolean);