text: // Generated by Flexc++ V2.07.07 on Sat, 16 May 2020 16:56:43 -44156756
  
  #ifndef zptJSONLexer_H_INCLUDED_
  #define zptJSONLexer_H_INCLUDED_
  
  // $insert baseclass_h
  #include <zapata/json/JSONLexerbase.h>
  
  // $insert namespace-open
  namespace zpt {
  
  // $insert classHead
  class JSONLexer : public JSONLexerBase {
    public:
      explicit JSONLexer(std::istream& in = std::cin, std::ostream& out = std::cout);
  
      JSONLexer(std::string const& infile, std::string const& outfile);
  
      // $insert lexFunctionDecl
      int lex();
  
    private:
      int lex_();
      int executeAction_(size_t ruleNr);
  
      void print();
      void preCode(); // re-implement this function for code that must
                      // be exec'ed before the patternmatching starts
  
      void postCode(PostEnum_ type);
      // re-implement this function for code that must
      // be exec'ed after the rules's actions.
  };
  
  // $insert scannerConstructors
  inline JSONLexer::JSONLexer(std::istream& in, std::ostream& out)
    : JSONLexerBase(in, out) {}
  
  inline JSONLexer::JSONLexer(std::string const& infile, std::string const& outfile)
    : JSONLexerBase(infile, outfile) {}
  
  // $insert inlineLexFunction
  inline int
  JSONLexer::lex() {
      return lex_();
  }
  
  inline void
  JSONLexer::preCode() {
      // optionally replace by your own code
  }
  
  inline void
  JSONLexer::postCode([[maybe_unused]] PostEnum_ type) {
      // optionally replace by your own code
  }
  
  inline void
  JSONLexer::print() {
      print_();
  }
  
  // $insert namespace-close
  }
  
  #endif // JSONLexer_H_INCLUDED_
  