summaryrefslogtreecommitdiff
path: root/src/parser/cr-parser.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/parser/cr-parser.c')
-rw-r--r--src/parser/cr-parser.c122
1 files changed, 60 insertions, 62 deletions
diff --git a/src/parser/cr-parser.c b/src/parser/cr-parser.c
index 58454c7..0a395fc 100644
--- a/src/parser/cr-parser.c
+++ b/src/parser/cr-parser.c
@@ -366,9 +366,6 @@ static enum CRStatus
cr_parser_parse_ruleset_core (CRParser *a_this) ;
static enum CRStatus
-cr_parser_parse_statement_core (CRParser *a_this) ;
-
-static enum CRStatus
cr_parser_parse_selector_core (CRParser *a_this) ;
static enum CRStatus
@@ -1177,65 +1174,6 @@ cr_parser_parse_stylesheet_core (CRParser *a_this)
}
/**
- *Parses a statement as defined by the css core grammar in
- *chapter 4.1 of the css2 spec.
- *statement : ruleset | at-rule;
- *@param a_this the current instance of #CRParser.
- *@return CR_OK upon successfull completion, an error code otherwise.
- */
-static enum CRStatus
-cr_parser_parse_statement_core (CRParser *a_this)
-{
- CRToken *token = NULL ;
- CRInputPos init_pos ;
- enum CRStatus status = CR_ERROR ;
-
- g_return_val_if_fail (a_this && PRIVATE (a_this),
- CR_BAD_PARAM_ERROR) ;
-
- RECORD_INITIAL_POS (a_this, &init_pos) ;
-
- status = cr_tknzr_get_next_token (PRIVATE (a_this)->tknzr,
- &token) ;
- ENSURE_PARSING_COND (status == CR_OK && token) ;
-
- switch (token->type)
- {
- case ATKEYWORD_TK:
- case IMPORT_SYM_TK:
- case PAGE_SYM_TK:
- case MEDIA_SYM_TK:
- case FONT_FACE_SYM_TK:
- case CHARSET_SYM_TK:
- cr_tknzr_unget_token (PRIVATE (a_this)->tknzr, token) ;
- token = NULL ;
- status = cr_parser_parse_atrule_core (a_this) ;
- CHECK_PARSING_STATUS (status, TRUE) ;
- break ;
-
- default:
- cr_tknzr_unget_token (PRIVATE (a_this)->tknzr, token) ;
- token = NULL ;
- status = cr_parser_parse_ruleset_core (a_this) ;
- cr_parser_clear_errors (a_this) ;
- CHECK_PARSING_STATUS (status, TRUE) ;
- }
-
- return CR_OK ;
-
- error:
- if (token)
- {
- cr_token_destroy (token) ;
- token = NULL ;
- }
-
- cr_tknzr_set_cur_pos (PRIVATE (a_this)->tknzr, &init_pos) ;
-
- return status ;
-}
-
-/**
*Parses an at-rule as defined by the css core grammar
*in chapter 4.1 in the css2 spec.
*at-rule : ATKEYWORD S* any* [ block | ';' S* ];
@@ -3909,6 +3847,66 @@ cr_parser_parse_declaration (CRParser *a_this, GString **a_property,
}
/**
+ *Parses a statement as defined by the css core grammar in
+ *chapter 4.1 of the css2 spec.
+ *statement : ruleset | at-rule;
+ *@param a_this the current instance of #CRParser.
+ *@return CR_OK upon successfull completion, an error code otherwise.
+ */
+enum CRStatus
+cr_parser_parse_statement_core (CRParser *a_this)
+{
+ CRToken *token = NULL ;
+ CRInputPos init_pos ;
+ enum CRStatus status = CR_ERROR ;
+
+ g_return_val_if_fail (a_this && PRIVATE (a_this),
+ CR_BAD_PARAM_ERROR) ;
+
+ RECORD_INITIAL_POS (a_this, &init_pos) ;
+
+ status = cr_tknzr_get_next_token (PRIVATE (a_this)->tknzr,
+ &token) ;
+
+ ENSURE_PARSING_COND (status == CR_OK && token) ;
+
+ switch (token->type)
+ {
+ case ATKEYWORD_TK:
+ case IMPORT_SYM_TK:
+ case PAGE_SYM_TK:
+ case MEDIA_SYM_TK:
+ case FONT_FACE_SYM_TK:
+ case CHARSET_SYM_TK:
+ cr_tknzr_unget_token (PRIVATE (a_this)->tknzr, token) ;
+ token = NULL ;
+ status = cr_parser_parse_atrule_core (a_this) ;
+ CHECK_PARSING_STATUS (status, TRUE) ;
+ break ;
+
+ default:
+ cr_tknzr_unget_token (PRIVATE (a_this)->tknzr, token) ;
+ token = NULL ;
+ status = cr_parser_parse_ruleset_core (a_this) ;
+ cr_parser_clear_errors (a_this) ;
+ CHECK_PARSING_STATUS (status, TRUE) ;
+ }
+
+ return CR_OK ;
+
+ error:
+ if (token)
+ {
+ cr_token_destroy (token) ;
+ token = NULL ;
+ }
+
+ cr_tknzr_set_cur_pos (PRIVATE (a_this)->tknzr, &init_pos) ;
+
+ return status ;
+}
+
+/**
*Parses a "ruleset" as defined in the css2 spec at appendix D.1.
*ruleset ::= selector [ ',' S* selector ]*
*'{' S* declaration? [ ';' S* declaration? ]* '}' S*;