Lines Matching refs:parser

26     JSONMessageParser *parser = container_of(lexer, JSONMessageParser, lexer);
32 parser->brace_count++;
35 parser->brace_count--;
38 parser->bracket_count++;
41 parser->bracket_count--;
55 parser->token_size += token->length;
57 qlist_append(parser->tokens, dict);
61 } else if (parser->brace_count < 0 ||
62 parser->bracket_count < 0 ||
63 (parser->brace_count == 0 &&
64 parser->bracket_count == 0)) {
66 } else if (parser->token_size > MAX_TOKEN_SIZE ||
67 parser->bracket_count > MAX_NESTING ||
68 parser->brace_count > MAX_NESTING) {
78 /* clear out token list and tell the parser to emit and error
81 QDECREF(parser->tokens);
82 parser->tokens = NULL;
84 /* send current list of tokens to parser and reset tokenizer */
85 parser->brace_count = 0;
86 parser->bracket_count = 0;
87 parser->emit(parser, parser->tokens);
88 if (parser->tokens) {
89 QDECREF(parser->tokens);
91 parser->tokens = qlist_new();
92 parser->token_size = 0;
95 void json_message_parser_init(JSONMessageParser *parser,
98 parser->emit = func;
99 parser->brace_count = 0;
100 parser->bracket_count = 0;
101 parser->tokens = qlist_new();
102 parser->token_size = 0;
104 json_lexer_init(&parser->lexer, json_message_process_token);
107 int json_message_parser_feed(JSONMessageParser *parser,
110 return json_lexer_feed(&parser->lexer, buffer, size);
113 int json_message_parser_flush(JSONMessageParser *parser)
115 return json_lexer_flush(&parser->lexer);
118 void json_message_parser_destroy(JSONMessageParser *parser)
120 json_lexer_destroy(&parser->lexer);
121 QDECREF(parser->tokens);