fix: fixed token print and string desugar

This commit is contained in:
felipegchi 2022-11-23 13:29:27 -03:00
parent 6dd1bffae2
commit ef4c8f34cd
5 changed files with 5 additions and 23 deletions

View File

@ -267,8 +267,8 @@ fn codegen_all_expr(
eval_ctr(quote, TermTag::Hole),
vec![span_to_num(expr.span), mk_u60(*num)],
),
Str(str) => codegen_str(str),
Hlp(_) => mk_lifted_ctr(eval_ctr(quote, TermTag::Hlp), vec![span_to_num(expr.span)]),
Str(_) => todo!("Strings in codegen"),
Err => panic!("Internal Error: Was not expecting an ERR node inside the HVM checker"),
}
}

View File

@ -227,7 +227,7 @@ fn parse_and_store_book_by_path<'a>(
expand_uses(&mut module, session.diagnostic_sender.clone());
module_to_book(&mut failed, session, module, book);
for idents in state.unbound_top_level.values() {
failed |= parse_and_store_book_by_identifier(session, &idents.iter().nth(0).unwrap(), book);
}

View File

@ -144,7 +144,7 @@ impl fmt::Display for Token {
Token::Num60(n) => write!(f, "{}", n),
Token::Num120(n) => write!(f, "{}u120", n),
Token::Float(start, end) => write!(f, "{}.{}", start, end),
Token::Hole => write!(f, "-"),
Token::Hole => write!(f, "_"),
Token::Plus => write!(f, "+"),
Token::Minus => write!(f, "-"),
Token::Star => write!(f, "*"),

View File

@ -8,24 +8,6 @@ use crate::errors::{PassError, Sugar};
use super::DesugarState;
impl<'a> DesugarState<'a> {
pub(crate) fn desugar_str(&self, range: Range, input: &str) -> Box<desugared::Expr> {
let cons = QualifiedIdent::new_static("String.cons", None, range);
input.chars().rfold(
desugared::Expr::ctr(
range,
QualifiedIdent::new_static("String.nil", None, range),
vec![],
),
|right, chr| {
desugared::Expr::ctr(
range,
cons.clone(),
vec![desugared::Expr::num60(range, chr as u64), right],
)
},
)
}
pub(crate) fn desugar_literal(
&mut self,
range: Range,
@ -38,7 +20,7 @@ impl<'a> DesugarState<'a> {
Literal::NumType(kind_tree::NumType::U120) => desugared::Expr::u120(range),
Literal::Number(kind_tree::Number::U60(num)) => desugared::Expr::num60(range, *num),
Literal::Number(kind_tree::Number::U120(num)) => desugared::Expr::num120(range, *num),
Literal::String(string) => self.desugar_str(range, string),
Literal::String(string) => desugared::Expr::str(range, string.clone()),
Literal::Char(cht) => desugared::Expr::num60(range, *cht as u64),
}
}

View File

@ -70,7 +70,7 @@ pub fn compile_term(expr: &desugared::Expr) -> Box<Term> {
let cons = |numb, next| {
Box::new(Term::Ctr {
name: String::from("U120.new"),
name: String::from("String.cons"),
args: vec![Box::new(Term::U6O { numb }), next],
})
};