int ExpectingToken( TOKEN token ) { if( CurToken == token ) { return( 1 ); } CErr3p( ERR_EXPECTING_BUT_FOUND, Tokens[token], NameOfCurToken() ); return( 0 ); }
bool ExpectingToken( TOKEN token ) { if( CurToken == token ) { return( true ); } CErr3p( ERR_EXPECTING_BUT_FOUND, Tokens[token], NameOfCurToken() ); return( false ); }
static int ReadBuffer( FCB *srcfcb ) { int last_char; if( srcfcb->src_fp == NULL ) { /* in-memory buffer */ CloseSrcFile( srcfcb ); return( 0 ); } /* ANSI/ISO C says a non-empty source file must be terminated * with a newline. If it's not, we insert one, otherwise * whatever comes next will be tacked onto that unterminated * line, possibly confusing the hell out of the user. */ srcfcb->src_ptr = srcfcb->src_buf; if( srcfcb->src_cnt ) { last_char = srcfcb->src_ptr[ srcfcb->src_cnt - 1 ]; } else { last_char = '\n'; } srcfcb->src_cnt = read( fileno( srcfcb->src_fp ), srcfcb->src_ptr, srcfcb->src_bufsize ); if( srcfcb->src_cnt == -1 ) { CErr3p( ERR_IO_ERR, srcfcb->src_name, strerror( errno ) ); CloseSrcFile( srcfcb ); return( 1 ); } else if( ( srcfcb->src_cnt == 0 ) && ( last_char == '\n' ) ) { CloseSrcFile( srcfcb ); return( 1 ); } else if( srcfcb->src_cnt != 0 ) { last_char = srcfcb->src_ptr[ srcfcb->src_cnt - 1 ]; } if( ( srcfcb->src_cnt < srcfcb->src_bufsize ) && ( last_char != '\n' ) ) { srcfcb->no_eol = 1; // emit warning later so line # is right srcfcb->src_ptr[ srcfcb->src_cnt ] = '\n'; // mark end of buffer srcfcb->src_cnt++; } srcfcb->src_ptr[ srcfcb->src_cnt ] = '\0'; // mark end of buffer return( 0 ); // indicate CurrChar does not contain a character }
void Expecting( char *a_token ) { CErr3p( ERR_EXPECTING_BUT_FOUND, a_token, NameOfCurToken() ); }