diff options
| author | Gustav Sörnäs <gustav@sornas.net> | 2021-01-15 12:48:01 +0100 |
|---|---|---|
| committer | Gustav Sörnäs <gustav@sornas.net> | 2021-01-15 16:58:08 +0100 |
| commit | c7d91769c4d6ff8091956adfa6c38c7a2c141b65 (patch) | |
| tree | 39e46a4571cee6bb293e86320d1da2ca2924c819 /src | |
| parent | 71c3e64fc732d87e043ba4fb21716b3194678051 (diff) | |
| download | sylt-c7d91769c4d6ff8091956adfa6c38c7a2c141b65.tar.gz | |
parse_type
Diffstat (limited to 'src')
| -rw-r--r-- | src/compiler.rs | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/compiler.rs b/src/compiler.rs index 3c5e8a4..282e582 100644 --- a/src/compiler.rs +++ b/src/compiler.rs @@ -434,7 +434,7 @@ impl Compiler { Token::Identifier(name) => { self.eat(); expect!(self, Token::Colon, "Expected ':' after parameter name."); - if let Ok(typ) = self.type_ident() { + if let Ok(typ) = self.parse_type() { function_block.args.push(typ.clone()); if let Ok(slot) = self.define_variable(&name, typ, &mut function_block) { self.stack_mut()[slot].active = true; @@ -452,7 +452,7 @@ impl Compiler { } Token::Arrow => { self.eat(); - if let Ok(typ) = self.type_ident() { + if let Ok(typ) = self.parse_type() { return_type = Some(typ); } else { error!(self, "Failed to parse return type."); @@ -614,7 +614,7 @@ impl Compiler { }); } - fn type_ident(&mut self) -> Result<Type, ()> { + fn parse_type(&mut self) -> Result<Type, ()> { match self.eat() { Token::Identifier(x) => { match x.as_str() { @@ -649,7 +649,7 @@ impl Compiler { tokens!(Token::Identifier(name), Token::Colon) => { self.eat(); self.eat(); - if let Ok(typ) = self.type_ident() { + if let Ok(typ) = self.parse_type() { expect!(self, Token::Equal, "Expected assignment."); self.definition_statement(&name, typ, block); } else { |
