aboutsummaryrefslogtreecommitdiff
path: root/src/comp/util
diff options
context:
space:
mode:
Diffstat (limited to 'src/comp/util')
-rw-r--r--src/comp/util/common.rs29
-rw-r--r--src/comp/util/typestate_ann.rs16
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:
+//