paper/src/atccl_ebnf_1.txt
author Eugen Sawin <sawine@me73.com>
Mon, 28 Mar 2011 23:37:03 +0200
changeset 10 2283a18e186c
permissions -rw-r--r--
Layout adjustments, new preface.
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 
sawine@0
    14
                           FROM INTEGER UNTIL INTEGER
sawine@0
    15
                         | TIMESEP AT string_array IS INTEGER si_unit 
sawine@0
    16
                           FROM INTEGER UNTIL INTEGER
sawine@0
    17
                         | TIMESEP AT string IS INTEGER si_unit 
sawine@0
    18
                           AT FL int_array
sawine@0
    19
                         | TIMESEP AT string_array IS INTEGER si_unit 
sawine@0
    20
                           AT FL int_array
sawine@0
    21
                         | TIMESEP AT string IS INTEGER si_unit 
sawine@0
    22
                           FROM INTEGER UNTIL INTEGER AT FL int_array
sawine@0
    23
                         | TIMESEP AT string_array IS INTEGER si_unit 
sawine@0
    24
                           FROM INTEGER UNTIL INTEGER AT FL int_array
sawine@0
    25
                         | cterm AND cterm
sawine@0
    26
si_unit                = STRING
sawine@0
    27
pttrn                  = PATTERN ( STRING "(" term ")" | "(" term ")" )
sawine@0
    28
term                   = int_pt int_op INTEGER
sawine@0
    29
                         | char_pt string_op string
sawine@0
    30
                         | string_pt string_op string
sawine@0
    31
                         | string_array_pt string_array_op string_array
sawine@0
    32
                         | string_array string_array_op string_array_pt
sawine@0
    33
                         | string string_string_array_op string_array_pt
sawine@0
    34
                         | string string_string_array_op char_array_pt
sawine@0
    35
                         | term OR term
sawine@0
    36
                         | term AND term
sawine@0
    37
                         | NOT term
sawine@0
    38
                         | "(" term ")"