A template parsing library and tool written in C.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

74 lines
1.4 KiB

#ifndef _STMT_H_
#define _STMT_H_
#define STMT_CONST 0
#define STMT_BLOCK 1
#define STMT_PRINT 10
#define STMT_IF 11
#define STMT_FOREACH 12
#define STMT_REPEAT 13
#define STMT_ASSIGN 14
#define STMT_UNSET 15
#define STMT_EVAL_PLUS 20
#define STMT_EVAL_MINUS 21
#define STMT_EVAL_TIMES 22
#define STMT_EVAL_OVER 23
#define STMT_EVAL_MODULO 24
#define STMT_EVAL_NEG 25
#define STMT_IDENT_VAR 30
#define STMT_IDENT_ARRAY 31
#define STMT_IDENT_VAL 32
#define STMT_CAST_INT 40
#define STMT_CAST_FLOAT 41
#define STMT_CAST_STRING 42
#define STMT_COMP_EQ 50
#define STMT_COMP_NE 51
#define STMT_COMP_LT 52
#define STMT_COMP_GT 53
#define STMT_COMP_LE 54
#define STMT_COMP_GE 55
#define STMT_COND_EXPR 60
#define STMT_COND_AND 61
#define STMT_COND_OR 62
#define STMT_COND_NEG 63
#define STYP_NONE 0
#define STYP_COND 1
#define STYP_EVAL 2
#define STYP_IDVAL 3
/*
* Deklaration und Definition
*/
union stmtType
{
int cond;
struct expVal * eVal;
struct ident * idVal;
};
typedef struct stmt s_stmt;
typedef union stmtType u_stmtType;
#include <stmtQueue.h>
#include <block.h>
/*
* Interface
*/
s_stmt * stmtNew (int, s_stmtQueue *, int, u_stmtType);
void stmtFree (s_stmt *);
s_stmtQueue * stmtGetArgs (s_stmt *);
u_stmtType stmtGetVal (s_stmt *);
int stmtGetConstTyp (s_stmt *);
u_stmtType stmtDo (s_stmt *, s_block *);
#endif /* _STMT_H_ */