コード例 #1
0
 public void PostWalk(AugAssignStatement node)
 {
     PostProcess(node);
 }
コード例 #2
0
 // AugAssignStatement
 public bool Walk(AugAssignStatement node)
 {
     return Process(node);
 }
コード例 #3
0
 public override void PostWalk(AugAssignStatement node)
 {
     node.Left.Walk(fdef);
 }
コード例 #4
0
 // AugAssignStmt
 public override bool Walk(AugAssignStatement node)
 {
     return true;
 }
コード例 #5
0
 public override bool Walk(AugAssignStatement node)
 {
     Emit(node); return false;
 }
コード例 #6
0
 public virtual void PostWalk(AugAssignStatement node)
 {
 }
コード例 #7
0
 // AugAssignStatement
 public virtual bool Walk(AugAssignStatement node)
 {
     return true;
 }
コード例 #8
0
ファイル: Binder.cs プロジェクト: FabioNascimento/DICommander
 // AugAssignStmt
 public override bool Walk(AugAssignStatement node)
 {
     node.Left.Walk(define);
     return true;
 }
コード例 #9
0
ファイル: Parser.cs プロジェクト: FabioNascimento/DICommander
        //expr_stmt: testlist (augassign testlist | ('=' testlist)*)
        //augassign: '+=' | '-=' | '*=' | '/=' | '%=' | '&=' | '|=' | '^=' | '<<=' | '>>=' | '**=' | '//='
        private Statement ParseExprStmt()
        {
            Expression lhs = ParseTestListAsExpr(false);

            if (MaybeEat(TokenKind.Assign)) {
                List<Expression> l = new List<Expression>();
                l.Add(lhs);
                do {
                    Expression e = ParseTestListAsExpr(false);
                    l.Add(e);
                } while (MaybeEat(TokenKind.Assign));

                int last = l.Count - 1;
                Expression rhs = (Expression)l[last];
                l.RemoveAt(last);
                Expression[] lhss = l.ToArray();

                //We check for legal assignment targets during code generation rather than parsing
                Statement ret = new AssignStatement(lhss, rhs);
                ret.SetLoc(GetExternal(), lhs.Start, GetEnd());
                return ret;
            } else {
                BinaryOperator op = GetAssignOp(PeekToken());
                if (op == null) {
                    Statement ret = new ExpressionStatement(lhs);
                    ret.SetLoc(GetExternal(), lhs.Start, GetEnd());
                    return ret;
                } else {
                    NextToken();
                    Expression rhs = ParseTestListAsExpr(false);
                    Statement ret = new AugAssignStatement(op, lhs, rhs);
                    ret.SetLoc(GetExternal(), lhs.Start, GetEnd());
                    return ret;
                }
            }
        }