@@ -105,6 +105,17 @@ ZEND_API ts_rsrc_id ini_scanner_globals_id;
105
105
ZEND_API zend_ini_scanner_globals ini_scanner_globals;
106
106
#endif
107
107
108
+ /* Eat leading whitespace */
109
+ #define EAT_LEADING_WHITESPACE () \
110
+ while (yytext[0 ]) { \
111
+ if (yytext[0 ] == ' ' || yytext[0 ] == ' \t ' ) { \
112
+ SCNG (yy_text)++; \
113
+ yyleng--; \
114
+ } else { \
115
+ break ; \
116
+ } \
117
+ }
118
+
108
119
/* Eat trailing whitespace + extra char */
109
120
#define EAT_TRAILING_WHITESPACE_EX (ch ) \
110
121
while (yyleng > 0 && ( \
@@ -326,7 +337,7 @@ NEWLINE ("\r"|"\n"|"\r\n")
326
337
TABS_AND_SPACES [ \t]
327
338
WHITESPACE [ \t]+
328
339
CONSTANT [a-zA-Z][a-zA-Z0-9_]*
329
- LABEL [^=\n\r\t ;|&$~(){}!"\[]+
340
+ LABEL [^=\n\r\t;|&$~(){}!"\[]+
330
341
TOKENS [:,.\[\]"'()|^&+-/*=%$!~<>?@{}]
331
342
OPERATORS [&|~()!]
332
343
DOLLAR_CURLY "${"
@@ -367,6 +378,9 @@ SECTION_VALUE_CHARS ([^$\n\r;"'\]\\]|("\\"{ANY_CHAR})|{LITERAL_DOLLAR})
367
378
}
368
379
369
380
<INITIAL>{LABEL}" [" {TABS_AND_SPACES}* { /* Start of option with offset */
381
+ /* Eat leading whitespace */
382
+ EAT_LEADING_WHITESPACE ();
383
+
370
384
/* Eat trailing whitespace and [ */
371
385
EAT_TRAILING_WHITESPACE_EX (' [' );
372
386
@@ -387,6 +401,12 @@ SECTION_VALUE_CHARS ([^$\n\r;"'\]\\]|("\\"{ANY_CHAR})|{LITERAL_DOLLAR})
387
401
}
388
402
389
403
<ST_VARNAME>{LABEL} { /* Variable name */
404
+ /* Eat leading whitespace */
405
+ EAT_LEADING_WHITESPACE ();
406
+
407
+ /* Eat trailing whitespace */
408
+ EAT_TRAILING_WHITESPACE ();
409
+
390
410
RETURN_TOKEN (TC_VARNAME, yytext, yyleng);
391
411
}
392
412
@@ -404,6 +424,12 @@ SECTION_VALUE_CHARS ([^$\n\r;"'\]\\]|("\\"{ANY_CHAR})|{LITERAL_DOLLAR})
404
424
}
405
425
406
426
<INITIAL>{LABEL} { /* Get option name */
427
+ /* Eat leading whitespace */
428
+ EAT_LEADING_WHITESPACE ();
429
+
430
+ /* Eat trailing whitespace */
431
+ EAT_TRAILING_WHITESPACE ();
432
+
407
433
RETURN_TOKEN (TC_LABEL, yytext, yyleng);
408
434
}
409
435
0 commit comments