{
"name": "syncat_stylesheet",
"word": "name",
"rules": {
"stylesheet": {
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_item"
}
},
"_item": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "rule"
},
{
"type": "SYMBOL",
"name": "declaration"
},
{
"type": "SYMBOL",
"name": "import"
}
]
},
"declaration": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "variable"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "value"
},
{
"type": "STRING",
"value": ";"
}
]
},
"variable": {
"type": "PATTERN",
"value": "\\$[A-Za-z0-9-_]*[A-Za-z-_][A-Za-z0-9-_]*"
},
"import": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "import"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "STRING",
"value": ";"
}
]
},
"rule": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "selectors"
},
{
"type": "SYMBOL",
"name": "styles"
}
]
},
"selectors": {
"type": "SYMBOL",
"name": "_selectors"
},
"_selectors": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "selector"
},
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_selectors"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "selector"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
}
]
},
"selector": {
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "node"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "node_modifier"
},
{
"type": "BLANK"
}
]
}
]
}
},
"node_modifier": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "direct"
},
{
"type": "SYMBOL",
"name": "sibling"
},
{
"type": "SYMBOL",
"name": "direct_sibling"
},
{
"type": "SYMBOL",
"name": "also"
}
]
},
"direct": {
"type": "STRING",
"value": ">"
},
"direct_sibling": {
"type": "STRING",
"value": "+"
},
"sibling": {
"type": "STRING",
"value": "~"
},
"also": {
"type": "STRING",
"value": "&"
},
"node": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "not"
},
{
"type": "SYMBOL",
"name": "_positive_node"
}
]
},
"_positive_node": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "group"
},
{
"type": "SYMBOL",
"name": "kind"
},
{
"type": "SYMBOL",
"name": "token"
},
{
"type": "SYMBOL",
"name": "any"
}
]
},
"not": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "!"
},
{
"type": "SYMBOL",
"name": "_positive_node"
}
]
},
"group": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "group_name"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "selector"
},
{
"type": "STRING",
"value": ")"
}
]
},
"group_name": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "<"
},
{
"type": "SYMBOL",
"name": "name"
},
{
"type": "STRING",
"value": ">"
}
]
},
"kind": {
"type": "SYMBOL",
"name": "name"
},
"token": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "regex"
}
]
},
"any": {
"type": "STRING",
"value": "*"
},
"styles": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "style"
}
},
{
"type": "STRING",
"value": "}"
}
]
},
"style": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "name"
},
{
"type": "STRING",
"value": ":"
},
{
"type": "SYMBOL",
"name": "value"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "style_modifier"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ";"
}
]
},
"style_modifier": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "important"
}
]
},
"important": {
"type": "STRING",
"value": "!"
},
"value": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "color"
},
{
"type": "SYMBOL",
"name": "boolean"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "variable"
},
{
"type": "SYMBOL",
"name": "name"
},
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "SYMBOL",
"name": "capture"
}
]
},
"capture": {
"type": "PATTERN",
"value": "\\$[0-9]+"
},
"color": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "named_color"
},
{
"type": "SYMBOL",
"name": "hex_color"
}
]
},
"named_color": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "red"
},
{
"type": "STRING",
"value": "blue"
},
{
"type": "STRING",
"value": "green"
},
{
"type": "STRING",
"value": "purple"
},
{
"type": "STRING",
"value": "yellow"
},
{
"type": "STRING",
"value": "black"
},
{
"type": "STRING",
"value": "white"
},
{
"type": "STRING",
"value": "cyan"
},
{
"type": "STRING",
"value": "brred"
},
{
"type": "STRING",
"value": "brblue"
},
{
"type": "STRING",
"value": "brgreen"
},
{
"type": "STRING",
"value": "brpurple"
},
{
"type": "STRING",
"value": "bryellow"
},
{
"type": "STRING",
"value": "brblack"
},
{
"type": "STRING",
"value": "brwhite"
},
{
"type": "STRING",
"value": "brcyan"
}
]
},
"hex_color": {
"type": "PATTERN",
"value": "#[a-fA-F0-9]{6}"
},
"boolean": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "true"
},
{
"type": "STRING",
"value": "false"
}
]
},
"number": {
"type": "PATTERN",
"value": "[0-9]+"
},
"regex": {
"type": "PATTERN",
"value": "\\/([^\\/\\\\]|\\\\.)+\\/[isuUmx]*"
},
"string": {
"type": "PATTERN",
"value": "\"(?:[^\"\\\\]|\\\\.)+\""
},
"name": {
"type": "PATTERN",
"value": "[A-Za-z0-9-_]*[A-Za-z-_][A-Za-z0-9-_]*"
},
"comment": {
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "//"
},
{
"type": "PATTERN",
"value": ".*"
}
]
}
}
},
"extras": [
{
"type": "PATTERN",
"value": "\\s"
},
{
"type": "SYMBOL",
"name": "comment"
}
],
"conflicts": [],
"precedences": [],
"externals": [],
"inline": [],
"supertypes": []
}