Inheritance: Expression
コード例 #1
0
ファイル: Parser.cs プロジェクト: bdoot/IronLanguages
 // or_test: and_test ('or' and_test)*
 private Expression ParseOrTest() {
     Expression ret = ParseAndTest();
     while (MaybeEat(TokenKind.KeywordOr)) {
         var start = ret.StartIndex;
         ret = new OrExpression(ret, ParseAndTest());
         ret.SetLoc(_globalParent, start, GetEnd());
     }
     return ret;
 }
コード例 #2
0
ファイル: _ast.cs プロジェクト: rchandrashekara/main
 internal BoolOp(OrExpression or)
     : this() {
     _values = PythonOps.MakeListNoCopy(Convert(or.Left), Convert(or.Right));
     _op = Or.Instance;
 }
コード例 #3
0
ファイル: Parser.cs プロジェクト: techarch/ironruby
 // or_test: and_test ('or' and_test)*
 private Expression ParseOrTest() {
     Expression ret = ParseAndTest();
     while (MaybeEat(TokenKind.KeywordOr)) {
         SourceLocation start = ret.Start;
         ret = new OrExpression(ret, ParseAndTest());
         ret.SetLoc(start, GetEnd());
     }
     return ret;
 }
コード例 #4
0
 // OrExpression
 public override bool Walk(OrExpression node)
 {
     node.Parent = _currentScope;
     return(base.Walk(node));
 }
コード例 #5
0
ファイル: PythonNameBinder.cs プロジェクト: TerabyteX/main
 public override bool Walk(OrExpression node)
 {
     node.Parent = _currentScope;
     return base.Walk(node);
 }
コード例 #6
0
ファイル: JavascriptGenerator.cs プロジェクト: valdisz/PyToJs
 public override bool Walk(OrExpression node)
 {
     CommonWalk(node);
     return true;
 }
コード例 #7
0
ファイル: JavascriptGenerator.cs プロジェクト: valdisz/PyToJs
        public override void PostWalk(OrExpression node)
        {
            string right = Content();
            string left = Content();

            Content("{0} || {1}", left, right);

            CommonPostWalk(node, true);
        }
コード例 #8
0
 public void PostWalk(OrExpression node)
 {
     PostProcess(node);
 }
コード例 #9
0
 // OrExpression
 public bool Walk(OrExpression node)
 {
     return Process(node);
 }
コード例 #10
0
ファイル: _ast.cs プロジェクト: TerabyteX/main
 internal override AstExpression Revert()
 {
     if (op == And.Instance) {
         AndExpression ae = new AndExpression(
             expr.Revert(values[0]),
             expr.Revert(values[1]));
         return ae;
     } else if (op == Or.Instance) {
         OrExpression oe = new OrExpression(
             expr.Revert(values[0]),
             expr.Revert(values[1]));
         return oe;
     }
     throw PythonOps.TypeError("Unexpected boolean operator: {0}", op);
 }
コード例 #11
0
 public static string Format(OrExpression node)
 {
     return(Format(node.Left) + " Or " + Format(node.Right));
 }
コード例 #12
0
 public virtual void PostWalk(OrExpression node)
 {
 }
コード例 #13
0
 // OrExpression
 public virtual bool Walk(OrExpression node)
 {
     return true;
 }
コード例 #14
0
 public string Visit(PyAst.OrExpression node) => $"({Visit(node.Left)} or {Visit(node.Right)})";