@@ -6,13 +6,12 @@ use crate::*;
66/// makes rules into a SSA-like format (see [`NormFact`]).
77pub ( crate ) fn desugar_program (
88 program : Vec < Command > ,
9- symbol_gen : & mut SymbolGen ,
9+ parser : & mut Parser ,
1010 seminaive_transform : bool ,
11- macros : & Macros ,
1211) -> Result < Vec < NCommand > , Error > {
1312 let mut res = vec ! [ ] ;
1413 for command in program {
15- let desugared = desugar_command ( command, symbol_gen , seminaive_transform, macros ) ?;
14+ let desugared = desugar_command ( command, parser , seminaive_transform) ?;
1615 res. extend ( desugared) ;
1716 }
1817 Ok ( res)
@@ -23,9 +22,8 @@ pub(crate) fn desugar_program(
2322/// makes rules into a SSA-like format (see [`NormFact`]).
2423pub ( crate ) fn desugar_command (
2524 command : Command ,
26- symbol_gen : & mut SymbolGen ,
25+ parser : & mut Parser ,
2726 seminaive_transform : bool ,
28- macros : & Macros ,
2927) -> Result < Vec < NCommand > , Error > {
3028 let res = match command {
3129 Command :: SetOption { name, value } => {
@@ -114,10 +112,9 @@ pub(crate) fn desugar_command(
114112 let s = std:: fs:: read_to_string ( & file)
115113 . unwrap_or_else ( |_| panic ! ( "{span} Failed to read file {file}" ) ) ;
116114 return desugar_program (
117- parse_program ( Some ( file) , & s, macros ) ?,
118- symbol_gen ,
115+ parse_program ( Some ( file) , & s, parser ) ?,
116+ parser ,
119117 seminaive_transform,
120- macros,
121118 ) ;
122119 }
123120 Command :: Rule {
@@ -147,7 +144,7 @@ pub(crate) fn desugar_command(
147144 span,
148145 expr,
149146 schedule,
150- } => desugar_simplify ( & expr, & schedule, span, symbol_gen , macros ) ,
147+ } => desugar_simplify ( & expr, & schedule, span, parser ) ,
151148 Command :: RunSchedule ( sched) => {
152149 vec ! [ NCommand :: RunSchedule ( sched. clone( ) ) ]
153150 }
@@ -174,9 +171,9 @@ pub(crate) fn desugar_command(
174171 // ((extract {fresh} {variants}))
175172 // :ruleset {fresh_ruleset})
176173 // (run {fresh_ruleset} 1)
177- let fresh = symbol_gen. fresh ( & "desugar_qextract_var" . into ( ) ) ;
178- let fresh_ruleset = symbol_gen. fresh ( & "desugar_qextract_ruleset" . into ( ) ) ;
179- let fresh_rulename = symbol_gen. fresh ( & "desugar_qextract_rulename" . into ( ) ) ;
174+ let fresh = parser . symbol_gen . fresh ( & "desugar_qextract_var" . into ( ) ) ;
175+ let fresh_ruleset = parser . symbol_gen . fresh ( & "desugar_qextract_ruleset" . into ( ) ) ;
176+ let fresh_rulename = parser . symbol_gen . fresh ( & "desugar_qextract_rulename" . into ( ) ) ;
180177 let rule = Rule {
181178 span : span. clone ( ) ,
182179 body : vec ! [ Fact :: Eq (
@@ -221,7 +218,7 @@ pub(crate) fn desugar_command(
221218 vec ! [ NCommand :: Pop ( span, num) ]
222219 }
223220 Command :: Fail ( span, cmd) => {
224- let mut desugared = desugar_command ( * cmd, symbol_gen , seminaive_transform, macros ) ?;
221+ let mut desugared = desugar_command ( * cmd, parser , seminaive_transform) ?;
225222
226223 let last = desugared. pop ( ) . unwrap ( ) ;
227224 desugared. push ( NCommand :: Fail ( span, Box :: new ( last) ) ) ;
@@ -325,11 +322,10 @@ fn desugar_simplify(
325322 expr : & Expr ,
326323 schedule : & Schedule ,
327324 span : Span ,
328- symbol_gen : & mut SymbolGen ,
329- macros : & Macros ,
325+ parser : & mut Parser ,
330326) -> Vec < NCommand > {
331327 let mut res = vec ! [ NCommand :: Push ( 1 ) ] ;
332- let lhs = symbol_gen. fresh ( & "desugar_simplify" . into ( ) ) ;
328+ let lhs = parser . symbol_gen . fresh ( & "desugar_simplify" . into ( ) ) ;
333329 res. push ( NCommand :: CoreAction ( Action :: Let (
334330 span. clone ( ) ,
335331 lhs,
@@ -343,9 +339,8 @@ fn desugar_simplify(
343339 variants : 0 ,
344340 expr : Expr :: Var ( span. clone ( ) , lhs) ,
345341 } ,
346- symbol_gen ,
342+ parser ,
347343 false ,
348- macros,
349344 )
350345 . unwrap ( ) ,
351346 ) ;
0 commit comments