mirror of
https://github.com/Noratrieb/dilaria.git
synced 2026-01-17 02:45:02 +01:00
fix return error
This commit is contained in:
parent
53c2cdb085
commit
131229686a
3 changed files with 22 additions and 9 deletions
|
|
@ -19,7 +19,7 @@ pub fn run_program(program: &str) {
|
||||||
let ast = parse::parse(tokens);
|
let ast = parse::parse(tokens);
|
||||||
|
|
||||||
match ast {
|
match ast {
|
||||||
Ok(ast) => println!("{:#?}", ast),
|
Ok(ast) => println!("{:?}", ast),
|
||||||
Err(err) => errors::display_error(program, err),
|
Err(err) => errors::display_error(program, err),
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -103,7 +103,11 @@ impl<'code> Parser<'code> {
|
||||||
let keyword_span = self.expect(TokenType::Fn)?.span;
|
let keyword_span = self.expect(TokenType::Fn)?.span;
|
||||||
let name = self.ident()?;
|
let name = self.ident()?;
|
||||||
let args = self.fn_args()?;
|
let args = self.fn_args()?;
|
||||||
|
|
||||||
|
self.inside_fn_depth += 1;
|
||||||
let body = self.block()?;
|
let body = self.block()?;
|
||||||
|
self.inside_fn_depth -= 1;
|
||||||
|
|
||||||
Ok(Stmt::FnDecl(FnDecl {
|
Ok(Stmt::FnDecl(FnDecl {
|
||||||
span: keyword_span.extend(body.span),
|
span: keyword_span.extend(body.span),
|
||||||
name,
|
name,
|
||||||
|
|
|
||||||
21
test.sl
21
test.sl
|
|
@ -1,9 +1,18 @@
|
||||||
fn test() {
|
fn fizzbuzz() {
|
||||||
if true {
|
let i = 0;
|
||||||
print;
|
while i < 100 {
|
||||||
} else if false {
|
# don't have function calls yet :(
|
||||||
dont_print;
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn single_fizzbuzz(n) {
|
||||||
|
if n % 15 == 0 {
|
||||||
|
return "FizzBuzz";
|
||||||
|
} else if n % 5 == 0 {
|
||||||
|
return "Buzz";
|
||||||
|
} else if n % 3 == 0 {
|
||||||
|
return "Fizz";
|
||||||
} else {
|
} else {
|
||||||
"uwu";
|
return n;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue