/*	
$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
