mirror of
https://github.com/azur1s/bobbylisp.git
synced 2024-10-16 02:37:40 -05:00
cleanup
This commit is contained in:
parent
cf3dccca2c
commit
4e6acf7038
|
@ -47,7 +47,6 @@ impl Diagnostics {
|
||||||
_ => None,
|
_ => None,
|
||||||
});
|
});
|
||||||
|
|
||||||
// TODO: Lowering error
|
|
||||||
lex_error.into_iter()
|
lex_error.into_iter()
|
||||||
.map(|e| e.map(|e| e.to_string()))
|
.map(|e| e.map(|e| e.to_string()))
|
||||||
.chain(parse_error.into_iter().map(|e| e.map(|tok| tok.to_string())))
|
.chain(parse_error.into_iter().map(|e| e.map(|tok| tok.to_string())))
|
||||||
|
@ -148,4 +147,4 @@ impl Diagnostics {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,21 +40,19 @@ pub struct LoweringError {
|
||||||
pub note: Option<String>,
|
pub note: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl IR {
|
|
||||||
pub fn new(kind: IRKind, span: Range<usize>) -> Self {
|
|
||||||
Self { kind, span }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn ast_to_ir(ast: Vec<(Expr, Range<usize>)>) -> (Vec<IR>, Vec<LoweringError>) {
|
pub fn ast_to_ir(ast: Vec<(Expr, Range<usize>)>) -> (Vec<IR>, Vec<LoweringError>) {
|
||||||
let mut irs = Vec::new();
|
let mut irs = Vec::new();
|
||||||
let mut errors = Vec::new();
|
let mut errors = Vec::new();
|
||||||
for expr in ast {
|
for expr in ast {
|
||||||
let ir_kind = expr_to_ir(&expr.0);
|
let ir_kind = expr_to_ir(&expr.0);
|
||||||
if let Some(err) = ir_kind.1 {
|
match ir_kind {
|
||||||
errors.push(err);
|
(Some(ir), None) => {
|
||||||
} else {
|
irs.push(IR { kind: ir, span: expr.1 });
|
||||||
irs.push(IR::new(ir_kind.0.unwrap(), expr.1));
|
},
|
||||||
|
(None, Some(err)) => {
|
||||||
|
errors.push(err);
|
||||||
|
},
|
||||||
|
_ => unreachable!(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
(irs, errors)
|
(irs, errors)
|
||||||
|
@ -351,4 +349,4 @@ fn closet_intrinsic(got: String) -> String {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
closest
|
closest
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,4 +7,4 @@ end;
|
||||||
|
|
||||||
fun main: void = do
|
fun main: void = do
|
||||||
factorial(5) |> @write(_);
|
factorial(5) |> @write(_);
|
||||||
end;
|
end;
|
||||||
|
|
Loading…
Reference in a new issue