I am trying to parse some language with multi-line string literals using JFlex.
Examples:
'''
this is a valid multiline string literal with 'quoted' word
'''
I created two states:
%x IN_QUOTED_STRING
%x IN_MULTILINE_QUOTED_STRING
and created some macros and rules:
QUOTED_STRING_TAIL=[^\']* "'"
QUOTED_STRING_START="@"? "'"
MULTILINE_QUOTED_STRING_START = "@"? "'''"
MULTILINE_QUOTED_STRING_TAIL = [.]* "'''"
%%
<YYINITIAL> {MULTILINE_QUOTED_STRING_START} {yybegin(IN_MULTILINE_QUOTED_STRING);}
<YYINITIAL> {QUOTED_STRING_START} {yybegin(IN_QUOTED_STRING);}
<IN_QUOTED_STRING> {QUOTED_STRING_TAIL} {yybegin(YYINITIAL); return STRING;}
<IN_MULTILINE_QUOTED_STRING> {MULTILINE_QUOTED_STRING_TAIL} {yybegin(YYINITIAL); return STRING;}
But that will not work. I get the message "Error: input failed"
Can someone help me with proplem?
source
share