Modules/Parser/public/CfGrammar.hpp
2023-08-10 18:35:40 +03:00

29 lines
No EOL
475 B
C++

#pragma once
#include "Strings.hpp"
#include "List.hpp"
namespace tp {
struct CfGrammar {
struct Rule {
struct Arg {
String id;
bool isTerminal;
};
String id;
List<Arg> args;
};
List<Rule> rules;
String startTerminal;
public:
static struct CfGrammarParserState* initializeCfGrammarParser();
static void deinitializeCfGrammarParser(CfGrammarParserState*);
public:
void parse(CfGrammarParserState* context, const int1* source);
};
}