view Schema/schema.def @ 41:c442eb67fa22

parser in progress
author Sergey
date Mon, 21 Dec 2009 17:40:09 +0300
parents 03e58a454b20
children 16ada169ca75
line wrap: on
line source

syntax ::= header[ class ...]

name ::= <\w>+

column_name ::= {<\w>+|<[><^[]>+<]>}

type ::= name [<\<> template_list <\>>]

type_definition ::= name [<\<> args_list <\>>]

args_list ::= name [, name ...]

db_type ::= <\w>+[(<\d>+[,<\d>+])]

template_list ::= type[, type ...]

mapping ::= column_name [as db_type]

property ::= type name[ =<\>> mapping]

comment ::= #<^\n>*<\n>[ #<^\n>*<\n>...]

property_list ::= property ; [comment] [property ; [comment] ...]

base_types ::= type [, type ...]

value_type ::= value

class ::=
[comment][value_type ]type_definition [: base_types] <{>
    [comment]
    [property_list]
<}>

header_value ::= {*<^;>+ {;<\n>| header_value}|<^\n>+[;]}

header_prop ::= name = header_value

file_name ::=<\w./>+

include_item ::= include ( file_name )[;]

header ::=[ {header_prop|include_item} ...]