User Tools

Site Tools


formats:zax

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
formats:zax [2009-11-03 13:46] edheldilformats:zax [2009-11-08 23:46] edheldil
Line 12: Line 12:
 ==== EBNF specification ==== ==== EBNF specification ====
  
-  cobject ::= classname init_args EOL attributes +  (* FIXMEI have not tested this specification, so there are probably errors in it *) 
- +  (* FIXMEDynamic Properties are not handled in this description *) 
-  init_args ::= "(" .... ")" +  (* FIXME: DialogTree dash lines are not handled in this description *) 
-             | e +  (* FIXME: spurious empty lines and EOLs are not handled as well *) 
- +   
-  attributes ::= "{" EOL attribute_list "}" +  cobject = classname , [ init_args ] , EOL , cobject_data ; 
-  attribute_list ::attribute attribute_list +   
-                  e +  init_args = "(" , int , { "," , int } , ")" ; 
-  attribute ::key "=" value EOL attribute_list +   
-  ..+  cobject_data indent, "{" EOL, ( keyvalue_data | raw_data ) , indent, "}" ; 
- +  keyvalue_data { indent , key , "=" , value , EOL } ; 
-  value ::=  +  raw_data = { indent , value , EOL } ; 
-         e+   
 +  key = limited string ; 
 +  value = string bool | int | float | cobject ; 
 +  indent = { whitespace } 
 +   
 +  bool = "0" | "1"
 +  int ( [ "-" ] , digit , { digit } ) | limited string ; 
 +  float = float decimal | float exponential | limited string ; 
 +  float decimal = "-" , digit , { digit } , "." , digit , { digit } ; 
 +  float exponential = float decimal , "e" , [ "-" ] , digit , { digit } ; 
 +  string = { printable | whitespace } ; 
 +  limited string = keychar | ( keychar , { keychar | whitespace } , keychar } ; 
 +  classname = letter , { letter | digit | "-" } ; 
 +   
 +  EOL = "\r" , "\n"
 +  digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
 +  whitespace = " " | "\t"
 +   
 +  (* meaning of these is hopefully clear *) 
 +  printable = ? "\041" .. "\176" ? ;  
 +  keychar ? "\041" .. "\074" ? | ? "\076" .. "\176" ? ; (* probably some other chars except "=" are banned as well *) 
 +  letter = ? "A" .. "Z"? "a" .. "z" ? ;
  
 ==== Classes ==== ==== Classes ====
 Activities/AIs, Actions, ... Activities/AIs, Actions, ...
  
formats/zax.txt · Last modified: 2010-10-17 21:51 by edheldil