home *** CD-ROM | disk | FTP | other *** search
- /* a nasty kludge to get end of line markers */
- void putcr(int c)
- {
- switch (c){
- case '\n': putchar(0x0d);
- putchar(0x0a);
- break;
- case 0x0d: break;
- default: putchar(c);
- }
- }
-
- int next_token(void)
- {
- do {
- switch (lex_val=getchar()){
- case '-': return cap;
- case ' ': return space;
- case 0x0a: lex_val = '\n';
- return nl;
- case 0x0d: break;
- /*avoids 0d 0d 0a output */
- case EOF: lex_val = 0x1a;
- return fend;
- default: if (toupper(lex_val) == lex_val) return cap;
- else return other;
- }
- } while (lex_val == 0x0d);
- return forbid;
- }
-
-
- void skip(void)
- { return; }
-
- void echo(void)
- {
- #ifdef DEBUG
- if ((lex_val < ' ') || (lex_val > 'z')) putchar ('.');
- else putchar(lex_val);
- printf(" %2.2x",lex_val);
- #endif
- putcr(lex_val );
- count = 0;
- }
-
- void tally(void)
- {
- count += 1;
- }
-
- void markg(void)
- {
- putcr('\n' );
- putchar(lex_val );
- count = 0;
- }
-
- void smarkg(void)
- {
- putcr('\n' );
- while(count--) putchar(' ' );
- putchar(lex_val );
- count = 0;
- }
-
- void zero(void)
- {
- count = 0;
- }
-
-
- void secho(void)
- {
- putchar(' ' );
- putcr(lex_val );
-
- #ifdef DEBUG
- printf(" %x", lex_val);
- #endif
-
- count = 0;
- }
-
-