    # File lib/json/pure/parser.rb, line 112
          def parse
            reset
            obj = nil
            if @quirks_mode
              while !eos? && skip(IGNORE)
              end
              if eos?
                raise ParserError, "source did not contain any JSON!"
              else
                obj = parse_value
                obj == UNPARSED and raise ParserError, "source did not contain any JSON!"
              end
            else
              until eos?
                case
                when scan(OBJECT_OPEN)
                  obj and raise ParserError, "source '#{peek(20)}' not in JSON!"
                  @current_nesting = 1
                  obj = parse_object
                when scan(ARRAY_OPEN)
                  obj and raise ParserError, "source '#{peek(20)}' not in JSON!"
                  @current_nesting = 1
                  obj = parse_array
                when skip(IGNORE)
                  ;
                else
                  raise ParserError, "source '#{peek(20)}' not in JSON!"
                end
              end
              obj or raise ParserError, "source did not contain any JSON!"
            end
            obj
          end