A parser for Moonbit language.
let lexer = @parse.Lexer::new(filename, code_in_the_file);
let tokens = lexer.lex();
let good = @diag.report();
if (not(good)) {
return;
}let parser = @parse.Parser::new(tokens);
let ast = parser.parse();
let good = @diag.report();
if (not(good)) {
return;
}fn fib(x: Int) -> Int {
if (x < 1) {
return 1
}
fib(x - 1) + fib(x - 2)
}
fn main {
let x = 2 + 4 * (6 - 5);
let _ = fib(x);
}{
fn fib(x) {
if (x < 1) {
return 1;
};
(fib((x - 1)) + fib((x - 2)));
};
fn main {
let x = (2 + (4 * (6 - 5)));
let _ = fib(x);
};
}