1 /************************************************************************
4 * (c) Copyright $YEAR, $COMPANY_EN. Inc., $CITY_EN, $COUNTRY_EN
5 * (c) Copyright $YEAR, $COMPANY_CN. Inc., $CITY_CN, $COUNTRY_CN
6 ************************************************************************
8 * function: TOKEN_IDÄ£¿é¡£
14 ************************************************************************/
16 /************************************************************************
21 ************************************************************************/
31 #include "src/symbol.h"
33 //extern struct expr *sym_env_list;
35 //#define expr_list_for_each_sym(l, e, s) \
36 // for (e = (l); e && (s = e->right.sym); e = e->left.expr)
38 /* Type Definations */
44 * when max_width is not zero long lines in string s (if any) get
45 * wrapped not to exceed the max_width value
51 * buffer for T_WORD/T_XXX_CONST/T_WORD_QUOTES ...
53 typedef struct __tag_CACHING_STR
{
55 int text_size
, text_asize
;
56 } CACHING_STR
, *PCACHING_STR
;
58 /* Public Variables and Functions */
60 /* lxr caching buffer */
61 extern CACHING_STR strbuff
;
65 /* memory allocation function set */
66 extern void *xmalloc(size_t size
);
67 extern void *xcalloc(size_t nmemb
, size_t size
);
68 extern void *xrealloc(void *p
, size_t size
);
69 extern char *xstrdup(const char *s
);
70 extern char *xstrndup(const char *s
, size_t n
);
71 extern void xfree(const char *s
);
73 extern struct gstr
str_new(void);
74 extern void str_free(struct gstr
*gs
);
75 extern void str_append(struct gstr
*gs
, const char *s
);
76 extern void str_printf(struct gstr
*gs
, const char *fmt
, ...);
77 extern const char *str_get(struct gstr
*gs
);
79 extern int file_write_dep(const char *name
);
80 extern struct file
*file_lookup(const char *name
);
82 /* lxr state stack functions */
83 extern void STATE_INIT (int state
);
84 extern void STATE_SET (int state
);
85 extern void STATE_ENTER (int state
);
86 extern int STATE_RESTORE (void);
88 /* caching string buffer for T_WORD and others */
90 extern int is_empty_string (CACHING_STR
*pstr_cache
);
91 extern int is_unallocated_string (CACHING_STR
*pstr_cache
);
92 extern void init_string (CACHING_STR
*pstr_cache
);
93 extern void new_string (CACHING_STR
*pstr_cache
);
94 extern void append_string (CACHING_STR
*pstr_cache
, const char *str
, int size
);
95 extern void alloc_string (CACHING_STR
*pstr_cache
, const char *str
, int size
);
96 extern int const_string (CACHING_STR
*pstr_cache
, int token
);
97 extern CACHING_STR
* dup_string (CACHING_STR
*pstr_cache
, CACHING_STR
*p_dst_str_cache
);
98 extern void free_string (CACHING_STR
*pstr_cache
);
102 #endif /* __UTIL_H__ */