/* lex.h */
#ifndef LEX_H
#define LEX_H

/**
	Note: the line[] and lptr are statics for the following tokenizing functions,
	inwhich line[] is for line buffered input was chr(), -> inspect_chr()
**/

/** inspect current chr, doesn't advance pointer **/
char inspect_chr();

/** lookahead, but doesn't advance ptr **/
char lookahead();

/** ret chr from linebuffer and advance ptr unless null chr **/
char g_nxtchr();

/** reindex & null terminate input line **/
void kill();

/** ck chr at line[lptr], if null & !eof_flg, get next line[] fill **/
/** bridges line breaks, & preprocess stuff **/
char scan_nxt();

/** ck line[] for null (EOL), if so, get next line, ret chr or null **/
/** called only by preprocess() **/
char inchar();

/**
	Main input function, chars accumulate into static line[],
	also echoes to file commentary tokens, if desired by user.
	a byte value > 7Fh (sign set) is read as eof in this function
	On return, line[] holds string of k's, where k is of the set
	of bytes {1..7Fh} with a null termination, 0.
**/
void input_line();

#endif /* LEX_H */