From: Tomas Gavenciak Date: Tue, 11 May 2010 01:55:50 +0000 (-0400) Subject: Added syntax for config files (to be reviewed) X-Git-Tag: python-dummy-working~63 X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=16cdbe07d6da578e69dcbc35115abe90ab4b476e;p=moe.git Added syntax for config files (to be reviewed) Add TODO note obput fixing variables --- diff --git a/t/moe/conf.py b/t/moe/conf.py index 6d61b33..e5c3b38 100644 --- a/t/moe/conf.py +++ b/t/moe/conf.py @@ -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'{'