]> mj.ucw.cz Git - moe.git/commitdiff
Added syntax for config files (to be reviewed)
authorTomas Gavenciak <gavento@matfyz.cz>
Tue, 11 May 2010 01:55:50 +0000 (21:55 -0400)
committerTomas Gavenciak <gavento@matfyz.cz>
Tue, 11 May 2010 01:55:50 +0000 (21:55 -0400)
Add TODO note obput fixing variables

t/moe/conf.py

index 6d61b33d59b025bcbcd25264cf90229b4379fb02..e5c3b385bc4c43c86d3a926d8c6ff832e3df0544 100644 (file)
@@ -17,12 +17,46 @@ two expressions.
 
 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'{'