diff options
Diffstat (limited to 'src/comp/util')
| -rw-r--r-- | src/comp/util/common.rs | 29 | ||||
| -rw-r--r-- | src/comp/util/typestate_ann.rs | 16 |
2 files changed, 45 insertions, 0 deletions
diff --git a/src/comp/util/common.rs b/src/comp/util/common.rs index 006bccb0..af000cb6 100644 --- a/src/comp/util/common.rs +++ b/src/comp/util/common.rs @@ -137,6 +137,35 @@ fn log_block(&ast.block b) -> () { log(s.get_str()); } +fn log_ann(&ast.ann a) -> () { + alt (a) { + case (ast.ann_none) { + log("ann_none"); + } + case (ast.ann_type(_,_,_)) { + log("ann_type"); + } + } +} + +fn log_stmt(ast.stmt st) -> () { + let str_writer s = string_writer(); + auto out_ = mkstate(s.get_writer(), 80u); + auto out = @rec(s=out_, + comments=none[vec[front.lexer.cmnt]], + mutable cur_cmnt=0u); + alt (st.node) { + case (ast.stmt_decl(?decl,_)) { + print_decl(out, decl); + } + case (ast.stmt_expr(?ex,_)) { + print_expr(out, ex); + } + case (_) { /* do nothing */ } + } + log(s.get_str()); +} + // // Local Variables: // mode: rust diff --git a/src/comp/util/typestate_ann.rs b/src/comp/util/typestate_ann.rs index b1f12ffb..9ad6e01e 100644 --- a/src/comp/util/typestate_ann.rs +++ b/src/comp/util/typestate_ann.rs @@ -147,6 +147,11 @@ fn ann_prestate(&ts_ann a) -> prestate { ret a.states.prestate; } +fn pp_clone(&pre_and_post p) -> pre_and_post { + ret rec(precondition=bitv.clone(p.precondition), + postcondition=bitv.clone(p.postcondition)); +} + // returns true if a implies b // that is, returns true except if for some bits c and d, // c = 1 and d = 0 @@ -155,3 +160,14 @@ fn implies(bitv.t a, bitv.t b) -> bool { bitv.difference(tmp, a); ret bitv.is_false(tmp); } + +// +// Local Variables: +// mode: rust +// fill-column: 78; +// indent-tabs-mode: nil +// c-basic-offset: 4 +// buffer-file-coding-system: utf-8-unix +// compile-command: "make -k -C $RBUILD 2>&1 | sed -e 's/\\/x\\//x:\\//g'"; +// End: +// |