49
|
1 syntax ::= header[ class ...]
|
|
2
|
|
3 name ::= <\w>+
|
|
4
|
|
5 column_name ::= {<\w>+|<[><^[]>+<]>}
|
|
6
|
|
7 type ::= name [<\<> template_list <\>>]
|
|
8
|
|
9 type_definition ::= name [<\<> args_list <\>>]
|
|
10
|
|
11 args_list ::= name [, name ...]
|
|
12
|
|
13 db_type ::= <\w>+[(<\d>+[,<\d>+])]
|
|
14
|
|
15 template_list ::= type[, type ...]
|
|
16
|
|
17 mapping ::= column_name [as db_type]
|
|
18
|
|
19 property ::= type name[ =<\>> mapping]
|
|
20
|
|
21 comment ::= #<^\n>*<\n>[ #<^\n>*<\n>...]
|
|
22
|
|
23 property_list ::= property ; [comment] [property ; [comment] ...]
|
|
24
|
|
25 base_types ::= type [, type ...]
|
|
26
|
|
27 value_type ::= value
|
|
28
|
|
29 class ::=
|
|
30 [comment][value_type ]type_definition [: base_types] <{>
|
|
31 [comment]
|
|
32 [property_list]
|
|
33 <}>
|
|
34
|
|
35 header_value ::= {*<^;>+ {;<\n>| header_value}|<^\n>+[;]}
|
|
36
|
|
37 header_prop ::= name = header_value
|
|
38
|
|
39 file_name ::=<\w./>+
|
|
40
|
|
41 include_item ::= include ( file_name )[;]
|
|
42
|
|
43 header ::=[ {header_prop|include_item} ...]
|