Documentation
id
   = [a-z][a-zA-Z0-9]*

string
   = "\"" [a-zA-Z0-9]+ "\""

string_list
   = (string "," string_list) / string

value
   = ("[" string_list "]") / string

property
   = id ":" string

rule
  = (("$" id "=" string) / "@" id "=" "[" string_list "]")+

selector_list
   = (rule "," selector_list) / rule

selector
   = selector_list "{" expression* "}"

expression
   = property / selector

namespace_identifier
   = id "::" namespace_identifier / id

namespace
   = namespace_identifier "(" expression+ ")"

block
   = namespace / expression

#[pub]
file
   = block+