summaryrefslogtreecommitdiff
path: root/web/yacco2/qa/test_called_thd_fs.lex
blob: a6a042440723979d3c4cb95f2bb2eadb711f5594 (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
/*	
$echo FILE:		  test_called_thd_fs.lex
$echo Purpose:	  test transience on called threads and Start rule.
$echo Okay
*/
/@
@** |test_called_thd_fs| grammar.\fbreak
Test out the transience of called threads and native first sets.
\O2's ``.fsc'' file tells the tale.
Here's an excerp where Start rule is \emptyrule{} caused by Rc.
Note the common prefix Ra to see if the transience goes through the called threads
 and T first set. And so it does:\fbreak
\fbreak
list-of-native-first-set-terminals 3\fbreak
   LR1\_eolr\fbreak
   raw\_c\fbreak
   raw\_e\fbreak
end-list-of-native-first-set-terminals\fbreak
list-of-transitive-threads 3\fbreak
  NSa::THa\fbreak
  NSb::THb\fbreak
  NSd::THd\fbreak
end-list-of-transitive-threads\fbreak
\fbreak
@/
fsm	
(fsm-id	"test_called_thd_fs.lex"
,fsm-filename	test_called_thd_fs,fsm-namespace NS_test_called_thd_fs
,fsm-class		Ctest_called_thd_fs
,fsm-version	"1.0"	,fsm-date	"25 Mar 2008",fsm-debug	"true"
,fsm-comments	"test the transience")
parallel-parser	
(	
  parallel-thread-function
    TH_test_called_thd_fs
  ***
  parallel-la-boundary
    z 
  ***
)

@"/usr/local/yacco2/compiler/grammars/yacco2_T_includes.T"
rules{
RSt AD AB(){
  -> RS 
}
RS(){
  -> Ra Rb Rc
  -> Ra Rd Re
}
Ra ()
{
  ->  
  ->  ||| a NSa::THa 
}
Rb ()
{
  ->  
  ->  ||| b NSb::THb
}
Rc ()
{
  -> 
  -> c 
}
Rd ()
{
  ->  
  ->  ||| d NSd::THd 
}
Re ()
{
  ->  e
}
}// end of rules