@@ -190,8 +190,7 @@ token_T* lexer_parse_html_comment_content(lexer_T* lexer) {
190190token_T * lexer_handle_data_state (lexer_T * lexer ) {
191191 switch (lexer -> current_character ) {
192192 case '\n' : {
193- lexer_advance (lexer );
194- return token_init ("\n" , TOKEN_NEWLINE , lexer );
193+ return lexer_advance_current (lexer , TOKEN_NEWLINE );
195194 } break ;
196195
197196 case '<' : {
@@ -272,14 +271,12 @@ token_T* lexer_handle_erb_open_state(lexer_T* lexer) {
272271token_T * lexer_handle_html_attributes_state (lexer_T * lexer ) {
273272 switch (lexer -> current_character ) {
274273 case ' ' : {
275- lexer_advance (lexer );
276- return token_init (" " , TOKEN_WHITESPACE , lexer );
274+ return lexer_advance_current (lexer , TOKEN_WHITESPACE );
277275 } break ;
278276
279277 case '>' : {
280278 lexer -> state = STATE_DATA ;
281- lexer_advance (lexer );
282- return token_init (">" , TOKEN_HTML_TAG_END , lexer );
279+ return lexer_advance_current (lexer , TOKEN_HTML_TAG_END );
283280 } break ;
284281
285282 case '/' : {
@@ -308,15 +305,13 @@ token_T* lexer_handle_tag_name_state(lexer_T* lexer) {
308305
309306 switch (lexer -> current_character ) {
310307 case ' ' : {
311- lexer_advance (lexer );
312308 lexer -> state = STATE_HTML_ATTRIBUTES ;
313- return token_init ( " " , TOKEN_WHITESPACE , lexer );
309+ return lexer_advance_current ( lexer , TOKEN_WHITESPACE );
314310 } break ;
315311
316312 case '>' : {
317313 lexer -> state = STATE_DATA ;
318- lexer_advance (lexer );
319- return token_init (">" , TOKEN_HTML_TAG_END , lexer );
314+ return lexer_advance_current (lexer , TOKEN_HTML_TAG_END );
320315 } break ;
321316
322317 default : {
@@ -334,15 +329,13 @@ token_T* lexer_handle_tag_name_state(lexer_T* lexer) {
334329token_T * lexer_handle_html_attribute_name_state (lexer_T * lexer ) {
335330 switch (lexer -> current_character ) {
336331 case '=' : {
337- lexer_advance (lexer );
338332 lexer -> state = STATE_HTML_ATTRIBUTE_EQUALS ;
339- return token_init ( "=" , TOKEN_HTML_EQUALS , lexer );
333+ return lexer_advance_current ( lexer , TOKEN_HTML_EQUALS );
340334 } break ;
341335
342336 case ' ' : {
343- lexer_advance (lexer );
344337 lexer -> state = STATE_HTML_ATTRIBUTES ;
345- return token_init ( " " , TOKEN_WHITESPACE , lexer );
338+ return lexer_advance_current ( lexer , TOKEN_WHITESPACE );
346339 } break ;
347340
348341 case '/' : {
@@ -358,9 +351,8 @@ token_T* lexer_handle_html_attribute_name_state(lexer_T* lexer) {
358351 } break ;
359352
360353 case '>' : {
361- lexer_advance (lexer );
362354 lexer -> state = STATE_DATA ;
363- return token_init ( ">" , TOKEN_HTML_TAG_END , lexer );
355+ return lexer_advance_current ( lexer , TOKEN_HTML_TAG_END );
364356 } break ;
365357
366358 default : {
@@ -372,25 +364,21 @@ token_T* lexer_handle_html_attribute_name_state(lexer_T* lexer) {
372364token_T * lexer_handle_html_attribute_equals_state (lexer_T * lexer ) {
373365 switch (lexer -> current_character ) {
374366 case '"' : {
375- lexer_advance (lexer );
376- return token_init ("\"" , TOKEN_HTML_QUOTE , lexer );
367+ return lexer_advance_current (lexer , TOKEN_HTML_QUOTE );
377368 } break ;
378369
379370 case '\'' : {
380- lexer_advance (lexer );
381- return token_init ("'" , TOKEN_HTML_QUOTE , lexer );
371+ return lexer_advance_current (lexer , TOKEN_HTML_QUOTE );
382372 } break ;
383373
384374 case ' ' : {
385- lexer_advance (lexer );
386375 lexer -> state = STATE_HTML_ATTRIBUTES ;
387- return token_init ( " " , TOKEN_WHITESPACE , lexer );
376+ return lexer_advance_current ( lexer , TOKEN_WHITESPACE );
388377 } break ;
389378
390379 case '>' : {
391- lexer_advance (lexer );
392380 lexer -> state = STATE_DATA ;
393- return token_init ( ">" , TOKEN_HTML_TAG_END , lexer );
381+ return lexer_advance_current ( lexer , TOKEN_HTML_TAG_END );
394382 } break ;
395383
396384 default : {
@@ -402,21 +390,18 @@ token_T* lexer_handle_html_attribute_equals_state(lexer_T* lexer) {
402390token_T * lexer_handle_html_attribute_value_state (lexer_T * lexer ) {
403391 switch (lexer -> current_character ) {
404392 case '"' : {
405- lexer_advance (lexer );
406393 lexer -> state = STATE_HTML_ATTRIBUTES ;
407- return token_init ( "\"" , TOKEN_HTML_QUOTE , lexer );
394+ return lexer_advance_current ( lexer , TOKEN_HTML_QUOTE );
408395 } break ;
409396
410397 case '\'' : {
411- lexer_advance (lexer );
412398 lexer -> state = STATE_HTML_ATTRIBUTES ;
413- return token_init ( "'" , TOKEN_HTML_QUOTE , lexer );
399+ return lexer_advance_current ( lexer , TOKEN_HTML_QUOTE );
414400 } break ;
415401
416402 case ' ' : {
417- lexer_advance (lexer );
418403 lexer -> state = STATE_HTML_ATTRIBUTES ;
419- return token_init ( " " , TOKEN_WHITESPACE , lexer );
404+ return lexer_advance_current ( lexer , TOKEN_WHITESPACE );
420405 }
421406
422407 default : {
@@ -441,9 +426,8 @@ token_T* lexer_handle_html_tag_open_state(lexer_T* lexer) {
441426token_T * lexer_handle_html_tag_close_state (lexer_T * lexer ) {
442427 switch (lexer -> current_character ) {
443428 case '>' : {
444- lexer_advance (lexer );
445429 lexer -> state = STATE_DATA ;
446- return token_init ( ">" , TOKEN_HTML_TAG_END , lexer );
430+ return lexer_advance_current ( lexer , TOKEN_HTML_TAG_END );
447431 }
448432
449433 default : {
0 commit comments