summaryrefslogtreecommitdiff
path: root/web/yacco2/diagrams/ppmntr.txt
blob: 9a29288815a6749e87b6c49cdd9be54808086b70 (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
/*
file: ppmntr.txt
Why: text example parallel monitor construct.
*/

parallel-control-monitor {
 /@
 unquoted-string supersets identifier 
 and also includes other T like $-$$>$ and cweb comments ie cweb-marker.
 Code only gets tried when \# parms in accept queue $>$ 1.
 Single entry is one of identifier or cweb.
 @/
arbitrator-code
 using namespace NS_yacco2_T_enum;
 {
  parallel_accept_queue_iterator_type z;
  z = To_judge->accept_queue__.find(NS_yacco2_T_enum::T_Enum::T_T_cweb_marker_);
  if(z != ie){// cweb marker fnd
   i = z;
   accept_parse_parm = (*z).second;
   (*z).second = 0;
   goto arbitrated_parameter;
  }
  // negative: throw out the superset: unquoted-string 
  // cuz identifier or one of its derivatives should be accepted
  i = To_judge->accept_queue__.find(NS_yacco2_T_enum::T_Enum::T_T_unquoted_string_);
  delete (*i).second;
  To_judge->accept_queue__.erase(i); 
  i = To_judge->accept_queue__.begin();
  accept_parse_parm = (*i).second;
 }
 ***
}