1
0
mirror of https://github.com/fluencelabs/lalrpop synced 2025-03-31 07:21:04 +00:00
lalrpop/doc/calculator/src/calculator3.lalrpop
2016-06-29 13:55:03 -04:00

26 lines
359 B
Plaintext

use std::str::FromStr;
grammar;
pub Expr: i32 = {
<l:Expr> "+" <r:Factor> => l + r,
<l:Expr> "-" <r:Factor> => l - r,
Factor,
};
Factor: i32 = {
<l:Factor> "*" <r:Term> => l * r,
<l:Factor> "/" <r:Term> => l / r,
Term,
};
Term: i32 = {
Num,
"(" <Expr> ")",
};
Num: i32 = {
r"[0-9]+" => i32::from_str(<>).unwrap(),
};