コード例 #1
0
def returnstmt(s):
    outparams = da.Tuple(*[da.App(p) for p in method_context.outparams])
    values = da.Tuple(*s.args)
    opa = da.AssignStmt(outparams,values)
    opa.lineno = s.lineno
    res = opa.to_ivy()
    scope_context.returns = True
    return res
コード例 #2
0
def p_stmt_var_assign_expr_semi(p):
    'stmt : VAR symbols ASSIGN exprs SEMI'
    p[0] = da.VarStmt(da.AssignStmt(da.Tuple(*[da.App(x) for x in p[2]]),da.Tuple(*p[4])))
    p[0].lineno = p.lineno(1);
コード例 #3
0
def p_stmt_while_expr_modifies_invariant_lcb_stmts_rcb(p):
    'stmt : WHILE expr modifies invariants LCB stmts RCB'
    p[0] = da.WhileStmt(p[2],p[3],da.App(da.And(),*p[4]),p[6])
    p[0].lineno = p.lineno(1)
コード例 #4
0
def p_lvalue_symbol(p):
    'lvalue : symbol'
    p[0] = da.App(p[1])
コード例 #5
0
def p_expr_expr_GT_expr(p):
    'expr : expr GT expr'
    p[0] = da.App(da.InfixRelation(p[2]),p[1],p[3])
    p[0].lineno = p.lineno(2)
コード例 #6
0
def p_expr_expr_TIMES_expr(p):
    'expr : expr TIMES expr'
    p[0] = da.App(da.InfixSymbol(p[2]),p[1],p[3])
    p[0].lineno = p.lineno(2)
コード例 #7
0
def p_expr_MINUS_expr(p):
    'expr : MINUS expr'
    p[0] = da.App(da.Symbol(p[1]),p[2])
    p[0].lineno = p.lineno(2)
コード例 #8
0
def p_expr_expr_bangeq_expr(p):
    'expr : expr BANGEQ expr'
    p[0] = da.App(da.Not(),da.App(da.Eq(),p[1],p[3]))
コード例 #9
0
def p_expr_expr_eqeq_expr(p):
    'expr : expr EQEQ expr'
    p[0] = da.App(da.Eq(),p[1],p[3])
コード例 #10
0
def p_expr_expr_not_expr(p):
    'expr : BANG expr'
    p[0] = da.App(da.Not(),p[2])
コード例 #11
0
def p_expr_expr_iff_expr(p):
    'expr : expr IFF expr'
    p[0] = da.App(da.Iff(),p[1],p[3])
コード例 #12
0
def p_expr_expr_implies_expr(p):
    'expr : expr IMPLIES expr'
    p[0] = da.App(da.Implies(),p[1],p[3])
コード例 #13
0
def p_expr_expr_or_expr(p):
    'expr : expr OR expr'
    p[0] = da.App(da.Or(),p[1],p[3])
コード例 #14
0
def p_expr_expr_and_expr(p):
    'expr : expr AND expr'
    p[0] = da.App(da.And(),p[1],p[3])
コード例 #15
0
def p_expr_symbol(p):
    'expr : symbol'
    p[0] = da.App(p[1])
コード例 #16
0
def subst_symbols_app(s,m):
    return da.App(s.symbol.subst_symbols(m),
                  *[subst_symbols_list(a,m) for a in s.args])