summaryrefslogtreecommitdiff
path: root/test/racc/assets/recv.y
blob: 0c672b3b6cfd49fb2f0a9ceba0537286c3c854b2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# s/r 5, r/r 10
class A
rule

  content: RecvH         received
    ;
  
  datetime: day
    ;
  
  msgid: '<' spec '>';
  
  day:
    | ATOM ','
    ;
  
  received: recvitem_list recvdatetime
    ;
  
  recvitem_list:
    | recvitem_list recvitem
    ;

  recvitem: by | via | with | for ;

  by:
    | BY domain
    ;
  
  via:
    | VIA ATOM
    ;
  
  with: WITH ATOM
    ;
  
  for:
    | FOR addr
    ;
  
  recvdatetime:
    | ';' datetime
    ;
  
  addr: mbox | group ;

  mboxes: mbox     
    | mboxes ',' mbox
    ;

  mbox: spec
    | routeaddr
    | phrase routeaddr
    ;

  group: phrase ':' mboxes ';'
    ;

  routeaddr: '<' route spec '>'
    | '<' spec '>'
    ;
  
  route: at_domains ':' ;
  
  at_domains: '@' domain  
    | at_domains ',' '@' domain
    ;
  
  spec: local '@' domain
    | local  
    ;
  
  local: word
    | local '.' word
    ;
  
  domain: domword
    | domain '.' domword
    ;

  domword: atom
    | DOMLIT
    | DIGIT
    ;

  phrase: word
    | phrase word
    ;
  
  word: atom
    | QUOTED
    | DIGIT
    ;

  atom: ATOM | FROM | BY | VIA | WITH | ID | FOR ;
  
end