USING: infix.ast infix.parser infix.tokenizer tools.test ;
IN: infix.parser.tests
-[ T{ ast-number { value 1 } } ] [ "1" build-infix-ast ] unit-test
-[ T{ ast-negation f T{ ast-number { value 1 } } } ]
+{ T{ ast-number { value 1 } } } [ "1" build-infix-ast ] unit-test
+{ T{ ast-negation f T{ ast-number { value 1 } } } }
[ "-1" build-infix-ast ] unit-test
-[ T{ ast-op
+{ T{ ast-op
{ left
T{ ast-op
{ left T{ ast-number { value 1 } } }
}
{ right T{ ast-number { value 4 } } }
{ op "+" }
-} ] [ "1+2+4" build-infix-ast ] unit-test
+} } [ "1+2+4" build-infix-ast ] unit-test
-[ T{ ast-op
+{ T{ ast-op
{ left T{ ast-number { value 1 } } }
{ right
T{ ast-op
}
}
{ op "+" }
-} ] [ "1+2*3" build-infix-ast ] unit-test
+} } [ "1+2*3" build-infix-ast ] unit-test
-[ T{ ast-op
+{ T{ ast-op
{ left T{ ast-number { value 1 } } }
{ right T{ ast-number { value 2 } } }
{ op "+" }
-} ] [ "(1+2)" build-infix-ast ] unit-test
+} } [ "(1+2)" build-infix-ast ] unit-test
-[ T{ ast-local { name "foo" } } ] [ "foo" build-infix-ast ] unit-test
+{ T{ ast-local { name "foo" } } } [ "foo" build-infix-ast ] unit-test
[ "-" build-infix-ast ] must-fail
-[ T{ ast-function
+{ T{ ast-function
{ name "foo" }
{ arguments
V{
}
}
}
-} ] [ "foo (1+ 2,2%3) " build-infix-ast ] unit-test
+} } [ "foo (1+ 2,2%3) " build-infix-ast ] unit-test
-[ T{ ast-op
+{ T{ ast-op
{ left
T{ ast-op
{ left
}
{ right T{ ast-number { value 2 } } }
{ op "/" }
-} ] [ "(bar() + baz[2/ 3+4 ] )/2" build-infix-ast ] unit-test
+} } [ "(bar() + baz[2/ 3+4 ] )/2" build-infix-ast ] unit-test
-[ T{ ast-op
+{ T{ ast-op
{ left T{ ast-number { value 1 } } }
{ right
T{ ast-op
}
}
{ op "+" }
-} ] [ "1\n+\n2\r/\t3" build-infix-ast ] unit-test
+} } [ "1\n+\n2\r/\t3" build-infix-ast ] unit-test
-[ T{ ast-negation
+{ T{ ast-negation
{ term
T{ ast-function
{ name "foo" }
}
}
}
-} ] [ "-foo(+2,-3)" build-infix-ast ] unit-test
+} } [ "-foo(+2,-3)" build-infix-ast ] unit-test
-[ T{ ast-array
+{ T{ ast-array
{ name "arr" }
{ index
T{ ast-op
{ op "/" }
}
}
-} ] [ "+arr[-(foo(2)+-1)/3]" build-infix-ast ] unit-test
+} } [ "+arr[-(foo(2)+-1)/3]" build-infix-ast ] unit-test
[ "foo bar baz" build-infix-ast ] must-fail
[ "1+2/4+" build-infix-ast ] must-fail