mirror of
https://github.com/fluencelabs/lalrpop
synced 2025-03-31 07:21:04 +00:00
26 lines
359 B
Plaintext
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(),
|
|
};
|
|
|