blob: dfc2b6ab71f82ef9118163b8e544932faac3b3d6 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
/* SPDX-License-Identifier: GPL-3.0-or-later */
#ifndef PARSER_H
#define PARSER_H
#include <stddef.h>
#include <stdbool.h>
#include <cu/ast.h>
struct parser {
bool failed;
void *lexer;
size_t buf_offset;
const char *buf;
const char *fname;
size_t comment_nesting;
struct ast_node *tree;
};
#define YY_DECL int yylex(YYSTYPE *yylval, YYLTYPE *yylloc, \
yyscan_t yyscanner, struct parser *parser)
#include <../gen/gen_parser.h>
#ifndef FROM_LEXER
#include <../gen/gen_lexer.h>
#endif
YY_DECL;
struct parser *create_parser();
void destroy_parser(struct parser *p);
void parse(struct parser *p, const char *fname, const char *buf);
int next_interesting_feature(YYSTYPE *yylval, YYLTYPE *yylloc,
void *scanner, struct parser *parser);
struct src_loc to_src_loc(YYLTYPE *yylloc);
void yyerror(YYLTYPE *yylloc, void *lexer, struct parser *parser,
const char *msg);
long long match_escape(char c);
const char *clone_string(const char *s);
#endif /* PARSER_H */
|