remove enums

This commit is contained in:
2026-06-26 17:38:55 +02:00
parent 6fe971c615
commit 43a20c99f6
8 changed files with 37 additions and 76 deletions

View File

@@ -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")?;