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 ;
8 " //jofiejoe\n //eoieow\n/*asdf*/\n "
9 <sequence-parser> skip-whitespace/comments n>>
13 [ "33asdf" <sequence-parser> [ take-c-identifier ] [ take-rest ] bi ] unit-test
16 [ "asdf" <sequence-parser> take-c-identifier ] unit-test
19 [ "_asdf" <sequence-parser> take-c-identifier ] unit-test
22 [ "_asdf400" <sequence-parser> take-c-identifier ] unit-test
25 "/*asdfasdf*/" <sequence-parser> take-c-comment
29 "/*asdfasdf*/k" <sequence-parser> [ take-c-comment drop ] [ take-rest ] bi
33 "//asdfasdf\nomg" <sequence-parser>
34 [ take-c++-comment drop ] [ take-rest ] bi
38 "omg" <sequence-parser>
39 [ take-c++-comment drop ] [ take-rest ] bi
43 "/*asdfasdf" <sequence-parser> [ take-c-comment drop ] [ take-rest ] bi
46 { "asdf" "eoieoei" } [
47 "//asdf\neoieoei" <sequence-parser>
48 [ take-c++-comment ] [ take-rest ] bi
53 "\"abc\" asdf" <sequence-parser>
54 [ CHAR: \ CHAR: " take-quoted-string drop ] [ "asdf" take-sequence ] bi
59 "\"abc\\\"def\" asdf" <sequence-parser>
60 CHAR: \ CHAR: " take-quoted-string
65 "\"abc\" asdf" <sequence-parser>
66 [ CHAR: \ CHAR: " take-quoted-string drop ]
67 [ skip-whitespace "asdf" take-sequence ] bi
72 "\"abc asdf" <sequence-parser>
73 CHAR: \ CHAR: " take-quoted-string
78 "\"abc asdf" <sequence-parser>
79 [ CHAR: \ CHAR: " take-quoted-string drop ]
80 [ "\"abc" take-sequence ] bi
84 [ "c" <sequence-parser> take-token ] unit-test
87 [ "" <sequence-parser> take-token ] unit-test
90 [ "\"abcd e \\\"f g\"" <sequence-parser> CHAR: \ CHAR: " take-token* ] unit-test
93 [ "123jjj" <sequence-parser> take-c-integer ] unit-test
96 [ "123uLL" <sequence-parser> take-c-integer ] unit-test
99 [ "123ull" <sequence-parser> take-c-integer ] unit-test
102 [ "123u" <sequence-parser> take-c-integer ] unit-test