Lines Matching refs:token

98 static void _lv_svg_token_init(_lv_svg_token_t * token)  in _lv_svg_token_init()  argument
100 token->start = NULL; in _lv_svg_token_init()
101 token->end = NULL; in _lv_svg_token_init()
102 token->type = LV_SVG_TOKEN_CONTENT; in _lv_svg_token_init()
103 token->flat = false; in _lv_svg_token_init()
104 token->cur_attr = NULL; in _lv_svg_token_init()
105 lv_array_init(&token->attrs, LV_ARRAY_DEFAULT_CAPACITY, sizeof(_lv_svg_token_attr_t)); in _lv_svg_token_init()
108 static void _lv_svg_token_reset(_lv_svg_token_t * token) in _lv_svg_token_reset() argument
110 token->start = NULL; in _lv_svg_token_reset()
111 token->end = NULL; in _lv_svg_token_reset()
112 token->type = LV_SVG_TOKEN_CONTENT; in _lv_svg_token_reset()
113 token->flat = false; in _lv_svg_token_reset()
114 token->cur_attr = NULL; in _lv_svg_token_reset()
115 lv_array_clear(&token->attrs); in _lv_svg_token_reset()
118 static bool _lv_svg_token_process(_lv_svg_token_t * token, svg_token_process cb, void * data) in _lv_svg_token_process() argument
120 if(!token->start || SVG_TOKEN_LEN(token) == 0) in _lv_svg_token_process()
123 bool ret = cb(token, data); in _lv_svg_token_process()
124 _lv_svg_token_reset(token); in _lv_svg_token_process()
128 static _lv_svg_token_attr_t * _new_svg_attr(_lv_svg_token_t * token) in _new_svg_attr() argument
130 if((lv_array_size(&token->attrs) + 1) > lv_array_capacity(&token->attrs)) { in _new_svg_attr()
131 lv_array_resize(&token->attrs, token->attrs.capacity << 1); in _new_svg_attr()
134 token->attrs.size++; in _new_svg_attr()
135 _lv_svg_token_attr_t * attr = lv_array_at(&token->attrs, token->attrs.size - 1); in _new_svg_attr()
140 static void _svg_parser_xml_inst(_lv_svg_parser_state_t * state, _lv_svg_token_t * token) in _svg_parser_xml_inst() argument
142 LV_UNUSED(token); in _svg_parser_xml_inst()
155 static void _svg_parser_comment(_lv_svg_parser_state_t * state, _lv_svg_token_t * token) in _svg_parser_comment() argument
157 LV_UNUSED(token); in _svg_parser_comment()
170 static void _svg_parser_doctype(_lv_svg_parser_state_t * state, _lv_svg_token_t * token) in _svg_parser_doctype() argument
172 LV_UNUSED(token); in _svg_parser_doctype()
186 static bool _svg_parser_tag(_lv_svg_parser_state_t * state, _lv_svg_token_t * token, svg_token_proc… in _svg_parser_tag() argument
191 if(!_lv_svg_token_process(token, cb, data)) { in _svg_parser_tag()
200 token->type = LV_SVG_TOKEN_END; in _svg_parser_tag()
202 if(!token->start) { in _svg_parser_tag()
203 token->start = state->cur; in _svg_parser_tag()
208 token->end = state->cur; in _svg_parser_tag()
213 if(!token->start) { in _svg_parser_tag()
214 token->type = LV_SVG_TOKEN_BEGIN; in _svg_parser_tag()
215 token->start = state->cur; in _svg_parser_tag()
226 token->flat = true; in _svg_parser_tag()
234 token->cur_attr = NULL; in _svg_parser_tag()
242 if(!token->cur_attr) { in _svg_parser_tag()
243 token->cur_attr = _new_svg_attr(token); in _svg_parser_tag()
247 token->cur_attr->name_end = state->cur; in _svg_parser_tag()
252 if(!token->cur_attr->name_start) { in _svg_parser_tag()
253 token->cur_attr->name_start = state->cur; in _svg_parser_tag()
268 token->cur_attr = NULL; in _svg_parser_tag()
298 if(!token->cur_attr->value_start) { in _svg_parser_tag()
299 token->cur_attr->value_start = state->cur; in _svg_parser_tag()
301 token->cur_attr->value_end = state->cur; in _svg_parser_tag()
307 if(!token->cur_attr->value_start) { in _svg_parser_tag()
308 token->cur_attr->value_start = state->cur; in _svg_parser_tag()
318 if(!token->cur_attr->value_start) { in _svg_parser_tag()
319 token->cur_attr->value_start = state->cur; in _svg_parser_tag()
321 token->cur_attr->value_end = state->cur; in _svg_parser_tag()
327 if(!token->cur_attr->value_start) { in _svg_parser_tag()
328 token->cur_attr->value_start = state->cur; in _svg_parser_tag()
360 _lv_svg_token_t token; in _lv_svg_tokenizer() local
361 _lv_svg_token_init(&token); in _lv_svg_tokenizer()
399 lv_array_deinit(&token.attrs); in _lv_svg_tokenizer()
405 if(!_lv_svg_token_process(&token, cb, data)) { in _lv_svg_tokenizer()
407 lv_array_deinit(&token.attrs); in _lv_svg_tokenizer()
413 if(!token.start) { in _lv_svg_tokenizer()
414 token.start = state.cur; in _lv_svg_tokenizer()
416 token.end = state.cur; in _lv_svg_tokenizer()
425 … if(((token.end - token.start) == 1) && (token.start[0] == '-') && (token.start[1] == '-')) { in _lv_svg_tokenizer()
428 token.start = token.end = NULL; in _lv_svg_tokenizer()
431 … else if(((token.end - token.start) == 6) && (strncmp(token.start, "DOCTYPE", 7) == 0)) { in _lv_svg_tokenizer()
433 token.start = token.end = NULL; in _lv_svg_tokenizer()
439 _svg_parser_comment(&state, &token); in _lv_svg_tokenizer()
442 _svg_parser_doctype(&state, &token); in _lv_svg_tokenizer()
445 if(!_svg_parser_tag(&state, &token, cb, data)) { in _lv_svg_tokenizer()
447 lv_array_deinit(&token.attrs); in _lv_svg_tokenizer()
452 _svg_parser_xml_inst(&state, &token); in _lv_svg_tokenizer()
463 if(!token.start) { in _lv_svg_tokenizer()
464 token.start = state.cur; in _lv_svg_tokenizer()
469 token.end = ++state.cur; in _lv_svg_tokenizer()
476 lv_array_deinit(&token.attrs); in _lv_svg_tokenizer()