Index: src/parser.h |
=================================================================== |
--- src/parser.h (revision 7898) |
+++ src/parser.h (working copy) |
@@ -760,68 +760,6 @@ |
DISALLOW_IMPLICIT_CONSTRUCTORS(CompileTimeValue); |
}; |
- |
-// ---------------------------------------------------------------------------- |
-// JSON PARSING |
- |
-// JSON is a subset of JavaScript, as specified in, e.g., the ECMAScript 5 |
-// specification section 15.12.1 (and appendix A.8). |
-// The grammar is given section 15.12.1.2 (and appendix A.8.2). |
-class JsonParser BASE_EMBEDDED { |
- public: |
- // Parse JSON input as a single JSON value. |
- // Returns null handle and sets exception if parsing failed. |
- static Handle<Object> Parse(Handle<String> source) { |
- if (source->IsExternalTwoByteString()) { |
- ExternalTwoByteStringUC16CharacterStream stream( |
- Handle<ExternalTwoByteString>::cast(source), 0, source->length()); |
- return JsonParser().ParseJson(source, &stream); |
- } else { |
- GenericStringUC16CharacterStream stream(source, 0, source->length()); |
- return JsonParser().ParseJson(source, &stream); |
- } |
- } |
- |
- private: |
- JsonParser() |
- : isolate_(Isolate::Current()), |
- scanner_(isolate_->unicode_cache()) { } |
- ~JsonParser() { } |
- |
- Isolate* isolate() { return isolate_; } |
- |
- // Parse a string containing a single JSON value. |
- Handle<Object> ParseJson(Handle<String> script, UC16CharacterStream* source); |
- // Parse a single JSON value from input (grammar production JSONValue). |
- // A JSON value is either a (double-quoted) string literal, a number literal, |
- // one of "true", "false", or "null", or an object or array literal. |
- Handle<Object> ParseJsonValue(); |
- // Parse a JSON object literal (grammar production JSONObject). |
- // An object literal is a squiggly-braced and comma separated sequence |
- // (possibly empty) of key/value pairs, where the key is a JSON string |
- // literal, the value is a JSON value, and the two are separated by a colon. |
- // A JSON array dosn't allow numbers and identifiers as keys, like a |
- // JavaScript array. |
- Handle<Object> ParseJsonObject(); |
- // Parses a JSON array literal (grammar production JSONArray). An array |
- // literal is a square-bracketed and comma separated sequence (possibly empty) |
- // of JSON values. |
- // A JSON array doesn't allow leaving out values from the sequence, nor does |
- // it allow a terminal comma, like a JavaScript array does. |
- Handle<Object> ParseJsonArray(); |
- |
- // Mark that a parsing error has happened at the current token, and |
- // return a null handle. Primarily for readability. |
- Handle<Object> ReportUnexpectedToken() { return Handle<Object>::null(); } |
- // Converts the currently parsed literal to a JavaScript String. |
- Handle<String> GetString(); |
- // Converts the currently parsed literal to a JavaScript Symbol String. |
- Handle<String> GetSymbol(); |
- |
- Isolate* isolate_; |
- JsonScanner scanner_; |
- bool stack_overflow_; |
-}; |
} } // namespace v8::internal |
#endif // V8_PARSER_H_ |