diff options
author | test <test@test.(none)> | 2013-07-02 17:30:26 +0900 |
---|---|---|
committer | test <test@test.(none)> | 2013-07-02 17:30:26 +0900 |
commit | c9d7a82ff83a1a21c843c072c3e13aa365ff6c51 (patch) | |
tree | 28be1296ac6ec9bf2d5ccc761ce2c5be4cb3879f /json-lexer.h | |
parent | 86fff6cd7eb8e4b49769a7cf7aaad9e434041049 (diff) | |
parent | 77fe18516aac9c40f5fbe6120f49b16a012e03ef (diff) | |
download | qemu-c9d7a82ff83a1a21c843c072c3e13aa365ff6c51.tar.gz qemu-c9d7a82ff83a1a21c843c072c3e13aa365ff6c51.tar.bz2 qemu-c9d7a82ff83a1a21c843c072c3e13aa365ff6c51.zip |
Merge branch 'develop' into tizen_qemu_1.5.1
Diffstat (limited to 'json-lexer.h')
-rw-r--r-- | json-lexer.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/json-lexer.h b/json-lexer.h new file mode 100644 index 0000000000..10bc0a7798 --- /dev/null +++ b/json-lexer.h @@ -0,0 +1,51 @@ +/* + * JSON lexer + * + * Copyright IBM, Corp. 2009 + * + * Authors: + * Anthony Liguori <aliguori@us.ibm.com> + * + * This work is licensed under the terms of the GNU LGPL, version 2.1 or later. + * See the COPYING.LIB file in the top-level directory. + * + */ + +#ifndef QEMU_JSON_LEXER_H +#define QEMU_JSON_LEXER_H + +#include "qstring.h" +#include "qlist.h" + +typedef enum json_token_type { + JSON_OPERATOR = 100, + JSON_INTEGER, + JSON_FLOAT, + JSON_KEYWORD, + JSON_STRING, + JSON_ESCAPE, + JSON_SKIP, + JSON_ERROR, +} JSONTokenType; + +typedef struct JSONLexer JSONLexer; + +typedef void (JSONLexerEmitter)(JSONLexer *, QString *, JSONTokenType, int x, int y); + +struct JSONLexer +{ + JSONLexerEmitter *emit; + int state; + QString *token; + int x, y; +}; + +void json_lexer_init(JSONLexer *lexer, JSONLexerEmitter func); + +int json_lexer_feed(JSONLexer *lexer, const char *buffer, size_t size); + +int json_lexer_flush(JSONLexer *lexer); + +void json_lexer_destroy(JSONLexer *lexer); + +#endif |