Пример #1
0
 public void DropOperator(int index)
 {
     if (operatorOP.GetType() == typeof(OpAnd))
     {
         OpAnd and = operatorOP as OpAnd;
         if (index == 0 && and.A == null)
         {
             and.A = UIRobotProg.Instance.MakeOperator(and);
         }
         if (index == 1 && and.B == null)
         {
             and.B = UIRobotProg.Instance.MakeOperator(and);
         }
     }
     else if (operatorOP.GetType() == typeof(OpOr))
     {
         OpOr or = operatorOP as OpOr;
         if (index == 0 && or.A == null)
         {
             or.A = UIRobotProg.Instance.MakeOperator(or);
         }
         if (index == 1 && or.B == null)
         {
             or.B = UIRobotProg.Instance.MakeOperator(or);
         }
     }
     UIRobotProg.Instance.ChangeProgram();
 }
Пример #2
0
 public void GenerateContent()
 {
     if (aGo != null)
     {
         Destroy(aGo);
         aGo = null;
     }
     if (bGo != null)
     {
         Destroy(bGo);
         bGo = null;
     }
     if (operatorOP.GetType() == typeof(OpAnd))
     {
         OpAnd and = operatorOP as OpAnd;
         aGo = UIRobotProg.Instance.MakeGameObjectOperator(and.A, aTransform);
         bGo = UIRobotProg.Instance.MakeGameObjectOperator(and.B, bTransform);
     }
     else if (operatorOP.GetType() == typeof(OpOr))
     {
         OpOr or = operatorOP as OpOr;
         aGo = UIRobotProg.Instance.MakeGameObjectOperator(or.A, aTransform);
         bGo = UIRobotProg.Instance.MakeGameObjectOperator(or.B, bTransform);
     }
 }
Пример #3
0
        private Expresion ParseExpresionLogica()
        {
            Expresion resultado = ParsearExpresion();

            bool siguienteOperadorLogico = EsOperadorLogica();

            while (siguienteOperadorLogico)
            {
                TokenType tipo = lexer.tokenActual.Type;
                lexer.Aceptar();
                Expresion segundoObjeto = ParsearExpresion();
                switch (tipo)
                {
                case TokenType.yLogico:
                    resultado = new OpAnd(resultado, segundoObjeto);
                    break;

                case TokenType.oLogico:
                    resultado = new OpOr(resultado, segundoObjeto);
                    break;

                default:
                    break;
                }
                siguienteOperadorLogico = EsOperadorLogica();
            }
            return(resultado);
        }
Пример #4
0
        Expression Parse_OpOr()
        {
            Expression expr = Parse_OpXor();

            while (m_Tokenizer.PeekNextToken().type == TokenType.OpOr)
            {
                m_Tokenizer.ConsumeNextToken();
                expr = new OpOr(expr, Parse_OpXor());
            }
            return(expr);
        }
        private SpelNode EatLogicalOrExpression()
        {
            var expr = EatLogicalAndExpression();

            while (PeekIdentifierToken("or") || PeekToken(TokenKind.SYMBOLIC_OR))
            {
                // consume OR
                var t      = TakeToken();
                var rhExpr = EatLogicalAndExpression();
                CheckOperands(t, expr, rhExpr);
                expr = new OpOr(t.StartPos, t.EndPos, expr, rhExpr);
            }

            return(expr);
        }
Пример #6
0
    Operator MakeOpe()
    {
        Operator newOp = null;

        switch (UINewTool.ToolDragAndDrop)
        {
        case UINewTool.Tool.O_And:
            newOp = new OpAnd();
            break;

        case UINewTool.Tool.O_Or:
            newOp = new OpOr();
            break;

        case UINewTool.Tool.O_Equal:
            newOp = new OpEqual();
            break;

        case UINewTool.Tool.O_Inf:
            newOp = new OpInf();
            break;

        case UINewTool.Tool.O_Sup:
            newOp = new OpSup();
            break;

        case UINewTool.Tool.O_Not:
            newOp = new OpNot();
            break;

        case UINewTool.Tool.O_Is:
            newOp = new OpIs();
            break;
        }
        return(newOp);
    }
Пример #7
0
 public void OrsNumbers()
 {
     OpOr bor = new OpOr(new IntLiteralNode("2"), new IntLiteralNode("3"));
     Assert.AreEqual(2 | 3, bor.GetValue(null, null));
 }
Пример #8
0
 public void OrsBooleans()
 {
     OpOr bor = new OpOr(new BooleanLiteralNode("false"), new BooleanLiteralNode("true"));
     Assert.AreEqual(false || true , bor.GetValue(null, null));
 }
Пример #9
0
        public void OrsBooleans()
        {
            OpOr bor = new OpOr(new BooleanLiteralNode("false"), new BooleanLiteralNode("true"));

            Assert.AreEqual(false || true, bor.GetValue(null, null));
        }
Пример #10
0
        public void OrsNumbers()
        {
            OpOr bor = new OpOr(new IntLiteralNode("2"), new IntLiteralNode("3"));

            Assert.AreEqual(2 | 3, bor.GetValue(null, null));
        }
Пример #11
0
 Expression Parse_OpOr()
 {
     Expression expr = Parse_OpXor();
     while (m_Tokenizer.PeekNextToken().type == TokenType.OpOr)
     {
         m_Tokenizer.ConsumeNextToken();
         expr = new OpOr(expr, Parse_OpXor());
     }
     return expr;
 }