This is a description of the syntax that will be used for Warp9's base configuration and data representation files.
Here's what I just commited to CVS:
This is a representation of the syntax parsed statements ::= statement (sep statement)* sep ::= ('\n' | ';')+ statement ::= assignment | macro | section assignment ::= label '=' object label ::= [A-Za-z_][A-Z-a-z0-9_]* object ::= boolean | number | quoted | heretext | list | assoc boolean ::= boolean_true | boolean_false boolean_yes ::= "yes" | "true" | "enable" | "on" boolean_no ::= "no" | "false" | "disable" | "off" number ::= [0-9]+ quoted ::= '"' ( char | esc_char )* '"' char ::= [^\\"] esc_char ::= '\' (char | '\\' | '"') heretext ::= << label nl .* nl label list ::= '(' (object ( ',' object)*)* ')' assoc ::= object "=>" object macro ::= . ( include ) include ::= "include" '<' filename '>' filename ::= (char | esc_char)+ section ::= "section" label '{' statements '}'