From c8f4b4d23a55b73cc7d1aa7e4db4a37100c4116d Mon Sep 17 00:00:00 2001
From: David Li
Date: Sun, 26 Nov 2017 19:33:36 -0500
Subject: Thread the current level through the program
---
src/semantic/translate.rs | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
(limited to 'src/semantic/translate.rs')
diff --git a/src/semantic/translate.rs b/src/semantic/translate.rs
index bcbad3a..4a2b6c5 100644
--- a/src/semantic/translate.rs
+++ b/src/semantic/translate.rs
@@ -9,6 +9,7 @@ pub enum Expression {
}
pub struct Translate {
+ pub temp: temp::Temp,
level_counter: usize,
_frametype: ::std::marker::PhantomData,
}
@@ -26,6 +27,7 @@ pub enum Level<'a, F>
impl Translate {
pub fn new() -> Translate {
Translate {
+ temp: temp::Temp::new(),
level_counter: 0,
_frametype: ::std::marker::PhantomData,
}
@@ -34,13 +36,12 @@ impl Translate {
pub fn make_level<'a>(
&mut self,
parent: &'a Level,
- name: temp::TempLabel,
formals: Vec) -> Level<'a, F> {
let id = self.level_counter;
self.level_counter += 1;
Level::Level {
parent: parent,
- frame: F::new(name, formals),
+ frame: F::new(self.temp.next_label(), formals),
unique_id: id,
}
}
--
cgit v1.2.3