in maven2-plugins/myfaces-javascript-plugin/src/main/java/org/apache/myfaces/buildtools/maven2/plugin/javascript/uixtools/Filter2.java [150:217]
private void _process2(Token cur) throws InterruptedException
{
if ((cur.code == Token.LEFT_BRACE) && (cur.ch == '{'))
_openCurly++;
else if ((cur.code == Token.RIGHT_BRACE) && (cur.ch == '}'))
_openCurly--;
switch(_state)
{
case ROOT_MODE :
if ((cur.code==Token.RESERVED) && (cur.string.equals("function")))
_state = FUNCTION_MODE;
break;
case FUNCTION_MODE :
if ((cur.code==Token.LEFT_BRACE) && (cur.ch=='('))
{
_state = FUNCTION_PARAM_MODE;
_localVarMap.clear();
}
else if (cur.code==Token.NAME)
{
//ystem.out.println("function name;"+cur.string);
_nameGen.reset();
}
break;
case FUNCTION_PARAM_MODE :
if ((cur.code==Token.LEFT_BRACE) && (cur.ch=='{'))
{
_state = FUNCTION_BODY_MODE;
_beginFunction = _openCurly;
}
else if (cur.code == Token.NAME)
{
//ystem.out.println(" param:"+cur.string);
Token tok = _getNewToken(cur);
cur = tok;
}
break;
case FUNCTION_BODY_MODE :
if (_openCurly<_beginFunction)
{
_state = ROOT_MODE;
}
else if (cur.code==Token.PERIOD)
_state = PERIOD_MODE;
else if ((cur.code==Token.RESERVED) && (cur.string.equals("var")))
_state = VAR_DEF_MODE;
else if (cur.code==Token.NAME)
{
cur = _substForToken(cur);
}
break;
case VAR_DEF_MODE :
if (cur.code==Token.NAME)
{
_state = FUNCTION_BODY_MODE;
//ystem.out.println(" local var:"+cur.string);
Token tok = _getNewToken(cur);
cur = tok;
}
break;
case PERIOD_MODE :
// this is just to skip the next token after a period.
_state = FUNCTION_BODY_MODE;
break;
}
_buffer.write(cur);
}