Exemplo n.º 1
0
int
Next_Text_Token_Obtained(void) {
	if (!Next_Stream_Token_Obtained()) return 0;
	if (Token_EQ(lex_token, End_Of_Line)) {
		store_newline();
		last_tk_cnt = lex_tk_cnt;
	}
	return 1;
}
Exemplo n.º 2
0
int
Next_Text_Token_Obtained(enum Pass pass) {
	int ok = 0;	/* gcc does not understand enum Pass */

	switch (pass) {
	case First:
		ok = Next_Stream_Token_Obtained();
		if (Token_EQ(lex_token, End_Of_Line)) {
			store_newline();
			last_tk_cnt = lex_tk_cnt;
		}
		break;

	case Second:
		/* get newline info from the buffer or from the file itself */
		if (nl_buff) {
			if (nl_next == nl_limit) {
				ok = 0;
			}
			else {
				struct newline *nl = &nl_buff[nl_next++];

				lex_nl_cnt = ++last_nl_cnt;
				lex_tk_cnt = (last_tk_cnt += nl->nl_tk_diff);
				lex_token = End_Of_Line;
				ok = 1;
			}
		}
		else {
			while (	(ok = Next_Stream_Token_Obtained())
			&&	!Token_EQ(lex_token, End_Of_Line)
			) {
				/* skip */
			}
		}
		break;
	}

	return ok;
}
Exemplo n.º 3
0
int
Next_Text_EOL_Obtained(void) {
	/* get newline info from the buffer or from the file itself */
	if (nl_buff) {
		if (nl_next == nl_limit) return 0;

		struct newline *nl = &nl_buff[nl_next++];
		lex_nl_cnt = ++last_nl_cnt;
		lex_tk_cnt = (last_tk_cnt += nl->nl_tk_diff);
		lex_token = End_Of_Line;
		return 1;
	} else {
		int ok;
		while (	(ok = Next_Stream_Token_Obtained())
		&&	!Token_EQ(lex_token, End_Of_Line)
		) {
			/* skip */
		}
		return ok;
	}
}