44 lines
1.2 KiB
C++
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
|