#define GetParserContext(CTX) (CTX)->rule.parsers[CSS_RULE_MY_RULE].data
typedef struct MyRuleParserContextRec_ {
} MyRuleParserContextRec, *MyRuleParserContext;
static int MyRuleParser_Begin(LCUI_CSSParserContext ctx)
// Initialize your parser context
ctx->rule.state = /* your parser initial state */;
static void MyRuleParser_End(LCUI_CSSParserContext ctx)
MyRuleParserContext data = GetParserContext(ctx);
int CSSParser_InitMyRuleParser(LCUI_CSSParserContext ctx)
LCUI_CSSRuleParser parser;
FontFaceParserContext data;
parser = &ctx->rule.parsers[CSS_RULE_MY_RULE];
data = NEW(MyRuleParserContextRec, 1);
parser->parse = MyRuleParser_Parse;
parser->begin = MyRuleParser_Begin;
strcpy(parser->name, "my-rule");
void CSSParser_FreeMyRuleParser(LCUI_CSSParserContext ctx)
FontFaceParserContext data = GetParserContext(ctx);
ctx->rule.parsers[CSS_RULE_MY_RULE].data = NULL;