Add licence
[ilari-esolangs.git] / parser.h
blob31eb30d6d47b7dbf43be7304aba38c088691f7d8
1 #ifndef _parser__h__included__
2 #define _parser__h__included__
4 #include <stdlib.h>
6 /* Parser. */
7 struct parser;
9 /******************************************************************************
11 * DESCRIPTION:
12 * Create parser.
14 * RETURN VALUE:
15 * parser created.
17 *****************************************************************************/
18 struct parser* parser_create();
20 /******************************************************************************
22 * DESCRIPTION:
23 * Destroy parser.
25 * PARAMETERS:
26 * parser Parser to destroy.
28 *****************************************************************************/
29 void parser_destroy(struct parser* parser);
31 /******************************************************************************
33 * DESCRIPTION:
34 * Push character to parser.
36 * PARAMETERS:
37 * parser Parser to use.
38 * input Input character.
40 *****************************************************************************/
41 void parser_input(struct parser* parser, char input);
43 /******************************************************************************
45 * DESCRIPTION:
46 * Push End-Of-File character to parser.
48 * PARAMETERS:
49 * parser Parser to use.
51 *****************************************************************************/
52 void parser_eof(struct parser* parser);
54 /******************************************************************************
56 * DESCRIPTION:
57 * Get maximum locals count.
59 * PARAMETERS:
60 * parser Parser to use.
62 * RETURN VALUE:
63 * Maximum of locals count over all classes.
65 *****************************************************************************/
66 size_t parser_maxlocals(struct parser* parser);
69 #endif