@@ -14,8 +14,56 @@ public function test_simple_word_tokens(){
14
14
$ this ->lex_test ('hello world ' , array ('hello ' , 'world ' ));
15
15
}
16
16
17
- public function test_strip_comments_whitespace (){
17
+ public function testWhitespace (){
18
18
19
+ $ this ->lex_test ("foo bar " , array ("foo " , "bar " ));
20
+ $ this ->lex_test (" foo bar " , array ("foo " , "bar " ));
21
+ $ this ->lex_test ("\n\nfoo \tbar \n" , array ("foo " , "bar " ));
22
+
23
+ # with comments too
19
24
$ this ->lex_test ("hello \nworld-- foo \nyeah " , array ('hello ' , 'world ' , 'yeah ' ));
20
25
}
26
+
27
+ public function testComments (){
28
+ $ this ->lex_test ("foo -- bar " , array ("foo " ));
29
+ $ this ->lex_test ("foo --bar " , array ("foo " ));
30
+ $ this ->lex_test ("foo -- bar \n" , array ("foo " ));
31
+ $ this ->lex_test ("foo -- bar \n" , array ("foo " ));
32
+ $ this ->lex_test ("foo -- bar \n " , array ("foo " ));
33
+
34
+
35
+ $ this ->lex_test ("foo/ " ."* hello * " ."/ bar " , array ("foo " , "bar " ));
36
+ $ this ->lex_test ("foo/ " ."*hello* " ."/ bar " , array ("foo " , "bar " ));
37
+ $ this ->lex_test ("foo/ " ."* hello \n world * " ."/ bar " , array ("foo " , "bar " ));
38
+ $ this ->lex_test ("foo/ " ."*hello \n world* " ."/ bar " , array ("foo " , "bar " ));
39
+ }
40
+
41
+ public function testBacktickFields (){
42
+
43
+ $ this ->lex_test ("hello `world` foo " , array ("hello " , "`world` " , "foo " ));
44
+ $ this ->lex_test ("hello `world` foo " , array ("hello " , "`world` " , "foo " ));
45
+
46
+ # the token rules allow _anything_ inside backticks o_O
47
+ $ this ->lex_test ("hello `world \n test` foo " , array ("hello " , "`world \n test` " , "foo " ));
48
+
49
+ $ this ->lex_test ("hello `foo bar \n baz " , array ("hello " ));
50
+ }
51
+
52
+ public function testNumericLiterals (){
53
+
54
+ # normal cases
55
+ $ this ->lex_test ("1 12 12.3 12.34 " , array ("1 " , "12 " , "12.3 " , "12.34 " ));
56
+
57
+ # weird cases
58
+ $ this ->lex_test ("12. 1. .3 .34 " , array ("12. " , "1. " , ".3 " , ".34 " ));
59
+ }
60
+
61
+ public function testStrings (){
62
+
63
+ $ this ->lex_test ("foo 'bar' baz " , array ("foo " , "'bar' " , "baz " ));
64
+ $ this ->lex_test ("foo 'bar \\' baz' qux " , array ("foo " , "'bar \\' baz' " , "qux " ));
65
+
66
+ $ this ->lex_test ("foo \"bar \" baz " , array ("foo " , "\"bar \"" , "baz " ));
67
+ $ this ->lex_test ("foo \"bar \\\" baz \" qux " , array ("foo " , "\"bar \\\" baz \"" , "qux " ));
68
+ }
21
69
}
0 commit comments