def attrib(rule): rule | ('[', cssid, _or('=', no_ignore('|', '='), no_ignore( '~', '=')), _or(cssid, STRING, SSTRING), ']') rule.astAttrs = { 'name': cssid, 'op': [SYMBOL], 'value': { 'type': [cssid, STRING, SSTRING], 'single': True, 'start': 1, } }
def attrib(rule): rule | ('[', cssid, _or('=', no_ignore('|','='), no_ignore('~','=')), _or(cssid, STRING, SSTRING), ']') rule.astAttrs = { 'name':cssid, 'op':[SYMBOL], 'value':{ 'type':[cssid, STRING, SSTRING], 'single':True, 'start':1, } }
def media(rule): rule | (no_ignore('@', 'media'), commas(cssid, False), '{', star(ruleset), '}') rule.astAttrs = { 'media': [cssid], 'rulesets': [ruleset], }
def at(rule): rule | (no_ignore('@', ID), _or(STRING, SSTRING))
def font_face(rule): rule | (no_ignore('@', 'font', '-', 'face'), block) rule.astAttrs = { 'rules': [declaration], }
def page(rule): rule | (no_ignore('@', 'page'), [cssid], [':', cssid], block) rule.astAttrs = { 'page': [cssid], 'rules': [declaration], }
def import_(rule): rule | (no_ignore('@', 'import'), import_from, [commas(cssid, False)], ';') rule.astAttrs = { 'source': import_from, 'media': [cssid], }
def charset(rule): rule | (no_ignore('@', 'charset'), _or(STRING, SSTRING), ';') rule.pass_single = True
def font_face(rule): rule | (no_ignore('@', 'font', '-', 'face'), block) rule.astAttrs = { 'rules':[declaration], }
def page(rule): rule | (no_ignore('@', 'page'), [cssid], [':', cssid], block) rule.astAttrs = { 'page':[cssid], 'rules':[declaration], }
def media(rule): rule | (no_ignore('@', 'media'), commas(cssid, False), '{', star(ruleset), '}') rule.astAttrs = { 'media':[cssid], 'rulesets':[ruleset], }
def import_(rule): rule | (no_ignore('@', 'import'), import_from, [commas(cssid, False)], ';') rule.astAttrs = { 'source':import_from, 'media':[cssid], }
def at(rule): rule | (no_ignore('@', ID), _or(STRING, SSTRING, star(_not(_or(';','}')))), ';') rule | star(_not(_or(';','}')))
def percentage(rule): rule | (['-'], no_ignore(NUMBER, '%')) rule.astAttrs = {'neg':SYMBOL, 'value':NUMBER}