private void _processBuffer()

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