WHITESPACE = _{ " " | "\t" | NEWLINE }
COMMENT = _{ "-{" ~ (!"}" ~ ANY)* ~ "}" }
-sigil = _{ ("$" | "@" | "&") ~ "{" }
+sigil = _{ ("$" | "@" | "&" | "#") ~ "{" }
raw_char = _{ !(sigil) ~ ANY }
char_seq = { raw_char+ }
arr_def = { &("@") ~ def_block }
pat_def = { &("&") ~ def_block }
definition = _{ var_def | arr_def | pat_def }
+header = { &("#") ~ def_block }
substitution = _{ sigil ~ key ~ "}" }
var_sub = { &("$") ~ substitution }
source = { (identifier | char_seq)* }
file = {
- SOI ~ definition* ~ source? ~ EOI
+ SOI ~ header? ~ definition* ~ source? ~ EOI
}