Hubbub  $Id$
types.h
Go to the documentation of this file.
1 /*
2  * This file is part of Hubbub.
3  * Licensed under the MIT License,
4  * http://www.opensource.org/licenses/mit-license.php
5  * Copyright 2007 John-Mark Bell <jmb@netsurf-browser.org>
6  */
7 
8 #ifndef hubbub_types_h_
9 #define hubbub_types_h_
10 
11 #ifdef __cplusplus
12 extern "C"
13 {
14 #endif
15 
16 #include <stdbool.h>
17 #include <inttypes.h>
18 
22 typedef enum hubbub_charset_source {
28 
32 typedef enum hubbub_content_model {
38 
42 typedef enum hubbub_quirks_mode {
47 
51 typedef enum hubbub_token_type {
59 
63 typedef enum hubbub_ns {
72 
76 typedef struct hubbub_string {
77  const uint8_t *ptr;
78  size_t len;
80 
84 typedef struct hubbub_attribute {
89 
93 typedef struct hubbub_doctype {
104 
108 typedef struct hubbub_tag {
111  uint32_t n_attributes;
115 
119 typedef struct hubbub_token {
122  union {
124 
126 
128 
130  } data;
132 
133 #ifdef __cplusplus
134 }
135 #endif
136 
137 #endif
hubbub_charset_source
hubbub_charset_source
Source of charset information, in order of importance A client-dictated charset will override all oth...
Definition: types.h:22
hubbub_token::tag
hubbub_tag tag
Definition: types.h:125
HUBBUB_CHARSET_UNKNOWN
@ HUBBUB_CHARSET_UNKNOWN
Unknown.
Definition: types.h:23
hubbub_string::ptr
const uint8_t * ptr
Pointer to data.
Definition: types.h:77
HUBBUB_NS_NULL
@ HUBBUB_NS_NULL
Definition: types.h:64
HUBBUB_TOKEN_DOCTYPE
@ HUBBUB_TOKEN_DOCTYPE
Definition: types.h:52
hubbub_token
struct hubbub_token hubbub_token
Token data.
hubbub_attribute::name
hubbub_string name
Attribute name.
Definition: types.h:86
hubbub_doctype::system_missing
bool system_missing
Whether the system id is missing.
Definition: types.h:99
hubbub_token::type
hubbub_token_type type
The token type.
Definition: types.h:120
HUBBUB_QUIRKS_MODE_FULL
@ HUBBUB_QUIRKS_MODE_FULL
Definition: types.h:45
hubbub_doctype
Data for doctype token.
Definition: types.h:93
hubbub_attribute
Tag attribute data.
Definition: types.h:84
hubbub_doctype::public_id
hubbub_string public_id
Doctype public identifier.
Definition: types.h:97
hubbub_ns
hubbub_ns
Possible namespaces.
Definition: types.h:63
hubbub_token
Token data.
Definition: types.h:119
hubbub_quirks_mode
hubbub_quirks_mode
Quirks mode flag.
Definition: types.h:42
hubbub_doctype
struct hubbub_doctype hubbub_doctype
Data for doctype token.
hubbub_string
Tokeniser string type.
Definition: types.h:76
hubbub_token::data
union hubbub_token::@15 data
Type-specific data.
hubbub_attribute::value
hubbub_string value
Attribute value.
Definition: types.h:87
HUBBUB_NS_XMLNS
@ HUBBUB_NS_XMLNS
Definition: types.h:70
hubbub_token::comment
hubbub_string comment
Definition: types.h:127
HUBBUB_TOKEN_EOF
@ HUBBUB_TOKEN_EOF
Definition: types.h:57
HUBBUB_NS_HTML
@ HUBBUB_NS_HTML
Definition: types.h:65
hubbub_tag::name
hubbub_string name
Tag name.
Definition: types.h:110
hubbub_token::character
hubbub_string character
Definition: types.h:129
hubbub_doctype::system_id
hubbub_string system_id
Doctype system identifier.
Definition: types.h:100
HUBBUB_CONTENT_MODEL_CDATA
@ HUBBUB_CONTENT_MODEL_CDATA
Definition: types.h:35
HUBBUB_NS_XLINK
@ HUBBUB_NS_XLINK
Definition: types.h:68
hubbub_tag
Data for a tag.
Definition: types.h:108
HUBBUB_CONTENT_MODEL_RCDATA
@ HUBBUB_CONTENT_MODEL_RCDATA
Definition: types.h:34
HUBBUB_QUIRKS_MODE_LIMITED
@ HUBBUB_QUIRKS_MODE_LIMITED
Definition: types.h:44
HUBBUB_CHARSET_TENTATIVE
@ HUBBUB_CHARSET_TENTATIVE
Charset may be changed with further data.
Definition: types.h:24
hubbub_tag::ns
hubbub_ns ns
Tag namespace.
Definition: types.h:109
HUBBUB_CHARSET_CONFIDENT
@ HUBBUB_CHARSET_CONFIDENT
Charset definite.
Definition: types.h:26
HUBBUB_TOKEN_END_TAG
@ HUBBUB_TOKEN_END_TAG
Definition: types.h:54
hubbub_string
struct hubbub_string hubbub_string
Tokeniser string type.
hubbub_token::doctype
hubbub_doctype doctype
Definition: types.h:123
HUBBUB_TOKEN_COMMENT
@ HUBBUB_TOKEN_COMMENT
Definition: types.h:55
hubbub_tag::attributes
hubbub_attribute * attributes
Array of attribute data.
Definition: types.h:112
HUBBUB_CONTENT_MODEL_PCDATA
@ HUBBUB_CONTENT_MODEL_PCDATA
Definition: types.h:33
hubbub_tag::self_closing
bool self_closing
Whether the tag can have children.
Definition: types.h:113
hubbub_tag
struct hubbub_tag hubbub_tag
Data for a tag.
HUBBUB_QUIRKS_MODE_NONE
@ HUBBUB_QUIRKS_MODE_NONE
Definition: types.h:43
hubbub_doctype::force_quirks
bool force_quirks
Doctype force-quirks flag.
Definition: types.h:102
hubbub_token_type
hubbub_token_type
Type of an emitted token.
Definition: types.h:51
hubbub_doctype::name
hubbub_string name
Doctype name.
Definition: types.h:94
hubbub_content_model
hubbub_content_model
Content model flag.
Definition: types.h:32
HUBBUB_TOKEN_CHARACTER
@ HUBBUB_TOKEN_CHARACTER
Definition: types.h:56
hubbub_tag::n_attributes
uint32_t n_attributes
Count of attributes.
Definition: types.h:111
hubbub_doctype::public_missing
bool public_missing
Whether the public id is missing.
Definition: types.h:96
hubbub_attribute
struct hubbub_attribute hubbub_attribute
Tag attribute data.
hubbub_string::len
size_t len
Byte length of string.
Definition: types.h:78
HUBBUB_NS_MATHML
@ HUBBUB_NS_MATHML
Definition: types.h:66
HUBBUB_NS_SVG
@ HUBBUB_NS_SVG
Definition: types.h:67
hubbub_attribute::ns
hubbub_ns ns
Attribute namespace.
Definition: types.h:85
HUBBUB_NS_XML
@ HUBBUB_NS_XML
Definition: types.h:69
HUBBUB_CONTENT_MODEL_PLAINTEXT
@ HUBBUB_CONTENT_MODEL_PLAINTEXT
Definition: types.h:36
HUBBUB_TOKEN_START_TAG
@ HUBBUB_TOKEN_START_TAG
Definition: types.h:53