private void _process2()

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);
  }