in antlr-based-bootstrap/peg/GrammarLexer.java [489:619]
public final void mSTRING() throws RecognitionException {
try {
int _type = STRING;
int _channel = DEFAULT_TOKEN_CHANNEL;
// /Users/gregory/Projects/PEG/Grammar.g:48:2: ( '\\'' ( ESC | ~ ( '\\'' | '\\\\' ) )* '\\'' | '\"' ( ESC | ~ ( '\\\\' | '\"' ) )* '\"' )
int alt9=2;
int LA9_0 = input.LA(1);
if ( (LA9_0=='\'') ) {
alt9=1;
}
else if ( (LA9_0=='\"') ) {
alt9=2;
}
else {
NoViableAltException nvae =
new NoViableAltException("", 9, 0, input);
throw nvae;
}
switch (alt9) {
case 1 :
// /Users/gregory/Projects/PEG/Grammar.g:48:4: '\\'' ( ESC | ~ ( '\\'' | '\\\\' ) )* '\\''
{
match('\'');
// /Users/gregory/Projects/PEG/Grammar.g:48:9: ( ESC | ~ ( '\\'' | '\\\\' ) )*
loop7:
do {
int alt7=3;
int LA7_0 = input.LA(1);
if ( (LA7_0=='\\') ) {
alt7=1;
}
else if ( ((LA7_0>='\u0000' && LA7_0<='&')||(LA7_0>='(' && LA7_0<='[')||(LA7_0>=']' && LA7_0<='\uFFFF')) ) {
alt7=2;
}
switch (alt7) {
case 1 :
// /Users/gregory/Projects/PEG/Grammar.g:48:10: ESC
{
mESC();
}
break;
case 2 :
// /Users/gregory/Projects/PEG/Grammar.g:48:14: ~ ( '\\'' | '\\\\' )
{
if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
input.consume();
}
else {
MismatchedSetException mse = new MismatchedSetException(null,input);
recover(mse);
throw mse;}
}
break;
default :
break loop7;
}
} while (true);
match('\'');
}
break;
case 2 :
// /Users/gregory/Projects/PEG/Grammar.g:49:4: '\"' ( ESC | ~ ( '\\\\' | '\"' ) )* '\"'
{
match('\"');
// /Users/gregory/Projects/PEG/Grammar.g:49:8: ( ESC | ~ ( '\\\\' | '\"' ) )*
loop8:
do {
int alt8=3;
int LA8_0 = input.LA(1);
if ( (LA8_0=='\\') ) {
alt8=1;
}
else if ( ((LA8_0>='\u0000' && LA8_0<='!')||(LA8_0>='#' && LA8_0<='[')||(LA8_0>=']' && LA8_0<='\uFFFF')) ) {
alt8=2;
}
switch (alt8) {
case 1 :
// /Users/gregory/Projects/PEG/Grammar.g:49:9: ESC
{
mESC();
}
break;
case 2 :
// /Users/gregory/Projects/PEG/Grammar.g:49:15: ~ ( '\\\\' | '\"' )
{
if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
input.consume();
}
else {
MismatchedSetException mse = new MismatchedSetException(null,input);
recover(mse);
throw mse;}
}
break;
default :
break loop8;
}
} while (true);
match('\"');
}
break;
}
state.type = _type;
state.channel = _channel;
}
finally {
}
}