コード例 #1
0
ファイル: JsonParserImpl.java プロジェクト: wenshao/jsonp
    static {
      START_DOCUMENT.transition(JsonToken.CURLYOPEN, START_OBJECT);
      START_DOCUMENT.transition(JsonToken.SQUAREOPEN, START_ARRAY);

      START_OBJECT.transition(JsonToken.CURLYCLOSE, END_OBJECT);
      START_OBJECT.transition(JsonToken.STRING, KEY);

      KEY.transition(JsonToken.COLON, COLON);

      COLON.transition(JsonToken.STRING, OBJECT_STRING);
      COLON.transition(JsonToken.NUMBER, OBJECT_NUMBER);
      COLON.transition(JsonToken.TRUE, OBJECT_TRUE);
      COLON.transition(JsonToken.FALSE, OBJECT_FALSE);
      COLON.transition(JsonToken.NULL, OBJECT_NULL);
      COLON.transition(JsonToken.CURLYOPEN, START_OBJECT);
      COLON.transition(JsonToken.SQUAREOPEN, START_ARRAY);

      OBJECT_STRING.transition(JsonToken.CURLYCLOSE, END_OBJECT);
      OBJECT_STRING.transition(JsonToken.COMMA, OBJECT_COMMA);

      OBJECT_NUMBER.transition(JsonToken.CURLYCLOSE, END_OBJECT);
      OBJECT_NUMBER.transition(JsonToken.COMMA, OBJECT_COMMA);

      OBJECT_TRUE.transition(JsonToken.CURLYCLOSE, END_OBJECT);
      OBJECT_TRUE.transition(JsonToken.COMMA, OBJECT_COMMA);

      OBJECT_FALSE.transition(JsonToken.CURLYCLOSE, END_OBJECT);
      OBJECT_FALSE.transition(JsonToken.COMMA, OBJECT_COMMA);

      OBJECT_NULL.transition(JsonToken.CURLYCLOSE, END_OBJECT);
      OBJECT_NULL.transition(JsonToken.COMMA, OBJECT_COMMA);

      OBJECT_COMMA.transition(JsonToken.STRING, KEY);

      END_OBJECT.transition(JsonToken.CURLYCLOSE, END_OBJECT);
      END_OBJECT.transition(JsonToken.SQUARECLOSE, END_ARRAY);
      // Need an enclosing scope to determine the next state
      // END_OBJECT.transition(JsonToken.COMMA, OBJECT_COMMA or ARRAY_COMMA );
      END_OBJECT.transition(JsonToken.EOF, END_DOCUMENT);

      START_ARRAY.transition(JsonToken.STRING, ARRAY_STRING);
      START_ARRAY.transition(JsonToken.NUMBER, ARRAY_NUMBER);
      START_ARRAY.transition(JsonToken.TRUE, ARRAY_TRUE);
      START_ARRAY.transition(JsonToken.FALSE, ARRAY_FALSE);
      START_ARRAY.transition(JsonToken.NULL, ARRAY_NULL);
      START_ARRAY.transition(JsonToken.CURLYOPEN, START_OBJECT);
      START_ARRAY.transition(JsonToken.SQUAREOPEN, START_ARRAY);
      START_ARRAY.transition(JsonToken.SQUARECLOSE, END_ARRAY);

      ARRAY_STRING.transition(JsonToken.COMMA, ARRAY_COMMA);
      ARRAY_STRING.transition(JsonToken.SQUARECLOSE, END_ARRAY);

      ARRAY_NUMBER.transition(JsonToken.COMMA, ARRAY_COMMA);
      ARRAY_NUMBER.transition(JsonToken.SQUARECLOSE, END_ARRAY);

      ARRAY_TRUE.transition(JsonToken.COMMA, ARRAY_COMMA);
      ARRAY_TRUE.transition(JsonToken.SQUARECLOSE, END_ARRAY);

      ARRAY_FALSE.transition(JsonToken.COMMA, ARRAY_COMMA);
      ARRAY_FALSE.transition(JsonToken.SQUARECLOSE, END_ARRAY);

      ARRAY_NULL.transition(JsonToken.COMMA, ARRAY_COMMA);
      ARRAY_NULL.transition(JsonToken.SQUARECLOSE, END_ARRAY);

      ARRAY_COMMA.transition(JsonToken.STRING, ARRAY_STRING);
      ARRAY_COMMA.transition(JsonToken.NUMBER, ARRAY_NUMBER);
      ARRAY_COMMA.transition(JsonToken.TRUE, ARRAY_TRUE);
      ARRAY_COMMA.transition(JsonToken.FALSE, ARRAY_FALSE);
      ARRAY_COMMA.transition(JsonToken.NULL, ARRAY_NULL);
      ARRAY_COMMA.transition(JsonToken.CURLYOPEN, START_OBJECT);
      ARRAY_COMMA.transition(JsonToken.SQUAREOPEN, START_ARRAY);

      END_ARRAY.transition(JsonToken.CURLYCLOSE, END_OBJECT);
      END_ARRAY.transition(JsonToken.SQUARECLOSE, END_ARRAY);
      // Need an enclosing scope to determine the next state
      // END_ARRAY.transition(JsonToken.COMMA, OBJECT_COMMA or ARRAY_COMMA);
      END_ARRAY.transition(JsonToken.EOF, END_DOCUMENT);
    }