1/*
2 * Copyright (C) 2010 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17#ifndef PARSER_H_
18#define PARSER_H_
19
20#define T_EOF 0
21#define T_TEXT 1
22#define T_NEWLINE 2
23
24struct parse_state
25{
26    char *ptr;
27    char *text;
28    int line;
29    int nexttoken;
30    void *context;
31    void (*parse_line)(struct parse_state *state, int nargs, char **args);
32    const char *filename;
33    void *priv;
34};
35
36void dump_parser_state(void);
37int next_token(struct parse_state *state);
38void parse_error(struct parse_state *state, const char *fmt, ...);
39
40#endif /* PARSER_H_ */
41