]> gitweb.factorcode.org Git - factor.git/blob - extra/fjsc/fjsc-tests.factor
2e385ca5660f5d8016b851687e009597683ebfb5
[factor.git] / extra / fjsc / fjsc-tests.factor
1 ! Copyright (C) 2006 Chris Double. All Rights Reserved.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: kernel tools.test peg fjsc ;
4 IN: fjsc.tests
5
6 { T{ ast-expression f V{ T{ ast-number f 55 } T{ ast-identifier f "2abc1" } T{ ast-number f 100 } } } } [
7   "55 2abc1 100" expression-parser parse
8 ] unit-test
9
10 { T{ ast-quotation f V{ T{ ast-number f 55 } T{ ast-identifier f "2abc1" } T{ ast-number f 100 } } } } [
11   "[ 55 2abc1 100 ]" quotation-parser parse
12 ] unit-test
13
14 { T{ ast-array f V{ T{ ast-number f 55 } T{ ast-identifier f "2abc1" } T{ ast-number f 100 } } } } [
15   "{ 55 2abc1 100 }" array-parser parse
16 ] unit-test
17
18 { T{ ast-stack-effect f V{ } V{ "d" "e" "f" } } } [
19   "( -- d e f )" stack-effect-parser parse
20 ] unit-test
21
22 { T{ ast-stack-effect f V{ "a" "b" "c" } V{ "d" "e" "f" } } } [
23   "( a b c -- d e f )" stack-effect-parser parse
24 ] unit-test
25
26 { T{ ast-stack-effect f V{ "a" "b" "c" } V{ } } } [
27   "( a b c -- )" stack-effect-parser parse
28 ] unit-test
29
30 { T{ ast-stack-effect f V{ } V{ } } } [
31   "( -- )" stack-effect-parser parse
32 ] unit-test
33
34 { f } [
35   ": foo ( a b -- c d ) abcdefghijklmn 123 ;" expression-parser parse not
36 ] unit-test
37
38
39 { T{ ast-expression f V{ T{ ast-string f "abcd" } } } } [
40   "\"abcd\"" statement-parser parse
41 ] unit-test
42
43 { T{ ast-expression f V{ T{ ast-use f "foo" } } } } [
44   "USE: foo" statement-parser parse
45 ] unit-test
46
47 { T{ ast-expression f V{ T{ ast-in f "foo" } } } } [
48   "IN: foo" statement-parser parse
49 ] unit-test
50
51 { T{ ast-expression f V{ T{ ast-using f V{ "foo" "bar" }  } } } } [
52   "USING: foo bar ;" statement-parser parse
53 ] unit-test