use super::super::*;
#[test]
fn _0001() {
let scope = scope!();
accept(
&scope,
StartExpression,
"1+2",
r#"
Add
├─ Numeric
│ └─ `1`
└─ Numeric
└─ `2`
"#,
false,
);
}
#[test]
fn _0002() {
let scope = scope!();
accept(
&scope,
StartExpression,
"1 + 2",
r#"
Add
├─ Numeric
│ └─ `1`
└─ Numeric
└─ `2`
"#,
false,
);
}
#[test]
fn _0003() {
let scope = scope!();
accept(
&scope,
StartExpression,
" 5 +2 +1",
r#"
Add
├─ Add
│ ├─ Numeric
│ │ └─ `5`
│ └─ Numeric
│ └─ `2`
└─ Numeric
└─ `1`
"#,
false,
);
}
#[test]
fn _0004() {
let scope = scope!();
accept(
&scope,
StartExpression,
"2+20+200",
r#"
Add
├─ Add
│ ├─ Numeric
│ │ └─ `2`
│ └─ Numeric
│ └─ `20`
└─ Numeric
└─ `200`
"#,
false,
);
}
#[test]
fn _0005() {
let scope = scope!();
accept(
&scope,
StartExpression,
"( 1 + 2 ) + ( 3 + 4 )",
r#"
Add
├─ Add
│ ├─ Numeric
│ │ └─ `1`
│ └─ Numeric
│ └─ `2`
└─ Add
├─ Numeric
│ └─ `3`
└─ Numeric
└─ `4`
"#,
false,
);
}
#[test]
fn _0006() {
let scope = scope!();
accept(
&scope,
StartExpression,
"( ( ( 1 + 2 ) ) )",
r#"
Add
├─ Numeric
│ └─ `1`
└─ Numeric
└─ `2`
"#,
false,
);
}
#[test]
fn _0007() {
let scope = scope!();
accept(
&scope,
StartExpression,
"(1+2)*(3+4)",
r#"
Mul
├─ Add
│ ├─ Numeric
│ │ └─ `1`
│ └─ Numeric
│ └─ `2`
└─ Add
├─ Numeric
│ └─ `3`
└─ Numeric
└─ `4`
"#,
false,
);
}
#[test]
fn _0008() {
let scope = scope!();
assert_eq!(
"<ParserError> syntax error: +1",
Parser::new(&scope, StartExpression, "+1", false).parse().err().unwrap().to_string().as_str()
);
}