book/src/atccl_ebnf.txt
author Eugen Sawin <sawine@me73.com>
Tue, 29 Mar 2011 13:59:40 +0200
changeset 14 86bf7cc5c270
permissions -rw-r--r--
New title.
sawine@1
     1
prog                   ::= { rule }
sawine@1
     2
rule                   ::= pttrn
sawine@1
     3
                         | constrnt
sawine@1
     4
                         | flowp
sawine@1
     5
                         | COM
sawine@1
     6
flowp                  ::= FLOWP STRING "(" flowp_entry ")"
sawine@1
     7
flowp_entry            ::= pttrn_lbl ":" constrnt_lbl
sawine@1
     8
pttrn_lbl              ::= STRING
sawine@1
     9
constrnt_lbl           ::= STRING
sawine@1
    10
constrnt               ::= CONSTRNT STRING "(" cterm ")"
sawine@1
    11
cterm                  ::= TIMESEP AT string IS INTEGER si_unit
sawine@1
    12
                         | TIMESEP AT string_array IS INTEGER si_unit
sawine@1
    13
                         | TIMESEP AT string IS INTEGER si_unit FROM INTEGER
sawine@1
    14
                           UNTIL INTEGER
sawine@1
    15
                         | TIMESEP AT string_array IS INTEGER si_unit FROM
sawine@1
    16
                           INTEGER UNTIL INTEGER
sawine@1
    17
                         | TIMESEP AT string IS INTEGER si_unit AT FL int_array
sawine@1
    18
                         | TIMESEP AT string_array IS INTEGER si_unit AT FL
sawine@1
    19
                           int_array
sawine@1
    20
                         | TIMESEP AT string IS INTEGER si_unit FROM INTEGER
sawine@1
    21
                           UNTIL INTEGER AT FL int_array
sawine@1
    22
                         | TIMESEP AT string_array IS INTEGER si_unit FROM
sawine@1
    23
                           INTEGER UNTIL INTEGER AT FL int_array
sawine@1
    24
                         | cterm AND cterm
sawine@1
    25
si_unit                ::= STRING
sawine@1
    26
pttrn                  ::= PATTERN ( STRING "(" term ")" | "(" term ")" )
sawine@1
    27
term                   ::= int_pt int_op INTEGER
sawine@1
    28
                         | char_pt string_op string
sawine@1
    29
                         | string_pt string_op string
sawine@1
    30
                         | string_array_pt string_array_op string_array
sawine@1
    31
                         | string_array string_array_op string_array_pt
sawine@1
    32
                         | string string_string_array_op string_array_pt
sawine@1
    33
                         | string string_string_array_op char_array_pt
sawine@1
    34
                         | term OR term
sawine@1
    35
                         | term AND term
sawine@1
    36
                         | NOT term
sawine@1
    37
                         | "(" term ")"
sawine@1
    38
int_op                 ::= IS
sawine@1
    39
                         | IS NOT
sawine@1
    40
                         | GREATER THAN
sawine@1
    41
                         | LESS THAN
sawine@1
    42
string_op              ::= IS [ NOT ]
sawine@1
    43
string_array_op        ::= IS
sawine@1
    44
                         | IS NOT
sawine@1
    45
                         | IN
sawine@1
    46
                         | NOT IN
sawine@1
    47
string_string_array_op ::= [ NOT ] IN
sawine@1
    48
int_array              ::= "[" ints "]"
sawine@1
    49
ints                   ::= { ( "," int | int ) }
sawine@1
    50
int                    ::= INTEGER
sawine@1
    51
string_array           ::= "[" strings "]"
sawine@1
    52
strings                ::= { ( "," string | string ) }
sawine@1
    53
int_pt                 ::= TAS
sawine@1
    54
char_pt                ::= FTYP
sawine@1
    55
string_pt              ::= ADEP
sawine@1
    56
                         | ADES
sawine@1
    57
                         | RWY
sawine@1
    58
                         | ATYP
sawine@1
    59
                         | COPX
sawine@1
    60
                         | FRUL
sawine@1
    61
                         | RFL
sawine@1
    62
                         | TRAVEL_TYPE
sawine@1
    63
string_array_pt        ::= ROUTE
sawine@1
    64
char_array_pt          ::= EQUIP
sawine@1
    65
string                 ::= QUOTE STRING QUOTE