// 
// Decompiled by Procyon v0.6.0
// 

package com.google.gson;

import com.google.errorprone.annotations.InlineMe;
import com.google.gson.internal.Streams;
import java.io.IOException;
import com.google.gson.stream.MalformedJsonException;
import com.google.gson.stream.JsonToken;
import com.google.gson.stream.JsonReader;
import java.io.Reader;
import java.io.StringReader;

public final class JsonParser
{
    @Deprecated
    public JsonParser() {
    }
    
    public static JsonElement parseString(final String json) throws JsonSyntaxException {
        return parseReader(new StringReader(json));
    }
    
    public static JsonElement parseReader(final Reader reader) throws JsonIOException, JsonSyntaxException {
        try {
            final JsonReader jsonReader = new JsonReader(reader);
            final JsonElement element = parseReader(jsonReader);
            if (!element.isJsonNull() && jsonReader.peek() != JsonToken.END_DOCUMENT) {
                throw new JsonSyntaxException("Did not consume the entire document.");
            }
            return element;
        }
        catch (final MalformedJsonException | NumberFormatException e) {
            throw new JsonSyntaxException(e);
        }
        catch (final IOException e2) {
            throw new JsonIOException(e2);
        }
    }
    
    public static JsonElement parseReader(final JsonReader reader) throws JsonIOException, JsonSyntaxException {
        final Strictness strictness = reader.getStrictness();
        if (strictness == Strictness.LEGACY_STRICT) {
            reader.setStrictness(Strictness.LENIENT);
        }
        try {
            return Streams.parse(reader);
        }
        catch (final StackOverflowError | OutOfMemoryError e) {
            throw new JsonParseException("Failed parsing JSON source: " + reader + " to Json", e);
        }
        finally {
            reader.setStrictness(strictness);
        }
    }
    
    @Deprecated
    @InlineMe(replacement = "JsonParser.parseString(json)", imports = { "com.google.gson.JsonParser" })
    public JsonElement parse(final String json) throws JsonSyntaxException {
        return parseString(json);
    }
    
    @Deprecated
    @InlineMe(replacement = "JsonParser.parseReader(json)", imports = { "com.google.gson.JsonParser" })
    public JsonElement parse(final Reader json) throws JsonIOException, JsonSyntaxException {
        return parseReader(json);
    }
    
    @Deprecated
    @InlineMe(replacement = "JsonParser.parseReader(json)", imports = { "com.google.gson.JsonParser" })
    public JsonElement parse(final JsonReader json) throws JsonIOException, JsonSyntaxException {
        return parseReader(json);
    }
}
