Kiwi Assembler
Assembler for KiwiVM
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
Data Structures | Macros | Typedefs | Functions
KALex.h File Reference

Lexical analyzer for Kiwi Assember. More...

#include <KiwiEngine/KiwiEngine.h>

Go to the source code of this file.

Data Structures

struct  KAParserState
 Resource to parse the program. More...
 

Macros

#define YYSTYPE   struct KEToken
 
#define YY_EXTRA_TYPE   struct KAParserState *
 
#define YY_DECL   int ke_lex(YYSTYPE * yylval_param, ke_scan_t yyscanner, struct KAParserState * pstate)
 
#define YYLEX_PARAM   scanner, pstate
 

Typedefs

typedef void * ke_scan_t
 

Functions

int ke_lex (YYSTYPE *lval, ke_scan_t yyscanner, struct KAParserState *pstate)
 Main lex function to get next token. More...
 
int ke_lex_init (ke_scan_t *scanner)
 Initialize the scanner DB for lex. More...
 
YY_EXTRA_TYPE ke_get_extra (ke_scan_t scanner)
 Get user defined information from the scanner. More...
 
void ke_set_extra (YY_EXTRA_TYPE user_defined, ke_scan_t scanner)
 Set user defined information to the scanner. More...
 
int ke_lex_destroy (ke_scan_t scanner)
 Release the context of lex scanner. More...
 
void ke_error (struct KAParserState *pstate, ke_scan_t scanner, const char *msg)
 Output parser error. More...
 

Detailed Description

Lexical analyzer for Kiwi Assember.

Copyright
Copyright (C) 2013 Steel Wheels Project

Macro Definition Documentation

#define YY_DECL   int ke_lex(YYSTYPE * yylval_param, ke_scan_t yyscanner, struct KAParserState * pstate)

Declaration of ke_lex (yylex) function

#define YY_EXTRA_TYPE   struct KAParserState *

Additional parameter in the parser

#define YYLEX_PARAM   scanner, pstate

Definition of parameters of ke_lex (yylex) function

#define YYSTYPE   struct KEToken

Define type of token

Typedef Documentation

typedef void* ke_scan_t

Type of scanner

Function Documentation

void ke_error ( struct KAParserState pstate,
ke_scan_t  scanner,
const char *  msg 
)

Output parser error.

Parameters
pstateParser resource
scannerLex scanner
msgParser error message
YY_EXTRA_TYPE ke_get_extra ( ke_scan_t  scanner)

Get user defined information from the scanner.

Returns
User defined info
Parameters
scannerSource scanner
int ke_lex ( YYSTYPE lval,
ke_scan_t  yyscanner,
struct KAParserState pstate 
)

Main lex function to get next token.

Returns
There are token or not
Parameters
lvalNext token
yyscannerScanner lex info
pstateScanner resource
int ke_lex_destroy ( ke_scan_t  scanner)

Release the context of lex scanner.

Returns
Result value
Parameters
scannerDestination scanner
int ke_lex_init ( ke_scan_t scanner)

Initialize the scanner DB for lex.

Returns
Result code
Parameters
scannerDestination scanner
void ke_set_extra ( YY_EXTRA_TYPE  user_defined,
ke_scan_t  scanner 
)

Set user defined information to the scanner.

Parameters
user_definedSource user defined info
scannerDestination scanner