maug
Quick and dirty C mini-augmentation library.
Macros | Functions
MLISP Abstract Syntax Tree Parser
Collaboration diagram for MLISP Abstract Syntax Tree Parser:

Macros

#define mlisp_parser_pstate(parser)
 
#define mlisp_parser_pstate_push(parser, new_pstate)    mparser_pstate_push( "mlisp", &((parser)->base), new_pstate )
 
#define mlisp_parser_pstate_pop(parser)    mparser_pstate_pop( "mlisp", &((parser)->base) )
 
#define mlisp_parser_invalid_c(parser, c, retval)    mparser_invalid_c( mlisp, &((parser)->base), c, retval )
 
#define mlisp_parser_reset_token(parser)    mparser_reset_token( "mlisp", &((parser)->base) )
 
#define mlisp_parser_append_token(parser, c)    mparser_append_token( "mlisp", &((parser)->base), c )
 
#define mlisp_parser_parse_token(parser)
 
#define mlisp_check_ast(parser)   (0 < mdata_vector_ct( &((parser)->ast) ))
 Macro to check if a parser contains a valid AST ready to be executed.
 

Functions

MERROR_RETVAL mlisp_ast_dump (struct MLISP_PARSER *parser, size_t ast_node_idx, size_t depth, char ab)
 Dump the given parser AST. More...
 

Detailed Description

Macro Definition Documentation

◆ mlisp_parser_parse_token

#define mlisp_parser_parse_token (   parser)
Value:
parser->token_parser( \
(parser)->token, (parser)->token_sz, (parser)->token_parser_arg )

◆ mlisp_parser_pstate

#define mlisp_parser_pstate (   parser)
Value:
((parser)->base.pstate_sz > 0 ? \
(parser)->base.pstate[(parser)->base.pstate_sz - 1] : MLISP_PSTATE_NONE)

Function Documentation

◆ mlisp_ast_dump()

MERROR_RETVAL mlisp_ast_dump ( struct MLISP_PARSER parser,
size_t  ast_node_idx,
size_t  depth,
char  ab 
)

Dump the given parser AST.

Warning
This is only available if MLISP_DUMP_ENABLED is defined at compile time!