|
|
1.1 ! root 1: ! 2: # include <ingres.h> ! 3: # include "scanner.h" ! 4: # include <sccs.h> ! 5: ! 6: SCCSID(@(#)s_comment.c 7.3 5/4/83) ! 7: ! 8: /* ! 9: ** COMMENT ! 10: ** scans comments (as delimited by the tokens 'Tokens.bgncmnt' ! 11: ** and 'Tokens.endcmnt') and removes them from the query text. ! 12: */ ! 13: comment() ! 14: { ! 15: register int i, l; ! 16: register struct optab *op; ! 17: register char *sp; ! 18: char buf[3]; ! 19: ! 20: /* find the end_of_comment operator */ ! 21: for (op = Optab; op->term; op++) ! 22: if (op->token == Tokens.endcmnt) ! 23: break; ! 24: if (!op->term) ! 25: syserr("no end_of_comment token"); ! 26: ! 27: /* scan for the end of the comment */ ! 28: l = length(op->term); ! 29: for (i = 0,sp = buf; i < l; sp++, i++) /* set up window on input */ ! 30: if ((*sp = get_scan(NORMAL)) <= 0) ! 31: /* non-terminated comment */ ! 32: par_error(COMMTERM, FATAL, 0); /* must end parsing */ ! 33: while (!bequal(buf, op->term, l)) ! 34: { ! 35: /* move window on input */ ! 36: for (sp = buf,i = 0; i < l-1; i++,sp++) ! 37: *sp = *(sp+1); ! 38: if (( *sp = get_scan(NORMAL)) <= 0) ! 39: /* non terminated comment */ ! 40: par_error(COMMTERM, FATAL, 0); /* must end parsing */ ! 41: } ! 42: return (0); ! 43: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.