public CssNode Parse() { rootNode = new CssNode (new CssToken("stylesheet", CssTokenType.STYLESHEET, 0, 0)); currentNode = rootNode; stylesheet(); return rootNode; }
// Handles AtKeyword Parsing private void AtKeyword () { acceptElement (CssTokenType.ATKEYWORD); currentNode = rootNode.GetLatest (); acceptElement (CssTokenType.STRING); acceptElement (CssTokenType.SEMICOLON); currentNode = rootNode; return; }
private void RuleSet () { CssNode ruleSetNode = new CssNode(new CssToken("ruleset", CssTokenType.RULESET, 0, 0)); rootNode.AddChild(ruleSetNode); currentNode = ruleSetNode; while (tokenizer.Current.GetTokenType () == CssTokenType.IDENT || tokenizer.Current.GetTokenType () == CssTokenType.HASH || tokenizer.Current.GetTokenType () == CssTokenType.CLASS) { selector (); if (tokenizer.Current.GetTokenType () == CssTokenType.COMMA) acceptElement (CssTokenType.COMMA); } acceptElement (CssTokenType.LEFTCURLY); declaration (); acceptElement (CssTokenType.RIGHTCURLY); currentNode = rootNode; }
public void AddChild(CssNode t) { if (children == null) children = new List<CssNode> (); children.add(t); }
public CssNode (CssToken token) { this.token = token; parent = null; }