Improve test
This commit is contained in:
parent
0d55bb7244
commit
6c76006ad9
@ -340,7 +340,6 @@ impl<'src> Parser<'src> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
self.emit_instruction(instruction, operator_position);
|
self.emit_instruction(instruction, operator_position);
|
||||||
|
|
||||||
self.increment_register()?;
|
self.increment_register()?;
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
@ -2,6 +2,11 @@ use crate::Local;
|
|||||||
|
|
||||||
use super::*;
|
use super::*;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn empty() {
|
||||||
|
assert_eq!(parse(""), Ok(Chunk::with_data(vec![], vec![], vec![])),);
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn set_local() {
|
fn set_local() {
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
@ -44,24 +49,37 @@ fn parentheses_precedence() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn add_multiply_precedence() {
|
fn math_operator_precedence() {
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
parse("1 + 2 * 3"),
|
parse("1 + 2 - 3 * 4 / 5"),
|
||||||
Ok(Chunk::with_data(
|
Ok(Chunk::with_data(
|
||||||
vec![
|
vec![
|
||||||
(
|
(
|
||||||
*Instruction::multiply(0, 1, 2)
|
*Instruction::multiply(1, 2, 3)
|
||||||
.set_first_argument_to_constant()
|
.set_first_argument_to_constant()
|
||||||
.set_second_argument_to_constant(),
|
.set_second_argument_to_constant(),
|
||||||
Span(6, 7)
|
Span(10, 11)
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
*Instruction::add(1, 0, 0).set_first_argument_to_constant(),
|
*Instruction::add(0, 0, 1)
|
||||||
|
.set_first_argument_to_constant()
|
||||||
|
.set_second_argument_to_constant(),
|
||||||
Span(2, 3)
|
Span(2, 3)
|
||||||
),
|
),
|
||||||
(Instruction::r#return(), Span(0, 9)),
|
(
|
||||||
|
*Instruction::divide(2, 1, 4).set_second_argument_to_constant(),
|
||||||
|
Span(14, 15)
|
||||||
|
),
|
||||||
|
(Instruction::subtract(3, 0, 2), Span(6, 7)),
|
||||||
|
(Instruction::r#return(), Span(0, 17)),
|
||||||
|
],
|
||||||
|
vec![
|
||||||
|
Value::integer(1),
|
||||||
|
Value::integer(2),
|
||||||
|
Value::integer(3),
|
||||||
|
Value::integer(4),
|
||||||
|
Value::integer(5),
|
||||||
],
|
],
|
||||||
vec![Value::integer(1), Value::integer(2), Value::integer(3)],
|
|
||||||
vec![]
|
vec![]
|
||||||
))
|
))
|
||||||
);
|
);
|
||||||
|
Loading…
Reference in New Issue
Block a user