Spaces:
Runtime error
Runtime error
| // Implements a parser for an extended Backus-Naur form (BNF), producing the | |
| // binary context-free grammar format specified by llama.h. Supports character | |
| // ranges, grouping, and repetition operators. As an example, a grammar for | |
| // arithmetic might look like: | |
| // | |
| // root ::= expr | |
| // expr ::= term ([-+*/] term)* | |
| // term ::= num | "(" space expr ")" space | |
| // num ::= [0-9]+ space | |
| // space ::= [ \t\n]* | |
| namespace grammar_parser { | |
| struct parse_state { | |
| std::map<std::string, uint32_t> symbol_ids; | |
| std::vector<std::vector<llama_grammar_element>> rules; | |
| std::vector<const llama_grammar_element *> c_rules(); | |
| }; | |
| parse_state parse(const char * src); | |
| void print_grammar(FILE * file, const parse_state & state); | |
| } | |