File tree Expand file tree Collapse file tree 3 files changed +15
-5
lines changed
Expand file tree Collapse file tree 3 files changed +15
-5
lines changed Original file line number Diff line number Diff line change @@ -20,14 +20,14 @@ pub struct Variable {
2020
2121pub trait Frame {
2222 fn new ( name : Symbol , parameters : IndexMap < ir:: LowerIdent , Variable > ) -> Self ;
23- fn name ( & self ) -> Symbol ;
23+ fn name ( & self ) -> & ir :: LowerIdent ;
2424 fn allocate_local ( & mut self , symbol : ir:: LowerIdent , var : Variable ) ;
2525}
2626
2727// frame of a function
2828struct FrameAmd64 {
2929 // function name
30- name : Symbol ,
30+ name : ir :: LowerIdent ,
3131 // parameters
3232 parameters : IndexMap < ir:: LowerIdent , Variable > ,
3333 // local variables
@@ -37,14 +37,14 @@ struct FrameAmd64 {
3737impl Frame for FrameAmd64 {
3838 fn new ( name : Symbol , parameters : IndexMap < ir:: LowerIdent , Variable > ) -> Self {
3939 FrameAmd64 {
40- name,
40+ name : ir :: LowerIdent :: new ( name ) ,
4141 parameters,
4242 locals : IndexMap :: new ( ) ,
4343 }
4444 }
4545
46- fn name ( & self ) -> Symbol {
47- self . name
46+ fn name ( & self ) -> & ir :: LowerIdent {
47+ & self . name
4848 }
4949
5050 fn allocate_local ( & mut self , symbol : ir:: LowerIdent , var : Variable ) {
Original file line number Diff line number Diff line change @@ -6,6 +6,7 @@ pub mod ident_pool;
66pub mod ir;
77pub mod parser;
88pub mod symbol_table;
9+ pub mod temp;
910pub mod tokenizer;
1011pub mod type_ast;
1112pub mod type_inference;
Original file line number Diff line number Diff line change 1+ use crate :: ir:: LowerIdent ;
2+
3+ // for variable
4+ #[ derive( Debug , PartialEq , Eq ) ]
5+ pub struct Temp ( pub LowerIdent ) ;
6+
7+ // for function
8+ #[ derive( Debug , PartialEq , Eq ) ]
9+ pub struct Label ( pub LowerIdent ) ;
You can’t perform that action at this time.
0 commit comments