NOTE: All expanded data should be (or is converted to) unicode
+TODO: Fixing variables.
TODO: Cleanup of unused undefined variables.
TODO: Better variable name checking (no name '.'-structural prefix of another)
TODO: Implemet "subtree" listing.
TODO: Test conditions and unicode
"""
+"""
+The configuration syntax is the following (TODO: add whitespaces WSP)
+TODO: decide '()' around formulas
+TODO: check escaping in expressions
+TODO: should whitespace (incl. '\\n') be allowed (almost) everywhere?
+ can comment be anywhere whitespace can?
+
+FILE = BLOCK
+BLOCK + '\\n' = () | STATEMENT ( STATEMENT-SEP STATEMENT )*
+
+STATEMENT-SEP = ( '\\n' | ';' )
+WSP = ( ' ' | '\\t' | '\\n' | COMMENT )*
+
+COMMENT = re'#[^\\n]*\\n'
+
+STATEMENT = CONDITION | OPERATION | SUBTREE
+
+OPERATION = VARNAME ( '=' | '+=' ) EXPRESSION
+SUBTREE = VARNAME '{' BLOCK '}'
+CONDITION = 'if' FORMULA '{' BLOCK '}'
+
+FORMULA = ( EXPRESSION ( '!=' | '==' ) EXPRESSION ) | '(' AND ')' | '(' OR ')' | NOT
+AND = FORMULA 'and' FORMULA
+OR = FORMULA 'or' FORMULA
+NOT = 'not' FORMULA
+
+EXPRESSION = '"' ( ECHAR | '{' VARNAME '}' )* '"' | re"'[^'\\n]*'"
+ECHAR = re'([^\\{}]|\\\\|\\{|\\}|\\n)*'
+"""
+
+
+
+
c_tree_sep = u'.'
c_comment = u'#'
c_open = u'{'