Add parsing of string literals
This commit is contained in:
parent
d5b0e3ebf7
commit
b9dfa9b1ce
@ -29,6 +29,7 @@ pub enum TypeKind {
|
|||||||
pub enum Literal {
|
pub enum Literal {
|
||||||
Number(u64),
|
Number(u64),
|
||||||
Bool(bool),
|
Bool(bool),
|
||||||
|
String(String),
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
|
@ -84,6 +84,10 @@ impl Parse for PrimaryExpression {
|
|||||||
Kind::Literal(Literal::Number(*v)),
|
Kind::Literal(Literal::Number(*v)),
|
||||||
stream.get_range().unwrap(),
|
stream.get_range().unwrap(),
|
||||||
),
|
),
|
||||||
|
Token::StringLit(v) => Expression(
|
||||||
|
Kind::Literal(Literal::String(v.clone())),
|
||||||
|
stream.get_range().unwrap(),
|
||||||
|
),
|
||||||
Token::True => Expression(
|
Token::True => Expression(
|
||||||
Kind::Literal(Literal::Bool(true)),
|
Kind::Literal(Literal::Bool(true)),
|
||||||
stream.get_range().unwrap(),
|
stream.get_range().unwrap(),
|
||||||
|
@ -204,6 +204,7 @@ impl ast::Literal {
|
|||||||
match *self {
|
match *self {
|
||||||
ast::Literal::Number(v) => mir::Literal::Vague(mir::VagueLiteral::Number(v)),
|
ast::Literal::Number(v) => mir::Literal::Vague(mir::VagueLiteral::Number(v)),
|
||||||
ast::Literal::Bool(v) => mir::Literal::Bool(v),
|
ast::Literal::Bool(v) => mir::Literal::Bool(v),
|
||||||
|
ast::Literal::String(_) => todo!("process string literal"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user