]> gitweb.factorcode.org Git - factor.git/blob - extra/c/lexer/lexer-tests.factor
6d883b469a471eb06c85078c282712cfca4bf972
[factor.git] / extra / c / lexer / lexer-tests.factor
1 ! Copyright (C) 2009 Doug Coleman.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: accessors c.lexer kernel sequences.parser tools.test ;
4 IN: c.lexer.tests
5
6 [ 36 ]
7 [
8     "    //jofiejoe\n    //eoieow\n/*asdf*/\n      "
9     <sequence-parser> skip-whitespace/comments n>>
10 ] unit-test
11
12 [ f "33asdf" ]
13 [ "33asdf" <sequence-parser> [ take-c-identifier ] [ take-rest ] bi ] unit-test
14
15 [ "asdf" ]
16 [ "asdf" <sequence-parser> take-c-identifier ] unit-test
17
18 [ "_asdf" ]
19 [ "_asdf" <sequence-parser> take-c-identifier ] unit-test
20
21 [ "_asdf400" ]
22 [ "_asdf400" <sequence-parser> take-c-identifier ] unit-test
23
24 [ "asdfasdf" ] [
25     "/*asdfasdf*/" <sequence-parser> take-c-comment
26 ] unit-test
27
28 [ "k" ] [
29     "/*asdfasdf*/k" <sequence-parser> [ take-c-comment drop ] [ take-rest ] bi
30 ] unit-test
31
32 [ "omg" ] [
33     "//asdfasdf\nomg" <sequence-parser>
34     [ take-c++-comment drop ] [ take-rest ] bi
35 ] unit-test
36
37 [ "omg" ] [
38     "omg" <sequence-parser>
39     [ take-c++-comment drop ] [ take-rest ] bi
40 ] unit-test
41
42 [ "/*asdfasdf" ] [
43     "/*asdfasdf" <sequence-parser> [ take-c-comment drop ] [ take-rest ] bi
44 ] unit-test
45
46 [ "asdf" "eoieoei" ] [
47     "//asdf\neoieoei" <sequence-parser>
48     [ take-c++-comment ] [ take-rest ] bi
49 ] unit-test
50
51 [ f ]
52 [
53     "\"abc\" asdf" <sequence-parser>
54     [ CHAR: \ CHAR: " take-quoted-string drop ] [ "asdf" take-sequence ] bi
55 ] unit-test
56
57 [ "abc\\\"def" ]
58 [
59     "\"abc\\\"def\" asdf" <sequence-parser>
60     CHAR: \ CHAR: " take-quoted-string
61 ] unit-test
62
63 [ "asdf" ]
64 [
65     "\"abc\" asdf" <sequence-parser>
66     [ CHAR: \ CHAR: " take-quoted-string drop ]
67     [ skip-whitespace "asdf" take-sequence ] bi
68 ] unit-test
69
70 [ f ]
71 [
72     "\"abc asdf" <sequence-parser>
73     CHAR: \ CHAR: " take-quoted-string
74 ] unit-test
75
76 [ "\"abc" ]
77 [
78     "\"abc asdf" <sequence-parser>
79     [ CHAR: \ CHAR: " take-quoted-string drop ]
80     [ "\"abc" take-sequence ] bi
81 ] unit-test
82
83 [ "c" ]
84 [ "c" <sequence-parser> take-token ] unit-test
85
86 [ f ]
87 [ "" <sequence-parser> take-token ] unit-test
88
89 [ "abcd e \\\"f g" ]
90 [ "\"abcd e \\\"f g\"" <sequence-parser> CHAR: \ CHAR: " take-token* ] unit-test
91
92 [ "123" ]
93 [ "123jjj" <sequence-parser> take-c-integer ] unit-test
94
95 [ "123uLL" ]
96 [ "123uLL" <sequence-parser> take-c-integer ] unit-test
97
98 [ "123ull" ]
99 [ "123ull" <sequence-parser> take-c-integer ] unit-test
100
101 [ "123u" ]
102 [ "123u" <sequence-parser> take-c-integer ] unit-test