@@ -158,3 +158,34 @@ TEST_CASE("Token location", "[token.location]") {
158158 REQUIRE (tokens[3 ].begin == pos); REQUIRE (tokens[3 ].end == pos+3 ); pos+=4 ; /* and */
159159 REQUIRE (tokens[4 ].begin == pos); REQUIRE (tokens[4 ].end == pos+4 ); pos+=4 ; /* true */
160160}
161+
162+ TEST_CASE (" Token to string" , " [token.to-string]" ) {
163+ auto tokens = tokenize (" 1 1.5 'Æthervial' re'.* Familiar' abc ()[]{},:._ * ** "
164+ " null true false + - * / % << >> & | ^ ~ not and or "
165+ " == != < <= > >= ? # typeof as ..." );
166+ REQUIRE (tokens);
167+
168+ auto i = 0 ;
169+ #define REQUIRE_STR (expr ) do { REQUIRE ((*tokens)[i].toString () == (expr)); ++i; } while (false )
170+
171+ REQUIRE_STR (" 1" );
172+ REQUIRE_STR (" 1.500000" );
173+ REQUIRE_STR (" 'Æthervial'" );
174+ REQUIRE_STR (" re'.* Familiar'" );
175+ REQUIRE_STR (" abc" );
176+ REQUIRE_STR (" (" ); REQUIRE_STR (" )" );
177+ REQUIRE_STR (" [" ); REQUIRE_STR (" ]" );
178+ REQUIRE_STR (" {" ); REQUIRE_STR (" }" );
179+ REQUIRE_STR (" ," ); REQUIRE_STR (" :" );
180+ REQUIRE_STR (" ." ); REQUIRE_STR (" _" );
181+ REQUIRE_STR (" *" ); REQUIRE_STR (" **" );
182+ REQUIRE_STR (" null" ); REQUIRE_STR (" true" ); REQUIRE_STR (" false" );
183+ REQUIRE_STR (" +" ); REQUIRE_STR (" -" ); REQUIRE_STR (" *" ); REQUIRE_STR (" /" );
184+ REQUIRE_STR (" %" );
185+ REQUIRE_STR (" <<" ); REQUIRE_STR (" >>" ); REQUIRE_STR (" &" ); REQUIRE_STR (" |" ); REQUIRE_STR (" ^" ); REQUIRE_STR (" ~" );
186+ REQUIRE_STR (" not" ); REQUIRE_STR (" and" ); REQUIRE_STR (" or" );
187+ REQUIRE_STR (" ==" ); REQUIRE_STR (" !=" ); REQUIRE_STR (" <" );
188+ REQUIRE_STR (" <=" ); REQUIRE_STR (" >" ); REQUIRE_STR (" >=" );
189+ REQUIRE_STR (" ?" ); REQUIRE_STR (" #" ); REQUIRE_STR (" typeof" );
190+ REQUIRE_STR (" as" ); REQUIRE_STR (" ..." );
191+ }
0 commit comments