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
|