// "import-014-c.hac"
// contributed by: Clint Kelly
// reduced by: David Fang
// purpose: testing bug fix in lexer's import mechanism
//	used to assert-fail during file-stack dump
// P.S: point of failure had to be changed because we added macro support
#FILE "import-014-a.hac" {
// "import-014-a.hac"
// contributed by: Clint Kelly
// reduced by: David Fang

defproc ch1of2 (bool d[2]; bool t,f)
{
	d[0]=f;
	d[1]=t;
}

defproc pbit (bool d[2]; bool t,f)
{
	d[0]=f;
	d[1]=t;
}

defproc e1of2 (bool d[2]; bool t,f,e)
{
	d[0]=f;
	d[1]=t;
}


}	// #FILE "import-014-a.hac"

#FILE "import-014-b.hac" {
/**
	"import-014-b.hac"
	contributed by: Clint Kelly
	reduced by: David Fang
*/



defproc srambit (pbit pb; ch1of2 b, w)
{
	prs {
		w & b.t -> pb.t+				
		w & b.t -> pb.f-				
		w & b.f -> pb.f+				
		w & b.f -> pb.t-				
	}
}

}	// #FILE "import-014-b.hac"


defproc problem (e1of2 Din; e1of2 Dout; pbit pb)
{
	bool p = pb.t;
	bool _p = pb.f;

	// DEATH HERE on macro-like construct in prs
	prs {
		foo+
		// foo(_p, Din.e, Dout.e)
	}
}

