@@ -1395,6 +1395,7 @@ OPTIONAL_WHITESPACE_OR_COMMENTS ({WHITESPACE}|{MULTI_LINE_COMMENT}|{SINGLE_LINE_
13951395}
13961396
13971397<ST_IN_SCRIPTING>" function" {
1398+ yy_push_state (ST_IN_FUNC_DEF);
13981399 RETURN_TOKEN_WITH_IDENT (T_FUNCTION);
13991400}
14001401
@@ -1537,14 +1538,21 @@ OPTIONAL_WHITESPACE_OR_COMMENTS ({WHITESPACE}|{MULTI_LINE_COMMENT}|{SINGLE_LINE_
15371538 RETURN_TOKEN_WITH_IDENT (T_PRINT);
15381539}
15391540
1540- <ST_IN_SCRIPTING> " !🥖" {
1541+ <ST_IN_FUNC_DEF,ST_IN_GENERIC> " <" {
1542+ yy_push_state (ST_IN_GENERIC);
15411543 RETURN_TOKEN (T_GENERIC_START);
15421544}
15431545
1544- <ST_IN_SCRIPTING> " !🥥" {
1546+ <ST_IN_FUNC_DEF,ST_IN_GENERIC> " >" {
1547+ yy_pop_state ();
15451548 RETURN_TOKEN (T_GENERIC_END);
15461549}
15471550
1551+ <ST_IN_GENERIC>{LABEL} {
1552+ RETURN_TOKEN_WITH_STR (T_STRING, 0 );
1553+ }
1554+
1555+
15481556<ST_IN_SCRIPTING>" class" {
15491557 RETURN_TOKEN_WITH_IDENT (T_CLASS);
15501558}
@@ -1588,7 +1596,7 @@ OPTIONAL_WHITESPACE_OR_COMMENTS ({WHITESPACE}|{MULTI_LINE_COMMENT}|{SINGLE_LINE_
15881596 RETURN_TOKEN (T_NULLSAFE_OBJECT_OPERATOR);
15891597}
15901598
1591- <ST_IN_SCRIPTING,ST_LOOKING_FOR_PROPERTY>{WHITESPACE}+ {
1599+ <ST_IN_SCRIPTING,ST_LOOKING_FOR_PROPERTY, ST_IN_FUNC_DEF >{WHITESPACE}+ {
15921600 goto return_whitespace;
15931601}
15941602
@@ -1916,6 +1924,11 @@ OPTIONAL_WHITESPACE_OR_COMMENTS ({WHITESPACE}|{MULTI_LINE_COMMENT}|{SINGLE_LINE_
19161924 RETURN_TOKEN (yytext[0 ]);
19171925}
19181926
1927+ <ST_IN_FUNC_DEF>" (" {
1928+ enter_nesting (' (' );
1929+ yy_pop_state ();
1930+ }
1931+
19191932<ST_IN_SCRIPTING>{TOKENS} {
19201933 RETURN_TOKEN (yytext[0 ]);
19211934}
@@ -2402,7 +2415,7 @@ inline_char_handler:
24022415 RETURN_TOKEN(T_NS_SEPARATOR);
24032416}
24042417
2405- <ST_IN_SCRIPTING,ST_VAR_OFFSET>{LABEL} {
2418+ <ST_IN_SCRIPTING,ST_VAR_OFFSET,ST_IN_FUNC_DEF >{LABEL} {
24062419 RETURN_TOKEN_WITH_STR(T_STRING, 0);
24072420}
24082421
0 commit comments