コード例 #1
0
ファイル: PolicyOperator.cs プロジェクト: ssavarala/nhin-d
        static PolicyOperator()
        {
            var logicalAnd = new Logical_And();

            LOGICAL_AND = new LogicalAnd <T>(logicalAnd, LogicalAndDelegate());
            TokenOperatorMap[LOGICAL_AND.GetHashCode()] = LOGICAL_AND;

            var logicalOr = new LogicalOr();

            LOGICAL_OR = new LogicalOr <T>(logicalOr, LogicalOrDelegate());
            TokenOperatorMap[LOGICAL_OR.GetHashCode()] = LOGICAL_OR;


            var size = new Size();

            SIZE = new Size <T>(size, SizeDelegate());
            TokenOperatorMap[SIZE.GetHashCode()] = SIZE;

            var logicalNot = new Logical_Not();

            LOGICAL_NOT = new Not <T>(logicalNot, LogicalNotDelegate());
            TokenOperatorMap[LOGICAL_NOT.GetHashCode()] = LOGICAL_NOT;

            var uriValid = new Uri_Valid();

            URI_VALIDATE = new UriValid <T>(uriValid);
            TokenOperatorMap[URI_VALIDATE.GetHashCode()] = URI_VALIDATE;
        }
コード例 #2
0
        public static ObservableCollection <LogicalBase> CreateXorShemaFrame()
        {
            LogicalBase or     = new LogicalOr();
            LogicalBase andOne = new LogicalAnd();
            LogicalBase not    = new LogicalNot();
            LogicalBase andTwo = new LogicalAnd();

            LogicalBase spaceOne = new LogicalSpace();
            LogicalBase spaceTwo = new LogicalSpace();

            or.Outputs[0].AttachObserver(andTwo.Inputs[0]);
            not.Outputs[0].AttachObserver(andTwo.Inputs[1]);

            not.Inputs[0].AttachObservable(andOne.Outputs[0]);

            spaceOne.Outputs[0].AttachObserver(or.Inputs[0]);
            spaceOne.Outputs[0].AttachObserver(andOne.Inputs[0]);

            spaceTwo.Outputs[0].AttachObserver(or.Inputs[1]);
            spaceTwo.Outputs[0].AttachObserver(andOne.Inputs[1]);

            return(new ObservableCollection <LogicalBase>()
            {
                or, not, andOne, andTwo, spaceOne, spaceTwo
            });
        }
コード例 #3
0
ファイル: CppCodegen.cs プロジェクト: thecocce/multipascal
 public override bool Visit(LogicalOr node)
 {
     traverse(node.left);
     outputCode(" | ", false, false);
     traverse(node.right);
     //Visit((LogicalBinaryExpression) node);
     return(true);
 }
コード例 #4
0
        public void CreatingMultiInputsElementOr()
        {
            LogicalBase or = new LogicalOr(3);

            Switch switchOne   = new Switch();
            Switch switchTwo   = new Switch();
            Switch switchThree = new Switch();

            or.Inputs[0].AttachObservable(switchOne.Output);
            or.Inputs[1].AttachObservable(switchTwo.Output);
            or.Inputs[2].AttachObservable(switchThree.Output);

            switchOne.Switching();
            Assert.AreEqual(true, or.Outputs[0].SignalValue);
        }
コード例 #5
0
        public void LogicalOrWorkTest()
        {
            Switch      switchOne = new Switch();
            Switch      switchTwo = new Switch();
            LogicalBase or        = new LogicalOr();

            switchOne.Output.AttachObserver(or.Inputs[0]);
            switchTwo.Output.AttachObserver(or.Inputs[1]);

            switchOne.Switching();
            Assert.AreEqual(true, or.Outputs[0].SignalValue);

            switchTwo.Switching();
            Assert.AreEqual(true, or.Outputs[0].SignalValue);

            switchOne.Switching();
            Assert.AreEqual(true, or.Outputs[0].SignalValue);

            switchTwo.Switching();
            Assert.AreEqual(false, or.Outputs[0].SignalValue);
        }
コード例 #6
0
        void LogicOr(out Expression exp)
        {
            Expression second;

            LogicAnd(out exp);
            while (la.kind == 26)
            {
                Get();
                Token tok = t;
                LogicAnd(out second);
                if (!ExpectBool(exp, tok, false))
                {
                    return;
                }
                if (!ExpectBool(second, tok, true))
                {
                    return;
                }
                exp = new LogicalOr((TypedExpression <bool>)exp, (TypedExpression <bool>)second);
            }
        }
コード例 #7
0
ファイル: VirtualMachine.cs プロジェクト: yongaru/fuse-studio
 object Evaluate(LogicalOr o)
 {
     return((bool)Evaluate(o.Left) || (bool)Evaluate(o.Right));
 }
コード例 #8
0
 public virtual T Visit(LogicalOr node)
 {
     return(Visit((LogicalBinaryExpression)node));
 }
コード例 #9
0
 public virtual void Visit(LogicalOr node)
 {
 }
コード例 #10
0
 public override bool Visit(LogicalOr node)
 {
     Visit((LogicalBinaryExpression)node);
     return(true);
 }
コード例 #11
0
 public override BaseType Visit(LogicalOr node)
 {
     StoreExpr(node);
     EnsureOfType <BoolType>(node.Left.Accept(this), node.Right.Accept(this));
     return(new BoolType());
 }
コード例 #12
0
ファイル: DefaultVisitor.cs プロジェクト: diepvriezer/ql
 public virtual T Visit(LogicalOr node)
 {
     return(VisitBinary(node));
 }
コード例 #13
0
 public virtual void Visit(LogicalOr node)
 {
 }
コード例 #14
0
 void LogicOr(out Expression exp)
 {
     Expression second;
     LogicAnd(out exp);
     while (la.kind == 26) {
     Get();
     Token tok = t;
     LogicAnd(out second);
     if (!ExpectBool(exp, tok, false)) { return; }
     if (!ExpectBool(second, tok, true)) { return; }
     exp = new LogicalOr((TypedExpression<bool>)exp, (TypedExpression<bool>)second);
     }
 }
コード例 #15
0
 private Expression ParseOrExpression(TokenSet followers)
   //^ ensures followers[this.currentToken] || this.currentToken == Token.EndOfFile;
 {
   TokenSet followerOrOr = followers|Token.Or;
   Expression result = this.ParseAndExpression(followerOrOr);
   while (this.currentToken == Token.Or) {
     SourceLocationBuilder slb = new SourceLocationBuilder(result.SourceLocation);
     this.GetNextToken();
     Expression operand2 = this.ParseAndExpression(followerOrOr);
     slb.UpdateToSpan(operand2.SourceLocation);
     result = new LogicalOr(result, operand2, slb);
   }
   //^ assume followers[this.currentToken] || this.currentToken == Token.EndOfFile;
   return result;
 }
コード例 #16
0
 public override string Visit(LogicalOr node)
 {
     return(VisitBinary("||", node));
 }