Parsodus/examples/json/parser.h

44 lines
1.2 KiB
C++

#pragma once
#ifndef PARSER_H
#define PARSER_H
#include "JSONLexer.h"
#include "JSONParser.h"
#include "json.h"
#include <deque>
#include <memory>
#include <stdexcept>
namespace json {
class Parser : public JSONParser<JSON> {
public:
Parser(JSONLexer lex);
protected:
Token lex() override;
JSON reduce_0(std::deque<Token> subparts) override;
JSON reduce_1(std::deque<Token> subparts) override;
JSON reduce_2(std::deque<Token> subparts) override;
JSON reduce_3(std::deque<Token> subparts) override;
JSON reduce_4(std::deque<Token> subparts) override;
JSON reduce_5(std::deque<Token> subparts) override;
JSON reduce_6(std::deque<Token> subparts) override;
JSON reduce_7(std::deque<Token> subparts) override;
JSON reduce_8(std::deque<Token> subparts) override;
JSON reduce_9(std::deque<Token> subparts) override;
JSON reduce_10(std::deque<Token> subparts) override;
JSON reduce_11(std::deque<Token> subparts) override;
JSON reduce_12(std::deque<Token> subparts) override;
JSON reduce_13(std::deque<Token> subparts) override;
JSON reduce_14(std::deque<Token> subparts) override;
private:
JSONLexer m_lex;
};
}
#endif