NJUPT-Compile/1/Parser.h
2024-06-15 21:40:42 +08:00

42 lines
873 B
C++

//
// Created by kagura on 4/24/24.
//
#ifndef INC_1_PARSER_H
#define INC_1_PARSER_H
#include <iostream>
#include <fstream>
#include <format>
#include "Classifier.h"
using namespace std;
class Parser {
private:
fstream file;
Classifier classifier;
string result;
public:
// 状态机的状态
enum State{
VOID, // 初始状态
INTEGER, // 整数
SEMICOLON, // 多个分号可以合并
NAME, // 名称
COMMENT_LINE, // 单行注释
COMMENT_BLOCK, // 多行注释
};
State state = VOID;
State last_state = VOID;
explicit Parser(const char* filename);
~Parser() = default;
void parse();
void print_result();
void append_result(const string &name);
};
#endif //INC_1_PARSER_H