kit

kit
git clone https://git.ryansepassi.com/git/kit.git
Log | Files | Refs | README

meta_tables.h (2423B)


      1 /* Generated by gramgen from meta.ebnf. */
      2 #ifndef META_TABLES_H_
      3 #define META_TABLES_H_
      4 
      5 #include <kit/gram_parse.h>
      6 #include <kit/gram_lex.h>
      7 
      8 enum {
      9     KIT_GRAM_META_TOK_EOF = 0,
     10     KIT_GRAM_META_TOK_TOKEN_DECL,
     11     KIT_GRAM_META_TOK_NAME,
     12     KIT_GRAM_META_TOK_EQ,
     13     KIT_GRAM_META_TOK_STRING,
     14     KIT_GRAM_META_TOK_SEMI,
     15     KIT_GRAM_META_TOK_PIPE,
     16     KIT_GRAM_META_TOK_EMPTY_DECL,
     17     KIT_GRAM_META_TOK_LPAREN,
     18     KIT_GRAM_META_TOK_RPAREN,
     19     KIT_GRAM_META_TOK_QUESTION,
     20     KIT_GRAM_META_TOK_STAR,
     21     KIT_GRAM_META_TOK_PRATT_DECL,
     22     KIT_GRAM_META_TOK_LBRACE,
     23     KIT_GRAM_META_TOK_RBRACE,
     24     KIT_GRAM_META_TOK_LEX_DECL,
     25     KIT_GRAM_META_TOK_MACHINE_DECL,
     26     KIT_GRAM_META_TOK_COLON,
     27     KIT_GRAM_META_TOK_SKIP_DECL,
     28     KIT_GRAM_META_TOK_DEF_DECL,
     29     KIT_GRAM_META_TOK_KEYWORDS_DECL,
     30     KIT_GRAM_META_TOK_PLUS,
     31     KIT_GRAM_META_TOK_REPEAT,
     32     KIT_GRAM_META_TOK_CHAR_CLASS,
     33     KIT_GRAM_META_TOK_UNICODE_PROP,
     34     KIT_GRAM_META_TOK_SHORTHAND,
     35     KIT_GRAM_META_TOK_DOT,
     36     KIT_GRAM_META_TOK_ANCHOR,
     37     KIT_GRAM_META_TOK__COUNT
     38 };
     39 
     40 enum {
     41     KIT_GRAM_META_R_grammar = 0,
     42     KIT_GRAM_META_R_item,
     43     KIT_GRAM_META_R_decl,
     44     KIT_GRAM_META_R_token_decl,
     45     KIT_GRAM_META_R_rule,
     46     KIT_GRAM_META_R_alt,
     47     KIT_GRAM_META_R_alt_tail,
     48     KIT_GRAM_META_R_seq,
     49     KIT_GRAM_META_R_factor,
     50     KIT_GRAM_META_R_primary,
     51     KIT_GRAM_META_R_quant,
     52     KIT_GRAM_META_R_pratt_rule,
     53     KIT_GRAM_META_R_pratt_line,
     54     KIT_GRAM_META_R_pratt_atom,
     55     KIT_GRAM_META_R_lex_block,
     56     KIT_GRAM_META_R_machine_block,
     57     KIT_GRAM_META_R_lex_name,
     58     KIT_GRAM_META_R_lex_mode,
     59     KIT_GRAM_META_R_lex_line,
     60     KIT_GRAM_META_R_lex_rule,
     61     KIT_GRAM_META_R_skip_rule,
     62     KIT_GRAM_META_R_def_rule,
     63     KIT_GRAM_META_R_keywords_block,
     64     KIT_GRAM_META_R_kw_entry,
     65     KIT_GRAM_META_R_kw_value,
     66     KIT_GRAM_META_R_lex_alt,
     67     KIT_GRAM_META_R_lex_alt_tail,
     68     KIT_GRAM_META_R_lex_seq,
     69     KIT_GRAM_META_R_lex_factor,
     70     KIT_GRAM_META_R_lex_quant,
     71     KIT_GRAM_META_R_lex_primary,
     72     KIT_GRAM_META_R__COUNT
     73 };
     74 
     75 void kit_gram_meta_stack_bounds(size_t max_depth, size_t* ctl_cap, size_t* val_cap);
     76 size_t kit_gram_meta_generate_scratch_count(void);
     77 void kit_gram_meta_parser_init(KitGramParser *mem, const KitGramConfig *cfg);
     78 
     79 void kit_gram_meta_matcher_init(KitGramMatcher *m);
     80 void kit_gram_meta_lexer_init(KitGramLexer *mem, KitGramLexInput *in, const KitGramLexConfig *cfg);
     81 
     82 #endif /* META_TABLES_H_ */