Add parsing of string literals

This commit is contained in:
Sofia 2025-07-14 17:39:48 +03:00
parent d5b0e3ebf7
commit b9dfa9b1ce
3 changed files with 6 additions and 0 deletions

View File

@ -29,6 +29,7 @@ pub enum TypeKind {
pub enum Literal {
Number(u64),
Bool(bool),
String(String),
}
#[derive(Debug, Clone)]

View File

@ -84,6 +84,10 @@ impl Parse for PrimaryExpression {
Kind::Literal(Literal::Number(*v)),
stream.get_range().unwrap(),
),
Token::StringLit(v) => Expression(
Kind::Literal(Literal::String(v.clone())),
stream.get_range().unwrap(),
),
Token::True => Expression(
Kind::Literal(Literal::Bool(true)),
stream.get_range().unwrap(),

View File

@ -204,6 +204,7 @@ impl ast::Literal {
match *self {
ast::Literal::Number(v) => mir::Literal::Vague(mir::VagueLiteral::Number(v)),
ast::Literal::Bool(v) => mir::Literal::Bool(v),
ast::Literal::String(_) => todo!("process string literal"),
}
}
}