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