Warp9 data model

  • Author: Pierre-Yves Ritschard
  • Last-Update: 2005.10.21

Abstract

This is a description of the syntax that will be used for Warp9's base configuration and data representation files.


Synatx

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 '}'