remove enums
This commit is contained in:
@@ -77,10 +77,6 @@ pub enum Stmt {
|
||||
name: Token,
|
||||
fields: Vec<Param>,
|
||||
},
|
||||
Enum {
|
||||
name: Token,
|
||||
variants: Vec<Token>,
|
||||
},
|
||||
}
|
||||
|
||||
pub static NEXT_EXPR_ID: AtomicUsize = AtomicUsize::new(0);
|
||||
@@ -195,9 +191,6 @@ impl Parser {
|
||||
if self.match_token(&[TokenType::KeywordStruct]) {
|
||||
return self.struct_declaration();
|
||||
}
|
||||
if self.match_token(&[TokenType::KeywordEnum]) {
|
||||
return self.enum_declaration();
|
||||
}
|
||||
return error!(
|
||||
self.peek().loc,
|
||||
"statements not allowed outside function body"
|
||||
@@ -281,21 +274,6 @@ impl Parser {
|
||||
Ok(Stmt::Struct { name, fields })
|
||||
}
|
||||
|
||||
fn enum_declaration(&mut self) -> Result<Stmt, ZernError> {
|
||||
let name = self.consume(TokenType::Identifier, "expected enum name")?;
|
||||
|
||||
self.consume(TokenType::Indent, "expected indent after enum name")?;
|
||||
|
||||
let mut variants = vec![];
|
||||
while !self.eof() && !self.check(&TokenType::Dedent) {
|
||||
variants.push(self.consume(TokenType::Identifier, "expected variant name")?);
|
||||
}
|
||||
|
||||
self.consume(TokenType::Dedent, "expected dedent after enum variants")?;
|
||||
|
||||
Ok(Stmt::Enum { name, variants })
|
||||
}
|
||||
|
||||
fn const_declaration(&mut self) -> Result<Stmt, ZernError> {
|
||||
let name = self.consume(TokenType::Identifier, "expected const name")?;
|
||||
self.consume(TokenType::Equal, "expected '=' after const name")?;
|
||||
|
||||
Reference in New Issue
Block a user