Kiwi Assembler
Assembler for KiwiVM
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
KALex.h
Go to the documentation of this file.
1 
8 #ifndef KALEX_H
9 #define KALEX_H
10 
11 #include <KiwiEngine/KiwiEngine.h>
12 
16 struct KAParserState {
18  struct CNResource * resource ;
20  struct KEProgram * program ;
22  struct KEFile * inputFile ;
24  struct KEReservedWordTable * reservedWordTable ;
25 } ;
26 
28 #define YYSTYPE struct KEToken
29 
31 typedef void * ke_scan_t ;
32 
34 #define YY_EXTRA_TYPE struct KAParserState *
35 
36 #define YY_DECL int ke_lex(YYSTYPE * yylval_param, ke_scan_t yyscanner, struct KAParserState * pstate)
37 
38 #define YYLEX_PARAM scanner, pstate
39 
47 int
48 ke_lex(YYSTYPE * lval, ke_scan_t yyscanner, struct KAParserState * pstate) ;
49 
50 /* These functions are defined in the lex file */
51 
57 int
58 ke_lex_init(ke_scan_t * scanner) ;
59 
66 ke_get_extra (ke_scan_t scanner) ;
67 
73 void
74 ke_set_extra (YY_EXTRA_TYPE user_defined , ke_scan_t scanner);
75 
81 int
82 ke_lex_destroy (ke_scan_t scanner );
83 
90 void
91 ke_error(struct KAParserState * pstate,
92  ke_scan_t scanner,
93  const char * msg) ;
94 
95 #endif /* KALEX_H */
struct KEReservedWordTable * reservedWordTable
Definition: KALex.h:24
YY_EXTRA_TYPE ke_get_extra(ke_scan_t scanner)
Get user defined information from the scanner.
struct CNResource * resource
Definition: KALex.h:18
Resource to parse the program.
Definition: KALex.h:16
void * ke_scan_t
Definition: KALex.h:31
void ke_error(struct KAParserState *pstate, ke_scan_t scanner, const char *msg)
Output parser error.
#define YY_EXTRA_TYPE
Definition: KALex.h:34
void ke_set_extra(YY_EXTRA_TYPE user_defined, ke_scan_t scanner)
Set user defined information to the scanner.
int ke_lex_init(ke_scan_t *scanner)
Initialize the scanner DB for lex.
struct KEFile * inputFile
Definition: KALex.h:22
struct KEProgram * program
Definition: KALex.h:20
int ke_lex(YYSTYPE *lval, ke_scan_t yyscanner, struct KAParserState *pstate)
Main lex function to get next token.
int ke_lex_destroy(ke_scan_t scanner)
Release the context of lex scanner.
#define YYSTYPE
Definition: KALex.h:28