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+