]> gitweb.factorcode.org Git - factor.git/blob - extra/c/lexer/lexer-tests.factor
e27e2257771a6714757415f8f7322dc4d35b84f0
[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