libcss
Loading...
Searching...
No Matches
Classes | Macros | Typedefs | Enumerations | Functions
parse.c File Reference
#include <assert.h>
#include <ctype.h>
#include <stdbool.h>
#include <libwapcaplet/libwapcaplet.h>
#include <parserutils/input/inputstream.h>
#include <parserutils/utils/stack.h>
#include <parserutils/utils/vector.h>
#include "charset/detect.h"
#include "lex/lex.h"
#include "parse/parse.h"
#include "utils/parserutilserror.h"
#include "utils/utils.h"
#include <stdio.h>

Classes

struct  parser_state
 
struct  css_parser
 

Macros

#define STACK_CHUNK   32
 

Typedefs

typedef struct parser_state parser_state
 

Enumerations

enum  {
  sStart = 0 , sStylesheet = 1 , sStatement = 2 , sRuleset = 3 ,
  sRulesetEnd = 4 , sAtRule = 5 , sAtRuleEnd = 6 , sBlock = 7 ,
  sBlockContent = 8 , sSelector = 9 , sDeclaration = 10 , sDeclList = 11 ,
  sDeclListEnd = 12 , sProperty = 13 , sValue0 = 14 , sValue1 = 15 ,
  sValue = 16 , sAny0 = 17 , sAny1 = 18 , sAny = 19 ,
  sMalformedDecl = 20 , sMalformedSelector = 21 , sMalformedAtRule = 22 , sInlineStyle = 23 ,
  sISBody0 = 24 , sISBody = 25 , sMediaQuery = 26
}
 

Functions

void parserutils_stack_dump (parserutils_stack *stack, const char *prefix, void(*printer)(void *item))
 
void parserutils_vector_dump (parserutils_vector *vector, const char *prefix, void(*printer)(void *item))
 
css_error css__parser_create (const char *charset, css_charset_source cs_source, css_parser **parser)
 
css_error css__parser_create_for_inline_style (const char *charset, css_charset_source cs_source, css_parser **parser)
 
css_error css__parser_create_for_media_query (const char *charset, css_charset_source cs_source, css_parser **parser)
 
css_error css__parser_destroy (css_parser *parser)
 
css_error css__parser_setopt (css_parser *parser, css_parser_opttype type, css_parser_optparams *params)
 
css_error css__parser_parse_chunk (css_parser *parser, const uint8_t *data, size_t len)
 
css_error css__parser_completed (css_parser *parser)
 
const char * css__parser_read_charset (css_parser *parser, css_charset_source *source)
 
bool css__parser_quirks_permitted (css_parser *parser)
 

Macro Definition Documentation

◆ STACK_CHUNK

#define STACK_CHUNK   32

Typedef Documentation

◆ parser_state

typedef struct parser_state parser_state

Representation of a parser state

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

Major state numbers

Enumerator
sStart 
sStylesheet 
sStatement 
sRuleset 
sRulesetEnd 
sAtRule 
sAtRuleEnd 
sBlock 
sBlockContent 
sSelector 
sDeclaration 
sDeclList 
sDeclListEnd 
sProperty 
sValue0 
sValue1 
sValue 
sAny0 
sAny1 
sAny 
sMalformedDecl 
sMalformedSelector 
sMalformedAtRule 
sInlineStyle 
sISBody0 
sISBody 
sMediaQuery 

Function Documentation

◆ css__parser_completed()

css_error css__parser_completed ( css_parser parser)

Inform a CSS parser that all data has been received.

Parameters
parserThe parser to inform
Returns
CSS_OK on success, appropriate error otherwise

◆ css__parser_create()

css_error css__parser_create ( const char *  charset,
css_charset_source  cs_source,
css_parser **  parser 
)

Create a CSS parser

Parameters
charsetCharset of data, if known, or NULL
cs_sourceSource of charset information, or CSS_CHARSET_DEFAULT
parserPointer to location to receive parser instance
Returns
CSS_OK on success, CSS_BADPARM on bad parameters, CSS_NOMEM on memory exhaustion

◆ css__parser_create_for_inline_style()

css_error css__parser_create_for_inline_style ( const char *  charset,
css_charset_source  cs_source,
css_parser **  parser 
)

Create a CSS parser for an inline style

Parameters
charsetCharset of data, if known, or NULL
cs_sourceSource of charset information, or CSS_CHARSET_DEFAULT
parserPointer to location to receive parser instance
Returns
CSS_OK on success, CSS_BADPARM on bad parameters, CSS_NOMEM on memory exhaustion

◆ css__parser_create_for_media_query()

css_error css__parser_create_for_media_query ( const char *  charset,
css_charset_source  cs_source,
css_parser **  parser 
)

Create a CSS parser for a media query

Parameters
charsetCharset of data, if known, or NULL
cs_sourceSource of charset information, or CSS_CHARSET_DEFAULT
parserPointer to location to receive parser instance
Returns
CSS_OK on success, CSS_BADPARM on bad parameters, CSS_NOMEM on memory exhaustion

◆ css__parser_destroy()

css_error css__parser_destroy ( css_parser parser)

Destroy a CSS parser

Parameters
parserThe parser instance to destroy
Returns
CSS_OK on success, appropriate error otherwise

◆ css__parser_parse_chunk()

css_error css__parser_parse_chunk ( css_parser parser,
const uint8_t *  data,
size_t  len 
)

Parse a chunk of data using a CSS parser

Parameters
parserThe parser to use
dataPointer to the chunk to parse
lenLength of chunk
Returns
CSS_OK on success, appropriate error otherwise

◆ css__parser_quirks_permitted()

bool css__parser_quirks_permitted ( css_parser parser)

Quirks permitted when parsing

Parameters
parserParser to query
Returns
True if quirks permitted, false otherwise

◆ css__parser_read_charset()

const char * css__parser_read_charset ( css_parser parser,
css_charset_source source 
)

Retrieve document charset information from a CSS parser

Parameters
parserThe parser instance
sourcePointer to location to receive charset source
Returns
Pointer to charset name (constant; do not free)

◆ css__parser_setopt()

css_error css__parser_setopt ( css_parser parser,
css_parser_opttype  type,
css_parser_optparams params 
)

Configure a CSS parser

Parameters
parserThe parser instance to configure
typeThe option to configure
paramsOption-specific data
Returns
CSS_OK on success, appropriate error otherwise

◆ parserutils_stack_dump()

void parserutils_stack_dump ( parserutils_stack *  stack,
const char *  prefix,
void(*)(void *item)  printer 
)
extern

◆ parserutils_vector_dump()

void parserutils_vector_dump ( parserutils_vector *  vector,
const char *  prefix,
void(*)(void *item)  printer 
)
extern