#include <glib.h>
#include "cr-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) |
cr_parser_new: : the tokenizer to use for the parsing. | |
CRParser * | cr_parser_new_from_buf (guchar *a_buf, gulong a_len, enum CREncoding a_enc, gboolean a_free_buf) |
cr_parser_new_from_buf: : the buffer to parse. | |
CRParser * | cr_parser_new_from_file (const guchar *a_file_uri, enum CREncoding a_enc) |
cr_parser_new_from_file: : the uri of the file to parse. | |
CRParser * | cr_parser_new_from_input (CRInput *a_input) |
cr_parser_new_from_input: : the parser input stream to use. | |
enum CRStatus | cr_parser_set_tknzr (CRParser *a_this, CRTknzr *a_tknzr) |
cr_parser_set_tknzr: : the current instance of CRParser; : the new tokenizer. | |
enum CRStatus | cr_parser_get_tknzr (CRParser *a_this, CRTknzr **a_tknzr) |
cr_parser_get_tknzr: : the current instance of CRParser : out parameter. | |
enum CRStatus | cr_parser_get_parsing_location (CRParser *a_this, CRParsingLocation *a_loc) |
cr_parser_get_parsing_location: : the current instance of CRParser : the parsing location to get. | |
enum CRStatus | cr_parser_try_to_skip_spaces_and_comments (CRParser *a_this) |
cr_parser_try_to_skip_spaces_and_comments: : the current instance of CRParser. | |
enum CRStatus | cr_parser_set_sac_handler (CRParser *a_this, CRDocHandler *a_handler) |
cr_parser_set_sac_handler: : the "this pointer" of the current instance of CRParser. | |
enum CRStatus | cr_parser_get_sac_handler (CRParser *a_this, CRDocHandler **a_handler) |
cr_parser_get_sac_handler: : the "this pointer" of the current instance of CRParser. | |
enum CRStatus | cr_parser_set_use_core_grammar (CRParser *a_this, gboolean a_use_core_grammar) |
cr_parser_set_use_core_grammar: : the current instance of CRParser. | |
enum CRStatus | cr_parser_get_use_core_grammar (CRParser *a_this, gboolean *a_use_core_grammar) |
cr_parser_get_use_core_grammar: : the current instance of CRParser. | |
enum CRStatus | cr_parser_parse (CRParser *a_this) |
cr_parser_parse: : the current instance of CRParser. | |
enum CRStatus | cr_parser_parse_file (CRParser *a_this, const guchar *a_file_uri, enum CREncoding a_enc) |
cr_parser_parse_file: : a pointer to the current instance of CRParser. | |
enum CRStatus | cr_parser_parse_buf (CRParser *a_this, const guchar *a_buf, gulong a_len, enum CREncoding a_enc) |
cr_parser_parse_buf: : the current instance of CRparser : the input buffer : the length of the input buffer : the encoding of the buffer | |
enum CRStatus | cr_parser_set_default_sac_handler (CRParser *a_this) |
cr_parser_set_default_sac_handler: : a pointer to the current instance of CRParser. | |
enum CRStatus | cr_parser_parse_term (CRParser *a_this, CRTerm **a_term) |
cr_parser_parse_term: : out parameter. | |
enum CRStatus | cr_parser_parse_expr (CRParser *a_this, CRTerm **a_expr) |
cr_parser_parse_expr: : the current instance of CRParser. | |
enum CRStatus | cr_parser_parse_prio (CRParser *a_this, CRString **a_prio) |
cr_parser_parse_prio: : the current instance of CRParser. | |
enum CRStatus | cr_parser_parse_declaration (CRParser *a_this, CRString **a_property, CRTerm **a_expr, gboolean *a_important) |
cr_parser_parse_declaration: : the "this pointer" of the current instance of CRParser. | |
enum CRStatus | cr_parser_parse_statement_core (CRParser *a_this) |
cr_parser_parse_statement_core: : the current instance of CRParser. | |
enum CRStatus | cr_parser_parse_ruleset (CRParser *a_this) |
cr_parser_parse_ruleset: : the "this pointer" of the current instance of CRParser. | |
enum CRStatus | cr_parser_parse_import (CRParser *a_this, GList **a_media_list, CRString **a_import_string, CRParsingLocation *a_location) |
cr_parser_parse_import: : the "this pointer" of the current instance of CRParser. | |
enum CRStatus | cr_parser_parse_media (CRParser *a_this) |
cr_parser_parse_media: : the "this pointer" of the current instance of CRParser. | |
enum CRStatus | cr_parser_parse_page (CRParser *a_this) |
enum CRStatus | cr_parser_parse_charset (CRParser *a_this, CRString **a_value, CRParsingLocation *a_charset_sym_location) |
cr_parser_parse_charset: : the "this pointer" of the current instance of CRParser. | |
enum CRStatus | cr_parser_parse_font_face (CRParser *a_this) |
cr_parser_parse_font_face: : the current instance of CRParser. | |
void | cr_parser_destroy (CRParser *a_this) |
cr_parser_destroy: : the current instance of CRParser to destroy. |
Definition in file cr-parser.h.
|
Definition at line 40 of file cr-parser.h. |
|
Definition at line 41 of file cr-parser.h. |
|
cr_parser_destroy: : the current instance of CRParser to destroy. Destroys the current instance of CRParser. Definition at line 4495 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_rgb_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(). |
|
cr_parser_get_parsing_location: : the current instance of CRParser : the parsing location to get. Gets the current parsing location. Returns CR_OK upon succesful completion, an error code otherwise. Definition at line 4441 of file cr-parser.c. References CR_BAD_PARAM_ERROR, cr_tknzr_get_parsing_location(), and PRIVATE. Referenced by cr_parser_parse_import(). |
|
cr_parser_get_sac_handler: : the "this pointer" of the current instance of CRParser. : out parameter. The returned handler. Gets the SAC document handler. Returns CR_OK upon successfull completion, an error code otherwise. Definition at line 2889 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(). |
|
cr_parser_get_tknzr: : the current instance of CRParser : out parameter. The returned tokenizer Getter of the parser's underlying tokenizer Returns CR_OK upon succesful completion, an error code otherwise Definition at line 4421 of file cr-parser.c. References CR_BAD_PARAM_ERROR, CR_OK, and PRIVATE. Referenced by cr_declaration_parse_list_from_buf(). |
|
cr_parser_get_use_core_grammar: : the current instance of CRParser. : wether to use the core grammar or not. Returns CR_OK upon succesful completion, an error code otherwise. Definition at line 2955 of file cr-parser.c. References CR_BAD_PARAM_ERROR, CR_OK, and PRIVATE. |
|
cr_parser_new: : the tokenizer to use for the parsing. Creates a new parser to parse data coming the input stream given in parameter. Returns the newly created instance of CRParser, or NULL if an error occured. Definition at line 2751 of file cr-parser.c. References CR_OK, cr_parser_set_tknzr(), and PRIVATE. Referenced by cr_om_parser_parse_buf(), cr_parser_new_from_file(), and cr_parser_new_from_input(). |
|
|
cr_parser_new_from_file: : the uri of the file to parse. : the file encoding to use. Returns the newly built parser. Definition at line 2837 of file cr-parser.c. References cr_parser_new(), cr_tknzr_new_from_uri(), and cr_utils_trace_info. Referenced by cr_om_parser_parse_file(). |
|
cr_parser_new_from_input: : the parser input stream to use. Returns a newly built parser input. Definition at line 2813 of file cr-parser.c. References cr_parser_new(), and cr_tknzr_new(). Referenced by cr_om_parser_new(), and cr_parser_new_from_buf(). |
|
cr_parser_parse: : the current instance of CRParser. Parses the data that comes from the input previously associated to the current instance of CRParser. Returns CR_OK upon succesful completion, an error code otherwise. Definition at line 4370 of file cr-parser.c. References CR_BAD_PARAM_ERROR, CR_ERROR, and PRIVATE. Referenced by cr_parser_parse_buf(), and cr_parser_parse_file(). |
|
cr_parser_parse_buf: : the current instance of CRparser : the input buffer : the length of the input buffer : the encoding of the buffer Parses a stylesheet from a buffer Returns CR_OK upon successful completion, an error code otherwise. Definition at line 4464 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(), and PRIVATE. Referenced by cr_om_parser_parse_buf(). |
|
cr_parser_parse_charset: : the "this pointer" of the current instance of CRParser. : out parameter. The actual parsed value of the charset declararation. Note that for safety check reasons, *a_value must be set to NULL. : the parsing location of the charset rule Parses a charset declaration as defined implictly by the css2 spec in appendix D.1: charset ::= CHARSET_SYM S* STRING S* ';' Returns CR_OK upon successfull completion, an error code otherwise. Definition at line 4122 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_parsing_location_copy(), cr_string_destroy(), cr_tknzr_get_next_token(), cr_tknzr_set_cur_pos(), cr_token_destroy(), ENSURE_PARSING_COND, _CRToken::location, PRIVATE, RECORD_INITIAL_POS, SEMICOLON_TK, _CRToken::str, STRING_TK, TRY_PARSE_CHARSET_STATE, _CRToken::type, and _CRToken::u. Referenced by cr_statement_at_charset_rule_parse_from_buf(). |
|
cr_parser_parse_declaration: : the "this pointer" of the current instance of CRParser. : the successfully parsed property. The caller *must* free the returned pointer. : the expression that represents the attribute value. The caller *must* free the returned pointer. TODO: return the parsed priority, so that upper layers can take benefit from it. Parses a "declaration" as defined by the css2 spec in appendix D.1: declaration ::= [property ':' S* expr prio?]? Returns CR_OK upon successfull completion, an error code otherwise. Definition at line 3169 of file cr-parser.c. References CHECK_PARSING_STATUS_ERR, CR_BAD_PARAM_ERROR, CR_END_OF_INPUT_ERROR, CR_ERROR, CR_OK, cr_parser_parse_expr(), cr_parser_parse_prio(), cr_parser_try_to_skip_spaces_and_comments(), CR_PARSING_ERROR, cr_string_destroy(), CR_SYNTAX_ERROR, cr_term_append_term(), cr_term_destroy(), cr_tknzr_set_cur_pos(), PRIVATE, READ_NEXT_CHAR, and RECORD_INITIAL_POS. Referenced by cr_declaration_parse_from_buf(), cr_declaration_parse_list_from_buf(), cr_parser_parse_font_face(), cr_parser_parse_page(), and cr_parser_parse_ruleset(). |
|
cr_parser_parse_expr: : the current instance of CRParser. : out parameter. the parsed expression. Parses an expression as defined by the css2 spec in appendix D.1: expr: term [ operator term ]* Returns CR_OK upon successful completion, an error code otherwise. Definition at line 3011 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_parse_term(), cr_parser_try_to_skip_spaces_and_comments(), cr_term_append_term(), cr_tknzr_peek_byte(), DIVIDE, PRIVATE, READ_NEXT_BYTE, and RECORD_INITIAL_POS. Referenced by cr_parser_parse_declaration(), and cr_term_parse_expression_from_buf(). |
|
cr_parser_parse_file: : a pointer to the current instance of CRParser. : the uri to the file to load. For the time being, : the encoding of the file to parse. only local files are supported. Parses a the given in parameter. Returns CR_OK upon successfull completion, an error code otherwise. Definition at line 2977 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(), and PRIVATE. Referenced by cr_om_parser_parse_file(). |
|
cr_parser_parse_font_face: : the current instance of CRParser. 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. Returns CR_OK upon successfull completion, an error code otherwise. Definition at line 4213 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_parsing_location_copy(), cr_string_destroy(), cr_term_ref(), cr_term_unref(), cr_tknzr_get_next_token(), cr_token_destroy(), ENSURE_PARSING_COND, FONT_FACE_SYM_TK, _CRToken::location, 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(). |
|
cr_parser_parse_import: : the "this pointer" of the current instance of CRParser. : out parameter. A linked list of CRString Each CRString is a string that contains a 'medium' declaration part of the successfully parsed 'import' declaration. : out parameter. A string that contains the 'import string". The import string can be either an uri (if it starts with the substring "uri(") or a any other css2 string. Note that *a_import_string must be initially set to NULL or else, this function will return CR_BAD_PARAM_ERROR. : the location (line, column) where the import has been parsed Parses an 'import' declaration as defined in the css2 spec in appendix D.1: import ::= [STRING|URI] S* [ medium [ ',' S* medium]* ]? ';' S* Returns CR_OK upon sucessfull completion, an error code otherwise. Definition at line 3540 of file cr-parser.c. References BYTE, CHECK_PARSING_STATUS, CR_BAD_PARAM_ERROR, CR_END_OF_INPUT_ERROR, CR_OK, cr_parser_get_parsing_location(), cr_parser_try_to_skip_spaces_and_comments(), CR_PARSING_ERROR, cr_tknzr_peek_char(), PEEK_NEXT_CHAR, PRIVATE, RECORD_INITIAL_POS, SKIP_CHARS, and TRY_PARSE_IMPORT_STATE. Referenced by cr_statement_at_import_rule_parse_from_buf(). |
|
cr_parser_parse_media: : the "this pointer" of the current instance of CRParser. 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. Returns CR_OK upon successfull completion, an error code otherwise. Definition at line 3701 of file cr-parser.c. References CHECK_PARSING_STATUS, CR_BAD_PARAM_ERROR, CR_OK, cr_parser_try_to_skip_spaces_and_comments(), cr_parsing_location_copy(), cr_tknzr_get_next_token(), cr_token_destroy(), ENSURE_PARSING_COND, IDENT_TK, _CRToken::location, MEDIA_SYM_TK, PEEK_NEXT_CHAR, PRIVATE, READ_NEXT_CHAR, RECORD_INITIAL_POS, _CRToken::str, _CRToken::type, and _CRToken::u. Referenced by cr_statement_at_media_rule_parse_from_buf(). |
|
|
cr_parser_parse_prio: : the current instance of CRParser. : a string representing the priority. Today, only "!important" is returned as only this priority is defined by css2. Parses a declaration priority as defined by the css2 grammar in appendix C: prio: IMPORTANT_SYM S* Returns CR_OK upon successful completion, an error code otherwise. Definition at line 3118 of file cr-parser.c. References CR_BAD_PARAM_ERROR, CR_END_OF_INPUT_ERROR, CR_ERROR, CR_OK, cr_parser_try_to_skip_spaces_and_comments(), cr_string_new_from_string(), cr_tknzr_get_next_token(), cr_tknzr_set_cur_pos(), cr_token_destroy(), ENSURE_PARSING_COND, IMPORTANT_SYM_TK, PRIVATE, RECORD_INITIAL_POS, and _CRToken::type. Referenced by cr_parser_parse_declaration(). |
|
cr_parser_parse_ruleset: : the "this pointer" of the current instance of CRParser. 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. Returns CR_OK upon successfull completion, an error code otherwise. Definition at line 3327 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_string_destroy(), CR_SYNTAX_ERROR, cr_term_ref(), cr_term_unref(), cr_tknzr_peek_char(), ENSURE_PARSING_COND_ERR, PEEK_NEXT_CHAR, PRIVATE, READ_NEXT_CHAR, RECORD_INITIAL_POS, and TRY_PARSE_RULESET_STATE. Referenced by cr_statement_ruleset_parse_from_buf(). |
|
cr_parser_parse_statement_core: : the current instance of CRParser. Parses a statement as defined by the css core grammar in chapter 4.1 of the css2 spec. statement : ruleset | at-rule; Returns CR_OK upon successfull completion, an error code otherwise. Definition at line 3263 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(), 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(). |
|
|
cr_parser_set_default_sac_handler: : a pointer to the current instance of CRParser. Sets the SAC handler associated to the current instance of CRParser to the default SAC handler. Returns CR_OK upon successfull completion, an error code otherwise. Definition at line 2908 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(), and PRIVATE. |
|
cr_parser_set_sac_handler: : the "this pointer" of the current instance of CRParser. : the handler to set. Sets a SAC document handler to the parser. Returns CR_OK upon successfull completion, an error code otherwise. Definition at line 2863 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(). |
|
cr_parser_set_tknzr: : the current instance of CRParser; : the new tokenizer. Returns CR_OK upon successful completion, an error code otherwise. Definition at line 4394 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(). |
|
cr_parser_set_use_core_grammar: : the current instance of CRParser. : where to parse against the css core grammar. Returns CR_OK upon succesful completion, an error code otherwise. Definition at line 2937 of file cr-parser.c. References CR_BAD_PARAM_ERROR, CR_OK, and PRIVATE. Referenced by cr_statement_does_buf_parses_against_core(). |
|