diff options
| author | Graydon Hoare <[email protected]> | 2010-09-20 13:06:49 -0700 |
|---|---|---|
| committer | Graydon Hoare <[email protected]> | 2010-09-20 13:06:49 -0700 |
| commit | 7ab3b305e4f2b8f7d1e24c45756cfe23b0859ddc (patch) | |
| tree | 4897e598c2a06a76bfd0c2e709e6828126b29d29 /src/boot/fe | |
| parent | Beginnings of post-resolve simplify pass. (diff) | |
| download | rust-7ab3b305e4f2b8f7d1e24c45756cfe23b0859ddc.tar.xz rust-7ab3b305e4f2b8f7d1e24c45756cfe23b0859ddc.zip | |
Move id counters into sess in preparation for moving desugaring to middle-end.
Diffstat (limited to 'src/boot/fe')
| -rw-r--r-- | src/boot/fe/cexp.ml | 20 | ||||
| -rw-r--r-- | src/boot/fe/item.ml | 9 | ||||
| -rw-r--r-- | src/boot/fe/parser.ml | 38 |
3 files changed, 19 insertions, 48 deletions
diff --git a/src/boot/fe/cexp.ml b/src/boot/fe/cexp.ml index d856b131..ac05105e 100644 --- a/src/boot/fe/cexp.ml +++ b/src/boot/fe/cexp.ml @@ -381,9 +381,6 @@ and eval_cexp (env:env) (exp:cexp) : cdir array = let ps = env.env_ps in let p = make_parser - ps.pstate_temp_id - ps.pstate_node_id - ps.pstate_opaque_id ps.pstate_crate_cache ps.pstate_sess ps.pstate_get_mod @@ -432,12 +429,7 @@ and eval_cexp (env:env) (exp:cexp) : cdir array = end u.use_meta in - ps.pstate_get_mod - meta_pat - id - ps.pstate_node_id - ps.pstate_opaque_id - ps.pstate_crate_cache + ps.pstate_get_mod meta_pat id ps.pstate_crate_cache in iflog ps begin @@ -631,9 +623,6 @@ let parse_crate_file (crate_cache:(crate_id, Ast.mod_items) Hashtbl.t) : Ast.crate = let fname = Session.filename_of sess.Session.sess_in in - let tref = ref (Temp 0) in - let nref = ref (Node 0) in - let oref = ref (Opaque 0) in let required = Hashtbl.create 4 in let required_syms = Hashtbl.create 4 in let files = Hashtbl.create 0 in @@ -670,7 +659,7 @@ let parse_crate_file | Some (PVAL_num n) -> LIT_INT n in let ps = - make_parser tref nref oref crate_cache sess get_mod get_cenv_tok + make_parser crate_cache sess get_mod get_cenv_tok infer_lib_name required required_syms fname in let env = { env_bindings = bindings; @@ -737,9 +726,6 @@ let parse_src_file (crate_cache:(crate_id, Ast.mod_items) Hashtbl.t) : Ast.crate = let fname = Session.filename_of sess.Session.sess_in in - let tref = ref (Temp 0) in - let nref = ref (Node 0) in - let oref = ref (Opaque 0) in let required = Hashtbl.create 0 in let required_syms = Hashtbl.create 0 in let get_cenv_tok ps ident = @@ -747,7 +733,7 @@ let parse_src_file ident) ps) in let ps = - make_parser tref nref oref crate_cache sess get_mod get_cenv_tok + make_parser crate_cache sess get_mod get_cenv_tok infer_lib_name required required_syms fname in with_err_handling sess diff --git a/src/boot/fe/item.ml b/src/boot/fe/item.ml index 00eb8387..c747713b 100644 --- a/src/boot/fe/item.ml +++ b/src/boot/fe/item.ml @@ -1202,14 +1202,7 @@ and parse_use let apos = lexpos ps in let bpos = lexpos ps in let id = (span ps apos bpos ()).id in - let (path, items) = - ps.pstate_get_mod - meta - id - ps.pstate_node_id - ps.pstate_opaque_id - ps.pstate_crate_cache - in + let (path, items) = ps.pstate_get_mod meta id ps.pstate_crate_cache in let bpos = lexpos ps in expect ps SEMI; let rlib = diff --git a/src/boot/fe/parser.ml b/src/boot/fe/parser.ml index 883ee01d..3cf464ca 100644 --- a/src/boot/fe/parser.ml +++ b/src/boot/fe/parser.ml @@ -6,10 +6,8 @@ open Token;; type get_mod_fn = (Ast.meta_pat -> node_id - -> (node_id ref) - -> (opaque_id ref) - -> (crate_id, Ast.mod_items) Hashtbl.t - -> (filename * Ast.mod_items)) + -> (crate_id, Ast.mod_items) Hashtbl.t + -> (filename * Ast.mod_items)) ;; type pstate = @@ -20,9 +18,6 @@ type pstate = pstate_lexbuf : Lexing.lexbuf; pstate_file : filename; pstate_sess : Session.sess; - pstate_temp_id : temp_id ref; - pstate_node_id : node_id ref; - pstate_opaque_id : opaque_id ref; pstate_crate_cache : (crate_id, Ast.mod_items) Hashtbl.t; pstate_get_mod : get_mod_fn; pstate_get_cenv_tok : pstate -> Ast.ident -> token; @@ -43,9 +38,6 @@ let iflog ps thunk = ;; let make_parser - (tref:temp_id ref) - (nref:node_id ref) - (oref:opaque_id ref) (crate_cache:(crate_id, Ast.mod_items) Hashtbl.t) (sess:Session.sess) (get_mod:get_mod_fn) @@ -69,9 +61,6 @@ let make_parser pstate_lexbuf = lexbuf; pstate_file = fname; pstate_sess = sess; - pstate_temp_id = tref; - pstate_node_id = nref; - pstate_opaque_id = oref; pstate_crate_cache = crate_cache; pstate_get_mod = get_mod; pstate_get_cenv_tok = get_cenv_tok; @@ -94,14 +83,16 @@ let lexpos (ps:pstate) : pos = ;; let next_node_id (ps:pstate) : node_id = - let id = !(ps.pstate_node_id) in - ps.pstate_node_id := Node ((int_of_node id)+1); + let r = ps.pstate_sess.Session.sess_node_id_counter in + let id = !r in + r := Node ((int_of_node id)+1); id ;; let next_opaque_id (ps:pstate) : opaque_id = - let id = !(ps.pstate_opaque_id) in - ps.pstate_opaque_id := Opaque ((int_of_opaque id)+1); + let r = ps.pstate_sess.Session.sess_opaque_id_counter in + let id = !r in + r := Opaque ((int_of_opaque id)+1); id ;; @@ -203,14 +194,15 @@ let build_tmp (apos:pos) (bpos:pos) : (temp_id * Ast.lval * Ast.stmt) = - let nonce = !(ps.pstate_temp_id) in - ps.pstate_temp_id := Temp ((int_of_temp nonce)+1); + let r = ps.pstate_sess.Session.sess_temp_id_counter in + let id = !r in + r := Temp ((int_of_temp id)+1); iflog ps - (fun _ -> log ps "building temporary %d" (int_of_temp nonce)); - let decl = Ast.DECL_slot (Ast.KEY_temp nonce, (span ps apos bpos slot)) in + (fun _ -> log ps "building temporary %d" (int_of_temp id)); + let decl = Ast.DECL_slot (Ast.KEY_temp id, (span ps apos bpos slot)) in let declstmt = span ps apos bpos (Ast.STMT_decl decl) in - let tmp = Ast.LVAL_base (span ps apos bpos (Ast.BASE_temp nonce)) in - (nonce, tmp, declstmt) + let tmp = Ast.LVAL_base (span ps apos bpos (Ast.BASE_temp id)) in + (id, tmp, declstmt) ;; (* Simple helpers *) |