diff options
Diffstat (limited to 'src/ctemplates.h')
| -rw-r--r-- | src/ctemplates.h | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/ctemplates.h b/src/ctemplates.h index eafabac..8bf567d 100644 --- a/src/ctemplates.h +++ b/src/ctemplates.h @@ -35,6 +35,7 @@ typedef struct TMPL_fmtlists TMPL_fmtlists; #define ATTRIBUTE_VARNAME "name" #define ATTRIBUTE_DEFAULT "default" #define ATTRIBUTE_VALUE "value" +#define ATTRIBUTE_LEVEL "level" #define ERRBUF_HINTLEN 50 @@ -55,6 +56,7 @@ typedef struct TMPL_fmtlists TMPL_fmtlists; #define ATTRIBUTE_VARNAME_LENGTH SIZEOF(ATTRIBUTE_VARNAME) - 1 #define ATTRIBUTE_DEFAULT_LENGTH SIZEOF(ATTRIBUTE_DEFAULT) - 1 #define ATTRIBUTE_VALUE_LENGTH SIZEOF(ATTRIBUTE_VALUE) - 1 +#define ATTRIBUTE_LEVEL_LENGTH SIZEOF(ATTRIBUTE_LEVEL) - 1 //Define to 0 for slight speedup improvements, no errors #define DEBUGGING 1 @@ -86,17 +88,21 @@ enum TMPL_vartype{ vartype_var }; +struct TMPL_varlist TMPL_varlist; +struct TMPL_loop TMPL_loop; struct TMPL_varlist{ map_t map; + struct TMPL_loop* parent; }TMPL_varlist; struct TMPL_loop{ struct TMPL_varlist* varlist; + struct TMPL_varlist* parent; size_t loop_len; struct TMPL_loop* next; struct TMPL_loop* tail; -}; +}TMPL_loop; struct TMPL_varitem{ enum TMPL_vartype type; @@ -110,6 +116,7 @@ struct TMPL_varitem{ struct TMPL_tagnode{ enum TMPL_tagtype type; struct TMPL_tagnode* next; + struct TMPL_tagnode* parent; unsigned int line; unsigned int character; union{ @@ -142,7 +149,8 @@ struct TMPL_tagnode{ /*Break and Continue*/ struct{ - int level; + int level;//Just use next as the next value + struct TMPL_tagnode* into; }breakcont; }TMPL_tag; }TMPL_tagnode; @@ -178,6 +186,7 @@ struct TMPL_token{ struct TMPL_token* last;//The last token unsigned int line;// Not used currently unsigned int character;// Not used currently + struct TMPL_tagnode* into;//The tag node this item became }TMPL_token; int TMPL_add_var_to_varlist(struct TMPL_varlist* vl, const char* name, const char* value); |
