json-scanner

json-scanner

Synopsis

                    JsonScannerConfig;
void                (*JsonScannerMsgFunc)               (JsonScanner *scanner,
                                                         gchar *message,
                                                         gboolean is_error);
enum                JsonTokenType;
struct              JsonScanner;
JsonScanner *       json_scanner_new                    (void);
void                json_scanner_destroy                (JsonScanner *scanner);
void                json_scanner_input_file             (JsonScanner *scanner,
                                                         gint input_fd);
void                json_scanner_sync_file_offset       (JsonScanner *scanner);
void                json_scanner_input_text             (JsonScanner *scanner,
                                                         const gchar *text,
                                                         guint text_len);
GTokenType          json_scanner_get_next_token         (JsonScanner *scanner);
GTokenType          json_scanner_peek_next_token        (JsonScanner *scanner);
GTokenType          json_scanner_cur_token              (JsonScanner *scanner);
GTokenValue         json_scanner_cur_value              (JsonScanner *scanner);
guint               json_scanner_cur_line               (JsonScanner *scanner);
guint               json_scanner_cur_position           (JsonScanner *scanner);
gboolean            json_scanner_eof                    (JsonScanner *scanner);
guint               json_scanner_set_scope              (JsonScanner *scanner,
                                                         guint scope_id);
void                json_scanner_scope_add_symbol       (JsonScanner *scanner,
                                                         guint scope_id,
                                                         const gchar *symbol,
                                                         gpointer value);
void                json_scanner_scope_remove_symbol    (JsonScanner *scanner,
                                                         guint scope_id,
                                                         const gchar *symbol);
gpointer            json_scanner_scope_lookup_symbol    (JsonScanner *scanner,
                                                         guint scope_id,
                                                         const gchar *symbol);
void                json_scanner_scope_foreach_symbol   (JsonScanner *scanner,
                                                         guint scope_id,
                                                         GHFunc func,
                                                         gpointer user_data);
gpointer            json_scanner_lookup_symbol          (JsonScanner *scanner,
                                                         const gchar *symbol);
void                json_scanner_unexp_token            (JsonScanner *scanner,
                                                         GTokenType expected_token,
                                                         const gchar *identifier_spec,
                                                         const gchar *symbol_spec,
                                                         const gchar *symbol_name,
                                                         const gchar *message,
                                                         gint is_error);
void                json_scanner_error                  (JsonScanner *scanner,
                                                         const gchar *format,
                                                         ...);
void                json_scanner_warn                   (JsonScanner *scanner,
                                                         const gchar *format,
                                                         ...);

Description

Details

JsonScannerConfig

typedef struct _JsonScannerConfig JsonScannerConfig;

JsonScannerMsgFunc ()

void                (*JsonScannerMsgFunc)               (JsonScanner *scanner,
                                                         gchar *message,
                                                         gboolean is_error);

enum JsonTokenType

typedef enum {
	JSON_TOKEN_INVALID = G_TOKEN_LAST,

	JSON_TOKEN_TRUE,
	JSON_TOKEN_FALSE,
	JSON_TOKEN_NULL,
	JSON_TOKEN_VAR,

	JSON_TOKEN_LAST
} JsonTokenType;

Tokens for JsonScanner-based parser, extending GTokenType.

JSON_TOKEN_INVALID

marker

JSON_TOKEN_TRUE

symbol for 'true' bareword

JSON_TOKEN_FALSE

symbol for 'false' bareword

JSON_TOKEN_NULL

symbol for 'null' bareword

JSON_TOKEN_VAR

symbol for 'var' bareword

JSON_TOKEN_LAST

marker

struct JsonScanner

struct JsonScanner {
};

Tokenizer scanner for JSON. See GScanner

Since 0.6


json_scanner_new ()

JsonScanner *       json_scanner_new                    (void);

json_scanner_destroy ()

void                json_scanner_destroy                (JsonScanner *scanner);

json_scanner_input_file ()

void                json_scanner_input_file             (JsonScanner *scanner,
                                                         gint input_fd);

json_scanner_sync_file_offset ()

void                json_scanner_sync_file_offset       (JsonScanner *scanner);

json_scanner_input_text ()

void                json_scanner_input_text             (JsonScanner *scanner,
                                                         const gchar *text,
                                                         guint text_len);

json_scanner_get_next_token ()

GTokenType          json_scanner_get_next_token         (JsonScanner *scanner);

json_scanner_peek_next_token ()

GTokenType          json_scanner_peek_next_token        (JsonScanner *scanner);

json_scanner_cur_token ()

GTokenType          json_scanner_cur_token              (JsonScanner *scanner);

json_scanner_cur_value ()

GTokenValue         json_scanner_cur_value              (JsonScanner *scanner);

json_scanner_cur_line ()

guint               json_scanner_cur_line               (JsonScanner *scanner);

json_scanner_cur_position ()

guint               json_scanner_cur_position           (JsonScanner *scanner);

json_scanner_eof ()

gboolean            json_scanner_eof                    (JsonScanner *scanner);

json_scanner_set_scope ()

guint               json_scanner_set_scope              (JsonScanner *scanner,
                                                         guint scope_id);

json_scanner_scope_add_symbol ()

void                json_scanner_scope_add_symbol       (JsonScanner *scanner,
                                                         guint scope_id,
                                                         const gchar *symbol,
                                                         gpointer value);

json_scanner_scope_remove_symbol ()

void                json_scanner_scope_remove_symbol    (JsonScanner *scanner,
                                                         guint scope_id,
                                                         const gchar *symbol);

json_scanner_scope_lookup_symbol ()

gpointer            json_scanner_scope_lookup_symbol    (JsonScanner *scanner,
                                                         guint scope_id,
                                                         const gchar *symbol);

json_scanner_scope_foreach_symbol ()

void                json_scanner_scope_foreach_symbol   (JsonScanner *scanner,
                                                         guint scope_id,
                                                         GHFunc func,
                                                         gpointer user_data);

json_scanner_lookup_symbol ()

gpointer            json_scanner_lookup_symbol          (JsonScanner *scanner,
                                                         const gchar *symbol);

json_scanner_unexp_token ()

void                json_scanner_unexp_token            (JsonScanner *scanner,
                                                         GTokenType expected_token,
                                                         const gchar *identifier_spec,
                                                         const gchar *symbol_spec,
                                                         const gchar *symbol_name,
                                                         const gchar *message,
                                                         gint is_error);

json_scanner_error ()

void                json_scanner_error                  (JsonScanner *scanner,
                                                         const gchar *format,
                                                         ...);

json_scanner_warn ()

void                json_scanner_warn                   (JsonScanner *scanner,
                                                         const gchar *format,
                                                         ...);