lex
if ((lex(¶ml) && !seterr && intty) || adrof(STRverbose)) {
struct wordent lex[3];
lex[0].next = &lex[1];
lex[1].next = &lex[2];
lex[2].next = &lex[0];
lex[0].prev = &lex[2];
lex[1].prev = &lex[0];
lex[2].prev = &lex[1];
lex[0].word = STRNULL;
lex[2].word = STRret;
lex[1].word = *v;
set(STRstatus, Strsave(tellmewhat(lex, NULL, 0) ? STR0 : STR1));
int lex(struct wordent *);
(void) lex(¶ml);
redid = lex(&alout);
alias(struct wordent *lex)
asyntax(lex->next, lex);
isc_lex_setcomments(isc_lex_t *lex, unsigned int comments);
isc_lex_setspecials(isc_lex_t *lex, isc_lexspecials_t specials);
isc_lex_openfile(isc_lex_t *lex, const char *filename);
isc_lex_close(isc_lex_t *lex);
isc_lex_gettoken(isc_lex_t *lex, unsigned int options, isc_token_t *tokenp);
isc_lex_ungettoken(isc_lex_t *lex, isc_token_t *tokenp);
isc_lex_getlasttokentext(isc_lex_t *lex, isc_token_t *tokenp, isc_region_t *r);
isc_lex_getsourcename(isc_lex_t *lex);
isc_lex_getsourceline(isc_lex_t *lex);
lex->comments = 0;
lex->comment_ok = 1;
lex->last_was_eol = 1;
lex->paren_count = 0;
lex->saved_paren_count = 0;
memset(lex->specials, 0, 256);
INIT_LIST(lex->sources);
*lexp = lex;
isc_lex_t *lex;
lex = *lexp;
while (!EMPTY(lex->sources))
RUNTIME_CHECK(isc_lex_close(lex) == ISC_R_SUCCESS);
if (lex->data != NULL)
free(lex->data);
free(lex);
isc_lex_setcomments(isc_lex_t *lex, unsigned int comments) {
lex->comments = comments;
isc_lex_setspecials(isc_lex_t *lex, isc_lexspecials_t specials) {
memmove(lex->specials, specials, 256);
new_source(isc_lex_t *lex, int is_file, int need_close,
source->last_was_eol = lex->last_was_eol;
(unsigned int)lex->max_token);
ISC_LIST_INITANDPREPEND(lex->sources, source, link);
isc_lex_openfile(isc_lex_t *lex, const char *filename) {
result = new_source(lex, 1, 1, stream, filename);
isc_lex_close(isc_lex_t *lex) {
source = HEAD(lex->sources);
ISC_LIST_UNLINK(lex->sources, source, link);
lex->last_was_eol = source->last_was_eol;
isc_lex_gettoken(isc_lex_t *lex, unsigned int options, isc_token_t *tokenp) {
source = HEAD(lex->sources);
lex->saved_paren_count = lex->paren_count;
curr = lex->data;
remaining = lex->max_token;
if (lex->comment_ok && !no_comments) {
(lex->comments &
((lex->comments & ISC_LEXCOMMENT_SHELL)
lex->last_was_eol = 0;
lex->last_was_eol = 0;
lex->last_was_eol = 1;
lex->last_was_eol = 0;
lex->last_was_eol = 0;
} else if (lex->specials[c]) {
lex->last_was_eol = 0;
lex->last_was_eol = 0;
(c == ' ' || c == '\t' || lex->specials[c]))) {
tokenp->value.as_textregion.base = lex->data;
(lex->max_token - remaining);
result = grow_data(lex, &remaining,
(lex->comments & ISC_LEXCOMMENT_C) != 0) {
(lex->comments & ISC_LEXCOMMENT_CPLUSPLUS) != 0) {
lex->data;
(lex->max_token - remaining);
result = grow_data(lex, &remaining,
isc_lex_ungettoken(isc_lex_t *lex, isc_token_t *tokenp) {
source = HEAD(lex->sources);
lex->paren_count = lex->saved_paren_count;
isc_lex_getlasttokentext(isc_lex_t *lex, isc_token_t *tokenp, isc_region_t *r)
source = HEAD(lex->sources);
isc_lex_getsourcename(isc_lex_t *lex) {
grow_data(isc_lex_t *lex, size_t *remainingp, char **currp, char **prevp) {
source = HEAD(lex->sources);
isc_lex_getsourceline(isc_lex_t *lex) {
source = HEAD(lex->sources);
tmp = malloc(lex->max_token * 2 + 1);
memmove(tmp, lex->data, lex->max_token + 1);
*currp = tmp + (*currp - lex->data);
*prevp = tmp + (*prevp - lex->data);
free(lex->data);
lex->data = tmp;
*remainingp += lex->max_token;
lex->max_token *= 2;
isc_lex_t *lex;
lex = malloc(sizeof(*lex));
if (lex == NULL)
lex->data = malloc(max_token + 1);
if (lex->data == NULL) {
free(lex);
lex->max_token = max_token;
lex(char *);
com = lex(word);
struct lex *lp;