42 #ifndef GUMBO_GUMBO_H_
43 #define GUMBO_GUMBO_H_
46 #define _CRT_SECURE_NO_WARNINGS
47 #define fileno _fileno
103 bool gumbo_string_equals(
110 bool gumbo_string_equals_ignore_case(
142 int gumbo_vector_index_of(
GumboVector* vector,
const void* element);
158 #include "tag_enum.h"
172 const char* gumbo_normalized_tagname(GumboTag tag);
204 GumboTag gumbo_tag_enum(
const char* tagname);
205 GumboTag gumbo_tagn_enum(
const char* tagname,
unsigned int length);
213 GUMBO_ATTR_NAMESPACE_NONE,
214 GUMBO_ATTR_NAMESPACE_XLINK,
215 GUMBO_ATTR_NAMESPACE_XML,
216 GUMBO_ATTR_NAMESPACE_XMLNS,
217 } GumboAttributeNamespaceEnum;
303 GUMBO_NODE_WHITESPACE,
322 GUMBO_DOCTYPE_NO_QUIRKS,
323 GUMBO_DOCTYPE_QUIRKS,
324 GUMBO_DOCTYPE_LIMITED_QUIRKS
325 } GumboQuirksModeEnum;
335 GUMBO_NAMESPACE_HTML,
337 GUMBO_NAMESPACE_MATHML
338 } GumboNamespaceEnum;
353 GUMBO_INSERTION_NORMAL = 0,
361 GUMBO_INSERTION_BY_PARSER = 1 << 0,
374 GUMBO_INSERTION_IMPLICIT_END_TAG = 1 << 1,
382 GUMBO_INSERTION_IMPLIED = 1 << 3,
390 GUMBO_INSERTION_CONVERTED_FROM_END_TAG = 1 << 4,
393 GUMBO_INSERTION_FROM_ISINDEX = 1 << 5,
396 GUMBO_INSERTION_FROM_IMAGE = 1 << 6,
403 GUMBO_INSERTION_RECONSTRUCTED_FORMATTING_ELEMENT = 1 << 7,
406 GUMBO_INSERTION_ADOPTION_AGENCY_CLONED = 1 << 8,
409 GUMBO_INSERTION_ADOPTION_AGENCY_MOVED = 1 << 9,
415 GUMBO_INSERTION_FOSTER_PARENTED = 1 << 10,
434 const char* public_identifier;
435 const char* system_identifier;
549 typedef void* (*GumboAllocatorFunction)(
void* userdata,
size_t size);
555 typedef void (*GumboDeallocatorFunction)(
void* userdata,
void* ptr);
563 typedef struct GumboInternalOptions {
625 typedef struct GumboInternalOutput {
662 const GumboOptions* options,
const char* buffer,
size_t buffer_length);
GumboSourcePosition name_start
Definition: gumbo.h:264
GumboSourcePosition name_end
Definition: gumbo.h:271
GumboStringPiece original_value
Definition: gumbo.h:261
GumboSourcePosition value_end
Definition: gumbo.h:277
GumboStringPiece original_name
Definition: gumbo.h:243
GumboAttributeNamespaceEnum attr_namespace
Definition: gumbo.h:231
GumboSourcePosition value_start
Definition: gumbo.h:274
const char * name
Definition: gumbo.h:237
const char * value
Definition: gumbo.h:251
GumboQuirksModeEnum doc_type_quirks_mode
Definition: gumbo.h:441
GumboVector children
Definition: gumbo.h:427
GumboStringPiece original_end_tag
Definition: gumbo.h:498
GumboNamespaceEnum tag_namespace
Definition: gumbo.h:483
GumboSourcePosition start_pos
Definition: gumbo.h:501
GumboVector attributes
Definition: gumbo.h:510
GumboTag tag
Definition: gumbo.h:480
GumboVector children
Definition: gumbo.h:477
GumboStringPiece original_tag
Definition: gumbo.h:491
GumboSourcePosition end_pos
Definition: gumbo.h:504
GumboNode * parent
Definition: gumbo.h:522
GumboNodeType type
Definition: gumbo.h:519
GumboParseFlags parse_flags
Definition: gumbo.h:532
size_t index_within_parent
Definition: gumbo.h:525
union GumboInternalNode::@0 v
GumboTag fragment_context
Definition: gumbo.h:610
bool stop_on_first_error
Definition: gumbo.h:586
GumboAllocatorFunction allocator
Definition: gumbo.h:565
void * userdata
Definition: gumbo.h:574
GumboDeallocatorFunction deallocator
Definition: gumbo.h:568
int tab_stop
Definition: gumbo.h:580
GumboNamespaceEnum fragment_namespace
Definition: gumbo.h:618
int max_errors
Definition: gumbo.h:595
GumboNode * root
Definition: gumbo.h:636
GumboVector errors
Definition: gumbo.h:645
GumboNode * document
Definition: gumbo.h:630
const char * data
Definition: gumbo.h:90
size_t length
Definition: gumbo.h:93
GumboStringPiece original_text
Definition: gumbo.h:459
const char * text
Definition: gumbo.h:453
GumboSourcePosition start_pos
Definition: gumbo.h:465
void ** data
Definition: gumbo.h:126
unsigned int capacity
Definition: gumbo.h:132
unsigned int length
Definition: gumbo.h:129