_Coroutine FloatConstant { char ch; // character passed by cocaller // ADD PRIVATE MEMBERS, IF NEEDED void main(); // coroutine main, WRITE THIS MEMBER public: // ADD PUBLIC DESTRUCTOR, IF NEEDED enum { EOT = '\003' }; // end of text _Exception Match {}; // last character match _Exception Error {}; // last character invalid void next( char c ) { ch = c; // communicate input resume(); // activate } }; /* Test data drwxr-x--- 3 cs343 cs343t 15 ./ drwxr-x--- 47 cs343 cs343t 99 ../ -rw------- 1 cs343 cs343 1356 Makefile drwxr-x--- 2 cs343 cs343t 8 data/ -rwx------ 1 cs343 cs343 444968 lsdir* -rw------- 1 cs343 cs343 2436 lsdir.cc -rw------- 1 cs343 cs343 1292 lsdir.h -rw------- 1 cs343 cs343 3503 main.cc -rw------- 1 cs343 1356 Makefile drwxr-x--- 2 cs343 cs343t 8 data\ -rwS------ 1 cs343 cs343 444968 lsdir* -rw------- 1 cs343 cs343 02436 lsdir.cc -rw------ 1 cs343 cs343 1292 lsdir.h trw------- 1 cs343 cs343 200144 lsdir.o */