home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / listings / v_07_03 / v7n3103a.txt < prev    next >
Text File  |  1989-03-17  |  1KB  |  85 lines

  1. /* a nasty kludge to get end of line markers */
  2. void putcr(int c)
  3. {
  4. switch (c){
  5.   case '\n': putchar(0x0d);
  6.              putchar(0x0a);
  7.              break;
  8.   case 0x0d: break;
  9.   default:   putchar(c);
  10.   }
  11. }
  12.  
  13. int next_token(void)
  14. {
  15. do {
  16.    switch (lex_val=getchar()){
  17.      case '-':  return cap;
  18.      case ' ':  return space;
  19.      case 0x0a: lex_val = '\n';
  20.                 return nl;
  21.      case 0x0d: break; 
  22.         /*avoids 0d 0d 0a output */
  23.      case EOF:  lex_val = 0x1a;
  24.                 return fend;
  25.      default:   if (toupper(lex_val) == lex_val) return cap;
  26.                 else return other;
  27.      }
  28.    } while (lex_val == 0x0d);
  29. return forbid;
  30. }
  31.  
  32.  
  33. void skip(void)
  34. { return; }
  35.  
  36. void echo(void)
  37. {
  38. #ifdef DEBUG
  39. if ((lex_val < ' ') || (lex_val > 'z')) putchar ('.');
  40. else putchar(lex_val);
  41. printf(" %2.2x",lex_val);
  42. #endif
  43. putcr(lex_val );
  44. count = 0;
  45. }
  46.  
  47. void tally(void)
  48. {
  49. count += 1;
  50. }
  51.  
  52. void markg(void)
  53. {
  54. putcr('\n' );
  55. putchar(lex_val );
  56. count = 0;
  57. }
  58.  
  59. void smarkg(void)
  60. {
  61. putcr('\n' );
  62. while(count--) putchar(' ' );
  63. putchar(lex_val );
  64. count = 0;
  65. }
  66.  
  67. void zero(void)
  68. {
  69. count = 0;
  70. }
  71.  
  72.  
  73. void secho(void)
  74. {
  75. putchar(' ' );
  76. putcr(lex_val );
  77.  
  78. #ifdef DEBUG
  79. printf(" %x", lex_val);
  80. #endif
  81.  
  82. count = 0;
  83. }
  84.  
  85.