Skip to content

Commit 6794a68

Browse files
committed
Add SymbolGen to Macros, rename to Parser
1 parent 78d47b4 commit 6794a68

File tree

5 files changed

+109
-114
lines changed

5 files changed

+109
-114
lines changed

Cargo.lock

Lines changed: 0 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,6 @@ lazy_static = "1.4"
5353
num = "0.4.3"
5454
smallvec = "1.11"
5555

56-
generic_symbolic_expressions = "5.0.4"
57-
5856
egraph-serialize = { version = "0.2.0", default-features = false }
5957

6058
# binary dependencies

src/ast/desugar.rs

Lines changed: 13 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,12 @@ use crate::*;
66
/// makes rules into a SSA-like format (see [`NormFact`]).
77
pub(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`]).
2423
pub(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

Comments
 (0)