in maven-javascript-plugin/src/main/java/org/apache/myfaces/trinidadbuild/plugin/javascript/uixtools/Tokenizer.java [99:168]
private void _processBuffer() throws InterruptedException
{
_offset = 0;
for(;_offset<_len;)
{
//ystem.out.println("line:"+_lineNumber+" offset:"+_offset);
char ch = _buffer.charAt(_offset++);
switch(_status)
{
case ROOT_MODE :
case DIVISION_MODE :
_next = _rootMode(ch, _status);
break;
case READ_WORD_MODE :
_next = _readWordMode(ch, _status, _str);
break;
case QUOTE1_MODE :
case QUOTE2_MODE :
_next = _quoteMode(ch, _status, _prev, _str);
break;
case ESCAPED_CHAR_MODE :
_str.append('\\');
_str.append(ch);
_next = _prev;
break;
case POSSIBLE_COMMENT_MODE :
if (ch=='/') _next = COMMENT1_MODE;
else if (ch=='*') _next = COMMENT2_MODE;
else
{
_offset--; //Roll Back one
if (_prev == DIVISION_MODE)
{
_writeControl('/');
_next = ROOT_MODE;
}
else
{
_next = REGULAR_EXP_MODE;
}
}
break;
case COMMENT1_MODE :
case COMMENT2_MODE :
case END_COMMENT_MODE :
_next = _commentMode(ch, _status, _str);
break;
case REGULAR_EXP_MODE :
_next = _regularExpMode(ch, _str);
break;
case END_REGULAR_EXP_MODE :
if ((ch=='g') || (ch=='i'))
{
_out.write(new Token(Token.REGULAR_EXP_MODIFIER,
_lineNumber,
ch));
_next = END_REGULAR_EXP_MODE;
}
else
{
_offset--; //Rollback
_next = ROOT_MODE;
}
break;
}
_prev = _status;
_status = _next;
}
}