next up previous
Next: 3 DATR programme index Up: No Title Previous: 1 Experimental DATR working

2 DATR syntax: BNF

DATR BNF - DG, 7.5.1993

 1  <sentence>    ::=  <node> : <eqseq> .
 2  <eqseq>       ::=  <equation> | <equation> <eqseq>
 3  <equation>    ::=  <lhs> <rhs>

 4  <lhs>         ::=  < <atomseq> >
 5  <rhs>         ::=  <extrhs> | <defrhs>

 6  <extrhs>      ::=  = <atomval>
 7  <atomval>     ::=  <atomseq> | ( <atomseq> )
 8  <atomseq>     ::=  <epsilon> | <atom> <atomseq>

 9  <defrhs>      ::=  == <descval>
10  <descval>     ::=  <descseq> | ( <descseq> )
11  <descseq>     ::=  <epsilon> | <desc> <descseq>

12  <desc>        ::=  <atom> | <pointer>
13  <pointer>     ::=  " <spec> " | <spec>
14  <spec>        ::=  <node> : <descpath> | <node> | <descpath>
15  <descpath>    ::=  < <descseq> >

16  <node>        ::=  <upper_case> <char_string>
17  <atom>        ::=  <not_upper_case> <char_string> | ' <any_string> '

18  <char_string> ::=  <epsilon> | <char> <char_string>
19  <any_string>  ::=  <epsilon> | <any> <any_string>

20  <res_char>    ::=  [:<>"()>]
21  <char>        ::=  [INT2CHAR(33)...INT2CHAR(127)]-[<reschar>]
22  <any>         ::=  [INT2CHAR(0)...INT2CHAR(127)]
23  <upper_case>  ::=  [A-Z]
24  <not_upper_case> ::= [<char>] - [<upper_case>]



Dafydd Gibbon
Tue Sep 17 16:45:21 MET DST 1996