#include <glib.h>
#include "cr-parser-input.h"
#include "cr-tknzr.h"
#include "cr-utils.h"
#include "cr-doc-handler.h"
Go to the source code of this file.
Data Structures | |
struct | _CRParser |
The implementation of the SAC parser. More... | |
Typedefs | |
typedef _CRParser | CRParser |
typedef _CRParserPriv | CRParserPriv |
Functions | |
CRParser * | cr_parser_new (CRTknzr *a_tknzr) |
Creates a new parser to parse data coming the input stream given in parameter. | |
CRParser * | cr_parser_new_from_buf (const guchar *a_buf, gulong a_len, enum CREncoding a_enc, gboolean a_free_buf) |
Instanciates a new parser from a memory buffer. | |
CRParser * | cr_parser_new_from_file (const guchar *a_file_uri, enum CREncoding a_enc) |
CRParser * | cr_parser_new_from_input (CRInput *a_input) |
enum CRStatus | cr_parser_set_tknzr (CRParser *a_this, CRTknzr *a_tknzr) |
enum CRStatus | cr_parser_try_to_skip_spaces_and_comments (CRParser *a_this) |
Same as cr_parser_try_to_skip_spaces() but this one skips spaces and comments. | |
enum CRStatus | cr_parser_set_sac_handler (CRParser *a_this, CRDocHandler *a_handler) |
Sets a SAC document handler to the parser. | |
enum CRStatus | cr_parser_get_sac_handler (CRParser *a_this, CRDocHandler **a_handler) |
Gets the SAC document handler. | |
enum CRStatus | cr_parser_set_use_core_grammar (CRParser *a_this, gboolean a_use_core_grammar) |
enum CRStatus | cr_parser_get_use_core_grammar (CRParser *a_this, gboolean *a_use_core_grammar) |
enum CRStatus | cr_parser_parse (CRParser *a_this) |
Parses the data that comes from the input previously associated to the current instance of CRParser. | |
enum CRStatus | cr_parser_parse_file (CRParser *a_this, const guchar *a_file_uri, enum CREncoding a_enc) |
Parses a the given in parameter. | |
enum CRStatus | cr_parser_parse_buf (CRParser *a_this, const guchar *a_buf, gulong a_len, enum CREncoding a_enc) |
enum CRStatus | cr_parser_set_default_sac_handler (CRParser *a_this) |
Sets the SAC handler associated to the current instance of CRParser to the default SAC handler. | |
enum CRStatus | cr_parser_parse_expr (CRParser *a_this, CRTerm **a_expr) |
Parses an expression as defined by the css2 spec in appendix D.1: expr: term [ operator term ]*. | |
enum CRStatus | cr_parser_parse_declaration (CRParser *a_this, GString **a_property, CRTerm **a_expr) |
Parses a "declaration" as defined by the css2 spec in appendix D.1: declaration ::= [property ':' S* expr prio?]? | |
enum CRStatus | cr_parser_parse_statement_core (CRParser *a_this) |
Parses a statement as defined by the css core grammar in chapter 4.1 of the css2 spec. | |
enum CRStatus | cr_parser_parse_ruleset (CRParser *a_this) |
Parses a "ruleset" as defined in the css2 spec at appendix D.1. | |
enum CRStatus | cr_parser_parse_import (CRParser *a_this, GList **a_media_list, GString **a_import_string) |
Parses an 'import' declaration as defined in the css2 spec in appendix D.1:. | |
enum CRStatus | cr_parser_parse_media (CRParser *a_this) |
Parses a 'media' declaration as specified in the css2 spec at appendix D.1:. | |
enum CRStatus | cr_parser_parse_page (CRParser *a_this) |
Parses '' rule as specified in the css2 spec in appendix D.1: page ::= PAGE_SYM S* IDENT? pseudo_page? S* '{' S* declaration [ ';' S* declaration ]* '}' S*. | |
enum CRStatus | cr_parser_parse_charset (CRParser *a_this, GString **a_value) |
Parses a charset declaration as defined implictly by the css2 spec in appendix D.1: charset ::= CHARSET_SYM S* STRING S* ';'. | |
enum CRStatus | cr_parser_parse_font_face (CRParser *a_this) |
Parses the "@font-face" rule specified in the css1 spec in appendix D.1:. | |
void | cr_parser_destroy (CRParser *a_this) |
Destroys the current instance of CRParser. |
Definition in file cr-parser.h.
|
Definition at line 43 of file cr-parser.h. |
|
Definition at line 44 of file cr-parser.h. |
|
Destroys the current instance of CRParser.
Definition at line 5159 of file cr-parser.c. References cr_doc_handler_unref(), cr_tknzr_unref(), and PRIVATE. Referenced by cr_declaration_parse_from_buf(), cr_om_parser_destroy(), cr_statement_at_charset_rule_parse_from_buf(), cr_statement_at_import_rule_parse_from_buf(), cr_statement_at_media_rule_parse_from_buf(), cr_statement_at_page_rule_parse_from_buf(), cr_statement_does_buf_parses_against_core(), cr_statement_font_face_rule_parse_from_buf(), cr_statement_ruleset_parse_from_buf(), and cr_term_parse_expression_from_buf(). |
|
Gets the SAC document handler.
Definition at line 3556 of file cr-parser.c. References CR_BAD_PARAM_ERROR, CR_OK, and PRIVATE. Referenced by cr_om_parser_parse_buf(), and cr_om_parser_parse_file(). |
|
Definition at line 3610 of file cr-parser.c. References CR_BAD_PARAM_ERROR, CR_OK, and PRIVATE. |
|
Creates a new parser to parse data coming the input stream given in parameter.
Definition at line 3430 of file cr-parser.c. References CR_OK, cr_parser_set_tknzr(), CRStatus, and PRIVATE. Referenced by cr_om_parser_parse_buf(), cr_parser_new_from_file(), and cr_parser_new_from_input(). |
|
Instanciates a new parser from a memory buffer.
Definition at line 3462 of file cr-parser.c. References cr_input_destroy(), cr_input_new_from_buf(), and cr_parser_new_from_input(). Referenced by cr_declaration_parse_from_buf(), cr_selector_parse_from_buf(), cr_statement_at_charset_rule_parse_from_buf(), cr_statement_at_import_rule_parse_from_buf(), cr_statement_at_media_rule_parse_from_buf(), cr_statement_at_page_rule_parse_from_buf(), cr_statement_does_buf_parses_against_core(), cr_statement_font_face_rule_parse_from_buf(), cr_statement_ruleset_parse_from_buf(), and cr_term_parse_expression_from_buf(). |
|
Definition at line 3505 of file cr-parser.c. References cr_parser_new(), cr_tknzr_new_from_uri(), cr_utils_trace_info, and CRTknzr. Referenced by cr_om_parser_parse_file(). |
|
Definition at line 3486 of file cr-parser.c. References cr_parser_new(), cr_tknzr_new(), and CRTknzr. Referenced by cr_om_parser_new(), and cr_parser_new_from_buf(). |
|
Parses the data that comes from the input previously associated to the current instance of CRParser.
Definition at line 5086 of file cr-parser.c. References CR_BAD_PARAM_ERROR, CR_ERROR, CRStatus, and PRIVATE. Referenced by cr_parser_parse_buf(), and cr_parser_parse_file(). |
|
Definition at line 5128 of file cr-parser.c. References CR_BAD_PARAM_ERROR, CR_ERROR, CR_OK, cr_parser_parse(), cr_parser_set_tknzr(), cr_tknzr_new_from_buf(), CRStatus, CRTknzr, and PRIVATE. Referenced by cr_om_parser_parse_buf(). |
|
Parses a charset declaration as defined implictly by the css2 spec in appendix D.1: charset ::= CHARSET_SYM S* STRING S* ';'.
Definition at line 4788 of file cr-parser.c. References CHARSET_PARSED_STATE, CHARSET_SYM_TK, CR_BAD_PARAM_ERROR, CR_OK, cr_parser_try_to_skip_spaces_and_comments(), cr_tknzr_get_next_token(), cr_tknzr_set_cur_pos(), cr_token_destroy(), CRStatus, ENSURE_PARSING_COND, PRIVATE, RECORD_INITIAL_POS, SEMICOLON_TK, STRING_TK, TRY_PARSE_CHARSET_STATE, _CRToken::type, and _CRToken::u. Referenced by cr_statement_at_charset_rule_parse_from_buf(). |
|
Parses a "declaration" as defined by the css2 spec in appendix D.1: declaration ::= [property ':' S* expr prio?]?
Definition at line 3773 of file cr-parser.c. References CHECK_PARSING_STATUS_ERR, CR_BAD_PARAM_ERROR, CR_ERROR, CR_OK, cr_parser_parse_expr(), cr_parser_try_to_skip_spaces_and_comments(), CR_PARSING_ERROR, CR_SYNTAX_ERROR, cr_term_append_term(), cr_term_destroy(), cr_tknzr_set_cur_pos(), CRStatus, PRIVATE, READ_NEXT_CHAR, and RECORD_INITIAL_POS. Referenced by cr_declaration_parse_from_buf(), cr_parser_parse_font_face(), cr_parser_parse_page(), and cr_parser_parse_ruleset(). |
|
Parses an expression as defined by the css2 spec in appendix D.1: expr: term [ operator term ]*.
Definition at line 3658 of file cr-parser.c. References CHECK_PARSING_STATUS, COMMA, CR_BAD_PARAM_ERROR, CR_END_OF_INPUT_ERROR, CR_ERROR, CR_OK, cr_parser_try_to_skip_spaces_and_comments(), cr_term_append_term(), cr_term_destroy(), cr_tknzr_peek_byte(), cr_tknzr_set_cur_pos(), CRStatus, DIVIDE, _CRTerm::operator, PRIVATE, READ_NEXT_BYTE, and RECORD_INITIAL_POS. Referenced by cr_parser_parse_declaration(), and cr_term_parse_expression_from_buf(). |
|
Parses a the given in parameter.
Definition at line 3629 of file cr-parser.c. References CR_BAD_PARAM_ERROR, CR_ERROR, CR_OK, cr_parser_parse(), cr_parser_set_tknzr(), cr_tknzr_new_from_uri(), CRStatus, CRTknzr, and PRIVATE. Referenced by cr_om_parser_parse_file(). |
|
Parses the "@font-face" rule specified in the css1 spec in appendix D.1:. font_face ::= FONT_FACE_SYM S* '{' S* declaration [ ';' S* declaration ]* '}' S* This function will call SAC handlers whenever it is necessary.
Definition at line 4882 of file cr-parser.c. References CBO_TK, CR_BAD_PARAM_ERROR, CR_ERROR, CR_OK, cr_parser_parse_declaration(), cr_parser_try_to_skip_spaces_and_comments(), cr_term_destroy(), cr_term_ref(), cr_term_unref(), cr_tknzr_get_next_token(), cr_tknzr_set_cur_pos(), cr_token_destroy(), CRStatus, ENSURE_PARSING_COND, FONT_FACE_PARSED_STATE, FONT_FACE_SYM_TK, PEEK_NEXT_CHAR, PRIVATE, READ_NEXT_CHAR, RECORD_INITIAL_POS, TRY_PARSE_FONT_FACE_STATE, and _CRToken::type. Referenced by cr_statement_font_face_rule_parse_from_buf(). |
|
Parses an 'import' declaration as defined in the css2 spec in appendix D.1:. import ::= [STRING|URI] S* [ medium [ ',' S* medium]* ]? ';' S*
Definition at line 4153 of file cr-parser.c. References BYTE, CHECK_PARSING_STATUS, CR_BAD_PARAM_ERROR, CR_END_OF_INPUT_ERROR, CR_OK, cr_parser_try_to_skip_spaces_and_comments(), CR_PARSING_ERROR, cr_tknzr_peek_char(), cr_tknzr_set_cur_pos(), CRStatus, ENSURE_PARSING_COND, IMPORT_PARSED_STATE, PEEK_NEXT_CHAR, PRIVATE, READ_NEXT_CHAR, RECORD_INITIAL_POS, SKIP_CHARS, and TRY_PARSE_IMPORT_STATE. Referenced by cr_statement_at_import_rule_parse_from_buf(). |
|
Parses a 'media' declaration as specified in the css2 spec at appendix D.1:. media ::= S* medium [ ',' S* medium ]* '{' S* ruleset* '}' S* Note that this function calls the required sac handlers during the parsing to notify media productions. See CRDocHandler to know the callback called during parsing.
Definition at line 4329 of file cr-parser.c. References CHECK_PARSING_STATUS, CR_BAD_PARAM_ERROR, CR_OK, cr_parser_parse_ruleset(), cr_parser_try_to_skip_spaces_and_comments(), cr_tknzr_get_next_token(), cr_tknzr_set_cur_pos(), cr_token_destroy(), CRStatus, ENSURE_PARSING_COND, IDENT_TK, MEDIA_PARSED_STATE, MEDIA_SYM_TK, PEEK_NEXT_CHAR, PRIVATE, READ_NEXT_CHAR, RECORD_INITIAL_POS, TRY_PARSE_MEDIA_STATE, _CRToken::type, and _CRToken::u. Referenced by cr_statement_at_media_rule_parse_from_buf(). |
|
Parses '' rule as specified in the css2 spec in appendix D.1: page ::= PAGE_SYM S* IDENT? pseudo_page? S* '{' S* declaration [ ';' S* declaration ]* '}' S*. This function also calls the relevant SAC handlers whenever it encounters a construction that must be reported to the calling application.
Definition at line 4512 of file cr-parser.c. References CBC_TK, CBO_TK, CHECK_PARSING_STATUS, CR_BAD_PARAM_ERROR, CR_OK, cr_parser_parse_declaration(), cr_parser_try_to_skip_spaces_and_comments(), cr_term_destroy(), cr_term_ref(), cr_term_unref(), cr_tknzr_get_next_token(), cr_tknzr_set_cur_pos(), cr_tknzr_unget_token(), cr_token_destroy(), CRStatus, DELIM_TK, ENSURE_PARSING_COND, IDENT_TK, PAGE_PARSED_STATE, PAGE_SYM_TK, PRIVATE, RECORD_INITIAL_POS, SEMICOLON_TK, TRY_PARSE_PAGE_STATE, _CRToken::type, and _CRToken::u. Referenced by cr_statement_at_page_rule_parse_from_buf(). |
|
Parses a "ruleset" as defined in the css2 spec at appendix D.1. ruleset ::= selector [ ',' S* selector ]* '{' S* declaration? [ ';' S* declaration? ]* '}' S*; This methods calls the the SAC handler on the relevant SAC handler callbacks whenever it encounters some specific constructions. See the documentation of CRDocHandler (the SAC handler) to know when which SAC handler is called.
Definition at line 3922 of file cr-parser.c. References CHECK_PARSING_STATUS, CHECK_PARSING_STATUS_ERR, CR_BAD_PARAM_ERROR, CR_OK, cr_parser_parse_declaration(), cr_parser_try_to_skip_spaces_and_comments(), cr_selector_ref(), cr_selector_unref(), cr_simple_sel_destroy(), CR_SYNTAX_ERROR, cr_term_ref(), cr_term_unref(), cr_tknzr_set_cur_pos(), CRStatus, ENSURE_PARSING_COND_ERR, PEEK_NEXT_CHAR, PRIVATE, READ_NEXT_CHAR, RECORD_INITIAL_POS, RULESET_PARSED_STATE, and TRY_PARSE_RULESET_STATE. Referenced by cr_parser_parse_media(), and cr_statement_ruleset_parse_from_buf(). |
|
Parses a statement as defined by the css core grammar in chapter 4.1 of the css2 spec. statement : ruleset | at-rule;
Definition at line 3857 of file cr-parser.c. References ATKEYWORD_TK, CHARSET_SYM_TK, CHECK_PARSING_STATUS, CR_BAD_PARAM_ERROR, CR_ERROR, CR_OK, cr_tknzr_get_next_token(), cr_tknzr_set_cur_pos(), cr_tknzr_unget_token(), cr_token_destroy(), CRStatus, ENSURE_PARSING_COND, FONT_FACE_SYM_TK, IMPORT_SYM_TK, MEDIA_SYM_TK, PAGE_SYM_TK, PRIVATE, RECORD_INITIAL_POS, and _CRToken::type. Referenced by cr_statement_does_buf_parses_against_core(). |
|
Sets the SAC handler associated to the current instance of CRParser to the default SAC handler.
Definition at line 3573 of file cr-parser.c. References CR_BAD_PARAM_ERROR, cr_doc_handler_destroy(), cr_doc_handler_new(), cr_doc_handler_set_default_sac_handler(), CR_ERROR, CR_OK, cr_parser_set_sac_handler(), CRDocHandler, CRStatus, and PRIVATE. |
|
Sets a SAC document handler to the parser.
Definition at line 3531 of file cr-parser.c. References CR_BAD_PARAM_ERROR, cr_doc_handler_ref(), cr_doc_handler_unref(), CR_OK, and PRIVATE. Referenced by cr_parser_set_default_sac_handler(), cr_statement_at_media_rule_parse_from_buf(), cr_statement_at_page_rule_parse_from_buf(), cr_statement_font_face_rule_parse_from_buf(), and cr_statement_ruleset_parse_from_buf(). |
|
Definition at line 5108 of file cr-parser.c. References CR_BAD_PARAM_ERROR, CR_OK, cr_tknzr_ref(), cr_tknzr_unref(), and PRIVATE. Referenced by cr_parser_new(), cr_parser_parse_buf(), and cr_parser_parse_file(). |
|
Definition at line 3598 of file cr-parser.c. References CR_BAD_PARAM_ERROR, CR_OK, and PRIVATE. Referenced by cr_statement_does_buf_parses_against_core(). |
|
Same as cr_parser_try_to_skip_spaces() but this one skips spaces and comments.
Definition at line 689 of file cr-parser.c. References COMMENT_TK, CR_BAD_PARAM_ERROR, CR_ERROR, CR_OK, cr_tknzr_get_next_token(), cr_tknzr_unget_token(), cr_token_destroy(), CRStatus, PRIVATE, S_TK, and _CRToken::type. Referenced by cr_declaration_parse_from_buf(), cr_parser_parse_charset(), cr_parser_parse_declaration(), cr_parser_parse_expr(), cr_parser_parse_font_face(), cr_parser_parse_import(), cr_parser_parse_media(), cr_parser_parse_page(), cr_parser_parse_ruleset(), cr_statement_at_charset_rule_parse_from_buf(), cr_statement_at_import_rule_parse_from_buf(), cr_statement_at_media_rule_parse_from_buf(), cr_statement_at_page_rule_parse_from_buf(), cr_statement_font_face_rule_parse_from_buf(), cr_statement_ruleset_parse_from_buf(), and cr_term_parse_expression_from_buf(). |