]> git.armaanb.net Git - gen-shell.git/blobdiff - src/libshared/src/JSON.h
removed libshared dependency
[gen-shell.git] / src / libshared / src / JSON.h
diff --git a/src/libshared/src/JSON.h b/src/libshared/src/JSON.h
deleted file mode 100644 (file)
index 7a7465e..0000000
+++ /dev/null
@@ -1,183 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-// Copyright 2006 - 2017, Paul Beckingham, Federico Hernandez.
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included
-// in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-//
-// http://www.opensource.org/licenses/mit-license.php
-//
-////////////////////////////////////////////////////////////////////////////////
-
-#ifndef INCLUDED_JSON
-#define INCLUDED_JSON
-
-#include <map>
-#include <vector>
-#include <string>
-#include <Pig.h>
-
-namespace json
-{
-  enum jtype
-  {
-    j_value,    // 0
-    j_object,   // 1
-    j_array,    // 2
-    j_string,   // 3
-    j_number,   // 4
-    j_literal   // 5
-  };
-
-  class value
-  {
-  public:
-    value () {}
-    virtual ~value () {}
-    static value* parse (Pig&);
-    virtual jtype type ();
-    virtual std::string dump () const;
-  };
-
-  class string : public value
-  {
-  public:
-    string () {}
-    string (const std::string&);
-    ~string () {}
-    static string* parse (Pig&);
-    jtype type ();
-    std::string dump () const;
-
-  public:
-    std::string _data;
-  };
-
-  class number : public value
-  {
-  public:
-    number () : _dvalue (0.0) {}
-    ~number () {}
-    static number* parse (Pig&);
-    jtype type ();
-    std::string dump () const;
-    operator double () const;
-
-  public:
-    double _dvalue;
-  };
-
-  class literal : public value
-  {
-  public:
-    literal () : _lvalue (none) {}
-    ~literal () {}
-    static literal* parse (Pig&);
-    jtype type ();
-    std::string dump () const;
-
-  public:
-    enum literal_value {none, nullvalue, falsevalue, truevalue};
-    literal_value _lvalue;
-  };
-
-  class array : public value
-  {
-  public:
-    array () {}
-    ~array ();
-    static array* parse (Pig&);
-    jtype type ();
-    std::string dump () const;
-
-  public:
-    std::vector <value*> _data;
-  };
-
-  class object : public value
-  {
-  public:
-    object () {}
-    ~object ();
-    static object* parse (Pig&);
-    static bool parse_pair (Pig&, std::string&, value*&);
-    jtype type ();
-    std::string dump () const;
-
-  public:
-    std::map <std::string, value*> _data;
-  };
-
-  // Parser entry point.
-  value* parse (const std::string&);
-
-  // Encode/decode for JSON entities.
-  std::string encode (const std::string&);
-  std::string decode (const std::string&);
-
-  class SAX
-  {
-  public:
-    class Sink
-    {
-    public:
-      virtual void eventDocStart () {}
-      virtual void eventDocEnd () {}
-      virtual void eventObjectStart () {}
-      virtual void eventObjectEnd (int) {}
-      virtual void eventArrayStart () {}
-      virtual void eventArrayEnd (int) {}
-      virtual void eventName (const std::string&) {}
-      virtual void eventValueNull () {}
-      virtual void eventValueBool (bool) {}
-      virtual void eventValueInt (int64_t) {}
-      virtual void eventValueUint (uint64_t) {}
-      virtual void eventValueDouble (double) {}
-      virtual void eventValueString (const std::string&) {}
-    };
-
-    bool parse (const std::string&, json::SAX::Sink&);
-
-  private:
-    void ignoreWhitespace (const std::string&, std::string::size_type&);
-    bool isObject         (const std::string&, std::string::size_type&, SAX::Sink&);
-    bool isArray          (const std::string&, std::string::size_type&, SAX::Sink&);
-    bool isPair           (const std::string&, std::string::size_type&, SAX::Sink&);
-    bool isValue          (const std::string&, std::string::size_type&, SAX::Sink&);
-    bool isKey            (const std::string&, std::string::size_type&, SAX::Sink&);
-    bool isString         (const std::string&, std::string::size_type&, SAX::Sink&);
-    bool isStringValue    (const std::string&, std::string::size_type&, std::string&);
-    bool isNumber         (const std::string&, std::string::size_type&, SAX::Sink&);
-    bool isInt            (const std::string&, std::string::size_type&, std::string&);
-    bool isFrac           (const std::string&, std::string::size_type&, std::string&);
-    bool isDigits         (const std::string&, std::string::size_type&);
-    bool isDecDigit       (int);
-    bool isHexDigit       (int);
-    int  hexToInt         (int);
-    int  hexToInt         (int, int, int, int);
-    bool isExp            (const std::string&, std::string::size_type&, std::string&);
-    bool isE              (const std::string&, std::string::size_type&);
-    bool isBool           (const std::string&, std::string::size_type&, SAX::Sink&);
-    bool isNull           (const std::string&, std::string::size_type&, SAX::Sink&);
-    bool isLiteral        (const std::string&, char, std::string::size_type&);
-    void error            (const std::string&, std::string::size_type);
-  };
-}
-
-#endif
-////////////////////////////////////////////////////////////////////////////////