mirror of
https://github.com/zaphar/ucg.git
synced 2025-07-23 18:29:50 -04:00
Renamed BinaryExpression to BinaryOpDef for consistency.
This commit is contained in:
parent
53d598b773
commit
14bbd19f16
14
src/ast.rs
14
src/ast.rs
@ -230,9 +230,9 @@ pub enum BinaryExprType {
|
|||||||
Div,
|
Div,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// BinaryExpression represents an expression with a left and a right side.
|
/// BinaryOpDef represents an expression with a left and a right side.
|
||||||
#[derive(Debug,PartialEq,Clone)]
|
#[derive(Debug,PartialEq,Clone)]
|
||||||
pub struct BinaryExpression {
|
pub struct BinaryOpDef {
|
||||||
pub kind: BinaryExprType,
|
pub kind: BinaryExprType,
|
||||||
pub left: Value,
|
pub left: Value,
|
||||||
pub right: Box<Expression>,
|
pub right: Box<Expression>,
|
||||||
@ -259,7 +259,7 @@ pub enum Expression {
|
|||||||
// Base Expression
|
// Base Expression
|
||||||
Simple(Value),
|
Simple(Value),
|
||||||
|
|
||||||
Binary(BinaryExpression),
|
Binary(BinaryOpDef),
|
||||||
|
|
||||||
// Complex Expressions
|
// Complex Expressions
|
||||||
Copy(CopyDef),
|
Copy(CopyDef),
|
||||||
@ -303,7 +303,7 @@ mod ast_test {
|
|||||||
"foo".to_string()
|
"foo".to_string()
|
||||||
],
|
],
|
||||||
fields: vec![
|
fields: vec![
|
||||||
("f1".to_string(), Expression::Binary(BinaryExpression{
|
("f1".to_string(), Expression::Binary(BinaryOpDef{
|
||||||
kind: BinaryExprType::Add,
|
kind: BinaryExprType::Add,
|
||||||
left: Value::Symbol(make_value_node("foo".to_string())),
|
left: Value::Symbol(make_value_node("foo".to_string())),
|
||||||
right: Box::new(Expression::Simple(Value::Int(make_value_node(1)))),
|
right: Box::new(Expression::Simple(Value::Int(make_value_node(1)))),
|
||||||
@ -322,7 +322,7 @@ mod ast_test {
|
|||||||
"foo".to_string()
|
"foo".to_string()
|
||||||
],
|
],
|
||||||
fields: vec![
|
fields: vec![
|
||||||
("f1".to_string(), Expression::Binary(BinaryExpression{
|
("f1".to_string(), Expression::Binary(BinaryOpDef{
|
||||||
kind: BinaryExprType::Add,
|
kind: BinaryExprType::Add,
|
||||||
left: Value::Symbol(make_value_node("bar".to_string())),
|
left: Value::Symbol(make_value_node("bar".to_string())),
|
||||||
right: Box::new(Expression::Simple(Value::Int(make_value_node(1)))),
|
right: Box::new(Expression::Simple(Value::Int(make_value_node(1)))),
|
||||||
@ -344,7 +344,7 @@ mod ast_test {
|
|||||||
"foo".to_string()
|
"foo".to_string()
|
||||||
],
|
],
|
||||||
fields: vec![
|
fields: vec![
|
||||||
("f1".to_string(), Expression::Binary(BinaryExpression{
|
("f1".to_string(), Expression::Binary(BinaryOpDef{
|
||||||
kind: BinaryExprType::Add,
|
kind: BinaryExprType::Add,
|
||||||
left: Value::Selector(make_value_node(vec!["foo".to_string(), "quux".to_string()])),
|
left: Value::Selector(make_value_node(vec!["foo".to_string(), "quux".to_string()])),
|
||||||
right: Box::new(Expression::Simple(Value::Int(make_value_node(1)))),
|
right: Box::new(Expression::Simple(Value::Int(make_value_node(1)))),
|
||||||
@ -363,7 +363,7 @@ mod ast_test {
|
|||||||
"foo".to_string()
|
"foo".to_string()
|
||||||
],
|
],
|
||||||
fields: vec![
|
fields: vec![
|
||||||
("f1".to_string(), Expression::Binary(BinaryExpression{
|
("f1".to_string(), Expression::Binary(BinaryOpDef{
|
||||||
kind: BinaryExprType::Add,
|
kind: BinaryExprType::Add,
|
||||||
left: Value::Selector(make_value_node(vec!["bar".to_string(), "quux".to_string()])),
|
left: Value::Selector(make_value_node(vec!["bar".to_string(), "quux".to_string()])),
|
||||||
right: Box::new(Expression::Simple(Value::Int(make_value_node(1)))),
|
right: Box::new(Expression::Simple(Value::Int(make_value_node(1)))),
|
||||||
|
26
src/build.rs
26
src/build.rs
@ -629,7 +629,7 @@ mod test {
|
|||||||
let b = Builder::new();
|
let b = Builder::new();
|
||||||
test_expr_to_val(vec![
|
test_expr_to_val(vec![
|
||||||
(Expression::Binary(
|
(Expression::Binary(
|
||||||
BinaryExpression{
|
BinaryOpDef{
|
||||||
kind: BinaryExprType::Div,
|
kind: BinaryExprType::Div,
|
||||||
left: Value::Int(make_value_node(2)),
|
left: Value::Int(make_value_node(2)),
|
||||||
right: Box::new(Expression::Simple(Value::Int(make_value_node(2)))),
|
right: Box::new(Expression::Simple(Value::Int(make_value_node(2)))),
|
||||||
@ -637,7 +637,7 @@ mod test {
|
|||||||
}),
|
}),
|
||||||
Val::Int(1)),
|
Val::Int(1)),
|
||||||
(Expression::Binary(
|
(Expression::Binary(
|
||||||
BinaryExpression{
|
BinaryOpDef{
|
||||||
kind: BinaryExprType::Div,
|
kind: BinaryExprType::Div,
|
||||||
left: Value::Float(make_value_node(2.0)),
|
left: Value::Float(make_value_node(2.0)),
|
||||||
right: Box::new(Expression::Simple(Value::Float(make_value_node(2.0)))),
|
right: Box::new(Expression::Simple(Value::Float(make_value_node(2.0)))),
|
||||||
@ -653,7 +653,7 @@ mod test {
|
|||||||
let b = Builder::new();
|
let b = Builder::new();
|
||||||
test_expr_to_val(vec![
|
test_expr_to_val(vec![
|
||||||
(Expression::Binary(
|
(Expression::Binary(
|
||||||
BinaryExpression{
|
BinaryOpDef{
|
||||||
kind: BinaryExprType::Div,
|
kind: BinaryExprType::Div,
|
||||||
left: Value::Float(make_value_node(2.0)),
|
left: Value::Float(make_value_node(2.0)),
|
||||||
right: Box::new(Expression::Simple(Value::Int(make_value_node(2)))),
|
right: Box::new(Expression::Simple(Value::Int(make_value_node(2)))),
|
||||||
@ -668,7 +668,7 @@ mod test {
|
|||||||
let b = Builder::new();
|
let b = Builder::new();
|
||||||
test_expr_to_val(vec![
|
test_expr_to_val(vec![
|
||||||
(Expression::Binary(
|
(Expression::Binary(
|
||||||
BinaryExpression{
|
BinaryOpDef{
|
||||||
kind: BinaryExprType::Mul,
|
kind: BinaryExprType::Mul,
|
||||||
left: Value::Int(make_value_node(2)),
|
left: Value::Int(make_value_node(2)),
|
||||||
right: Box::new(Expression::Simple(Value::Int(make_value_node(2)))),
|
right: Box::new(Expression::Simple(Value::Int(make_value_node(2)))),
|
||||||
@ -676,7 +676,7 @@ mod test {
|
|||||||
}),
|
}),
|
||||||
Val::Int(4)),
|
Val::Int(4)),
|
||||||
(Expression::Binary(
|
(Expression::Binary(
|
||||||
BinaryExpression{
|
BinaryOpDef{
|
||||||
kind: BinaryExprType::Mul,
|
kind: BinaryExprType::Mul,
|
||||||
left: Value::Float(make_value_node(2.0)),
|
left: Value::Float(make_value_node(2.0)),
|
||||||
right: Box::new(Expression::Simple(Value::Float(make_value_node(2.0)))),
|
right: Box::new(Expression::Simple(Value::Float(make_value_node(2.0)))),
|
||||||
@ -692,7 +692,7 @@ mod test {
|
|||||||
let b = Builder::new();
|
let b = Builder::new();
|
||||||
test_expr_to_val(vec![
|
test_expr_to_val(vec![
|
||||||
(Expression::Binary(
|
(Expression::Binary(
|
||||||
BinaryExpression{
|
BinaryOpDef{
|
||||||
kind: BinaryExprType::Mul,
|
kind: BinaryExprType::Mul,
|
||||||
left: Value::Float(make_value_node(2.0)),
|
left: Value::Float(make_value_node(2.0)),
|
||||||
right: Box::new(Expression::Simple(Value::Int(make_value_node(20)))),
|
right: Box::new(Expression::Simple(Value::Int(make_value_node(20)))),
|
||||||
@ -707,7 +707,7 @@ mod test {
|
|||||||
let b = Builder::new();
|
let b = Builder::new();
|
||||||
test_expr_to_val(vec![
|
test_expr_to_val(vec![
|
||||||
(Expression::Binary(
|
(Expression::Binary(
|
||||||
BinaryExpression{
|
BinaryOpDef{
|
||||||
kind: BinaryExprType::Sub,
|
kind: BinaryExprType::Sub,
|
||||||
left: Value::Int(make_value_node(2)),
|
left: Value::Int(make_value_node(2)),
|
||||||
right: Box::new(Expression::Simple(Value::Int(make_value_node(1)))),
|
right: Box::new(Expression::Simple(Value::Int(make_value_node(1)))),
|
||||||
@ -715,7 +715,7 @@ mod test {
|
|||||||
}),
|
}),
|
||||||
Val::Int(1)),
|
Val::Int(1)),
|
||||||
(Expression::Binary(
|
(Expression::Binary(
|
||||||
BinaryExpression{
|
BinaryOpDef{
|
||||||
kind: BinaryExprType::Sub,
|
kind: BinaryExprType::Sub,
|
||||||
left: Value::Float(make_value_node(2.0)),
|
left: Value::Float(make_value_node(2.0)),
|
||||||
right: Box::new(Expression::Simple(Value::Float(make_value_node(1.0)))),
|
right: Box::new(Expression::Simple(Value::Float(make_value_node(1.0)))),
|
||||||
@ -731,7 +731,7 @@ mod test {
|
|||||||
let b = Builder::new();
|
let b = Builder::new();
|
||||||
test_expr_to_val(vec![
|
test_expr_to_val(vec![
|
||||||
(Expression::Binary(
|
(Expression::Binary(
|
||||||
BinaryExpression{
|
BinaryOpDef{
|
||||||
kind: BinaryExprType::Sub,
|
kind: BinaryExprType::Sub,
|
||||||
left: Value::Float(make_value_node(2.0)),
|
left: Value::Float(make_value_node(2.0)),
|
||||||
right: Box::new(Expression::Simple(Value::Int(make_value_node(2)))),
|
right: Box::new(Expression::Simple(Value::Int(make_value_node(2)))),
|
||||||
@ -746,7 +746,7 @@ mod test {
|
|||||||
let b = Builder::new();
|
let b = Builder::new();
|
||||||
test_expr_to_val(vec![
|
test_expr_to_val(vec![
|
||||||
(Expression::Binary(
|
(Expression::Binary(
|
||||||
BinaryExpression{
|
BinaryOpDef{
|
||||||
kind: BinaryExprType::Add,
|
kind: BinaryExprType::Add,
|
||||||
left: Value::Int(make_value_node(1)),
|
left: Value::Int(make_value_node(1)),
|
||||||
right: Box::new(Expression::Simple(Value::Int(make_value_node(1)))),
|
right: Box::new(Expression::Simple(Value::Int(make_value_node(1)))),
|
||||||
@ -754,7 +754,7 @@ mod test {
|
|||||||
}),
|
}),
|
||||||
Val::Int(2)),
|
Val::Int(2)),
|
||||||
(Expression::Binary(
|
(Expression::Binary(
|
||||||
BinaryExpression{
|
BinaryOpDef{
|
||||||
kind: BinaryExprType::Add,
|
kind: BinaryExprType::Add,
|
||||||
left: Value::Float(make_value_node(1.0)),
|
left: Value::Float(make_value_node(1.0)),
|
||||||
right: Box::new(Expression::Simple(Value::Float(make_value_node(1.0)))),
|
right: Box::new(Expression::Simple(Value::Float(make_value_node(1.0)))),
|
||||||
@ -762,7 +762,7 @@ mod test {
|
|||||||
}),
|
}),
|
||||||
Val::Float(2.0)),
|
Val::Float(2.0)),
|
||||||
(Expression::Binary(
|
(Expression::Binary(
|
||||||
BinaryExpression{
|
BinaryOpDef{
|
||||||
kind: BinaryExprType::Add,
|
kind: BinaryExprType::Add,
|
||||||
left: Value::String(make_value_node("foo".to_string())),
|
left: Value::String(make_value_node("foo".to_string())),
|
||||||
right: Box::new(Expression::Simple(Value::String(make_value_node("bar".to_string())))),
|
right: Box::new(Expression::Simple(Value::String(make_value_node("bar".to_string())))),
|
||||||
@ -778,7 +778,7 @@ mod test {
|
|||||||
let b = Builder::new();
|
let b = Builder::new();
|
||||||
test_expr_to_val(vec![
|
test_expr_to_val(vec![
|
||||||
(Expression::Binary(
|
(Expression::Binary(
|
||||||
BinaryExpression{
|
BinaryOpDef{
|
||||||
kind: BinaryExprType::Add,
|
kind: BinaryExprType::Add,
|
||||||
left: Value::Float(make_value_node(2.0)),
|
left: Value::Float(make_value_node(2.0)),
|
||||||
right: Box::new(Expression::Simple(Value::Int(make_value_node(2)))),
|
right: Box::new(Expression::Simple(Value::Int(make_value_node(2)))),
|
||||||
|
24
src/parse.rs
24
src/parse.rs
@ -200,7 +200,7 @@ named!(simple_expression<Expression>,
|
|||||||
);
|
);
|
||||||
|
|
||||||
fn tuple_to_binary_expression(tpl: (BinaryExprType, Value, Expression)) -> ParseResult<Expression> {
|
fn tuple_to_binary_expression(tpl: (BinaryExprType, Value, Expression)) -> ParseResult<Expression> {
|
||||||
Ok(Expression::Binary(BinaryExpression{
|
Ok(Expression::Binary(BinaryOpDef{
|
||||||
kind: tpl.0,
|
kind: tpl.0,
|
||||||
left: tpl.1,
|
left: tpl.1,
|
||||||
right: Box::new(tpl.2),
|
right: Box::new(tpl.2),
|
||||||
@ -619,7 +619,7 @@ mod test {
|
|||||||
IResult::Done(&b""[..], Expression::Simple(Value::Symbol(make_value_node("foo".to_string())))));
|
IResult::Done(&b""[..], Expression::Simple(Value::Symbol(make_value_node("foo".to_string())))));
|
||||||
assert_eq!(expression(&b"1 + 1"[..]),
|
assert_eq!(expression(&b"1 + 1"[..]),
|
||||||
IResult::Done(&b""[..],
|
IResult::Done(&b""[..],
|
||||||
Expression::Binary(BinaryExpression{
|
Expression::Binary(BinaryOpDef{
|
||||||
kind: BinaryExprType::Add,
|
kind: BinaryExprType::Add,
|
||||||
left: Value::Int(make_value_node(1)),
|
left: Value::Int(make_value_node(1)),
|
||||||
right: Box::new(Expression::Simple(Value::Int(make_value_node(1)))),
|
right: Box::new(Expression::Simple(Value::Int(make_value_node(1)))),
|
||||||
@ -627,7 +627,7 @@ mod test {
|
|||||||
})));
|
})));
|
||||||
assert_eq!(expression(&b"1 - 1"[..]),
|
assert_eq!(expression(&b"1 - 1"[..]),
|
||||||
IResult::Done(&b""[..],
|
IResult::Done(&b""[..],
|
||||||
Expression::Binary(BinaryExpression{
|
Expression::Binary(BinaryOpDef{
|
||||||
kind: BinaryExprType::Sub,
|
kind: BinaryExprType::Sub,
|
||||||
left: Value::Int(make_value_node(1)),
|
left: Value::Int(make_value_node(1)),
|
||||||
right: Box::new(Expression::Simple(Value::Int(make_value_node(1)))),
|
right: Box::new(Expression::Simple(Value::Int(make_value_node(1)))),
|
||||||
@ -635,7 +635,7 @@ mod test {
|
|||||||
})));
|
})));
|
||||||
assert_eq!(expression(&b"1 * 1"[..]),
|
assert_eq!(expression(&b"1 * 1"[..]),
|
||||||
IResult::Done(&b""[..],
|
IResult::Done(&b""[..],
|
||||||
Expression::Binary(BinaryExpression{
|
Expression::Binary(BinaryOpDef{
|
||||||
kind: BinaryExprType::Mul,
|
kind: BinaryExprType::Mul,
|
||||||
left: Value::Int(make_value_node(1)),
|
left: Value::Int(make_value_node(1)),
|
||||||
right: Box::new(Expression::Simple(Value::Int(make_value_node(1)))),
|
right: Box::new(Expression::Simple(Value::Int(make_value_node(1)))),
|
||||||
@ -643,7 +643,7 @@ mod test {
|
|||||||
})));
|
})));
|
||||||
assert_eq!(expression(&b"1 / 1"[..]),
|
assert_eq!(expression(&b"1 / 1"[..]),
|
||||||
IResult::Done(&b""[..],
|
IResult::Done(&b""[..],
|
||||||
Expression::Binary(BinaryExpression{
|
Expression::Binary(BinaryOpDef{
|
||||||
kind: BinaryExprType::Div,
|
kind: BinaryExprType::Div,
|
||||||
left: Value::Int(make_value_node(1)),
|
left: Value::Int(make_value_node(1)),
|
||||||
right: Box::new(Expression::Simple(Value::Int(make_value_node(1)))),
|
right: Box::new(Expression::Simple(Value::Int(make_value_node(1)))),
|
||||||
@ -652,7 +652,7 @@ mod test {
|
|||||||
|
|
||||||
assert_eq!(expression(&b"1+1"[..]),
|
assert_eq!(expression(&b"1+1"[..]),
|
||||||
IResult::Done(&b""[..],
|
IResult::Done(&b""[..],
|
||||||
Expression::Binary(BinaryExpression{
|
Expression::Binary(BinaryOpDef{
|
||||||
kind: BinaryExprType::Add,
|
kind: BinaryExprType::Add,
|
||||||
left: Value::Int(make_value_node(1)),
|
left: Value::Int(make_value_node(1)),
|
||||||
right: Box::new(Expression::Simple(Value::Int(make_value_node(1)))),
|
right: Box::new(Expression::Simple(Value::Int(make_value_node(1)))),
|
||||||
@ -660,7 +660,7 @@ mod test {
|
|||||||
})));
|
})));
|
||||||
assert_eq!(expression(&b"1-1"[..]),
|
assert_eq!(expression(&b"1-1"[..]),
|
||||||
IResult::Done(&b""[..],
|
IResult::Done(&b""[..],
|
||||||
Expression::Binary(BinaryExpression{
|
Expression::Binary(BinaryOpDef{
|
||||||
kind: BinaryExprType::Sub,
|
kind: BinaryExprType::Sub,
|
||||||
left: Value::Int(make_value_node(1)),
|
left: Value::Int(make_value_node(1)),
|
||||||
right: Box::new(Expression::Simple(Value::Int(make_value_node(1)))),
|
right: Box::new(Expression::Simple(Value::Int(make_value_node(1)))),
|
||||||
@ -668,7 +668,7 @@ mod test {
|
|||||||
})));
|
})));
|
||||||
assert_eq!(expression(&b"1*1"[..]),
|
assert_eq!(expression(&b"1*1"[..]),
|
||||||
IResult::Done(&b""[..],
|
IResult::Done(&b""[..],
|
||||||
Expression::Binary(BinaryExpression{
|
Expression::Binary(BinaryOpDef{
|
||||||
kind: BinaryExprType::Mul,
|
kind: BinaryExprType::Mul,
|
||||||
left: Value::Int(make_value_node(1)),
|
left: Value::Int(make_value_node(1)),
|
||||||
right: Box::new(Expression::Simple(Value::Int(make_value_node(1)))),
|
right: Box::new(Expression::Simple(Value::Int(make_value_node(1)))),
|
||||||
@ -676,7 +676,7 @@ mod test {
|
|||||||
})));
|
})));
|
||||||
assert_eq!(expression(&b"1/1"[..]),
|
assert_eq!(expression(&b"1/1"[..]),
|
||||||
IResult::Done(&b""[..],
|
IResult::Done(&b""[..],
|
||||||
Expression::Binary(BinaryExpression{
|
Expression::Binary(BinaryOpDef{
|
||||||
kind: BinaryExprType::Div,
|
kind: BinaryExprType::Div,
|
||||||
left: Value::Int(make_value_node(1)),
|
left: Value::Int(make_value_node(1)),
|
||||||
right: Box::new(Expression::Simple(Value::Int(make_value_node(1)))),
|
right: Box::new(Expression::Simple(Value::Int(make_value_node(1)))),
|
||||||
@ -725,7 +725,7 @@ mod test {
|
|||||||
Expression::Grouped(
|
Expression::Grouped(
|
||||||
Box::new(
|
Box::new(
|
||||||
Expression::Binary(
|
Expression::Binary(
|
||||||
BinaryExpression{
|
BinaryOpDef{
|
||||||
kind: BinaryExprType::Add,
|
kind: BinaryExprType::Add,
|
||||||
left: Value::Int(make_value_node(1)),
|
left: Value::Int(make_value_node(1)),
|
||||||
right: Box::new(Expression::Simple(Value::Int(make_value_node(1)))),
|
right: Box::new(Expression::Simple(Value::Int(make_value_node(1)))),
|
||||||
@ -906,7 +906,7 @@ mod test {
|
|||||||
Expression::Grouped(
|
Expression::Grouped(
|
||||||
Box::new(
|
Box::new(
|
||||||
Expression::Binary(
|
Expression::Binary(
|
||||||
BinaryExpression{
|
BinaryOpDef{
|
||||||
kind: BinaryExprType::Add,
|
kind: BinaryExprType::Add,
|
||||||
left: Value::Int(make_value_node(1)),
|
left: Value::Int(make_value_node(1)),
|
||||||
right: Box::new(Expression::Simple(
|
right: Box::new(Expression::Simple(
|
||||||
@ -1022,7 +1022,7 @@ mod test {
|
|||||||
},
|
},
|
||||||
Statement::Expression(
|
Statement::Expression(
|
||||||
Expression::Binary(
|
Expression::Binary(
|
||||||
BinaryExpression{
|
BinaryOpDef{
|
||||||
kind: BinaryExprType::Add,
|
kind: BinaryExprType::Add,
|
||||||
left: Value::Int(make_value_node(1)),
|
left: Value::Int(make_value_node(1)),
|
||||||
right: Box::new(Expression::Simple(Value::Int(make_value_node(1)))),
|
right: Box::new(Expression::Simple(Value::Int(make_value_node(1)))),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user