Lines Matching refs:source

188 	inputsource *source;  in new_source()  local
190 source = isc_mem_get(lex->mctx, sizeof(*source)); in new_source()
191 source->result = ISC_R_SUCCESS; in new_source()
192 source->is_file = is_file; in new_source()
193 source->need_close = need_close; in new_source()
194 source->at_eof = false; in new_source()
195 source->last_was_eol = lex->last_was_eol; in new_source()
196 source->input = input; in new_source()
197 source->name = isc_mem_strdup(lex->mctx, name); in new_source()
198 source->pushback = NULL; in new_source()
199 isc_buffer_allocate(lex->mctx, &source->pushback, in new_source()
201 source->ignored = 0; in new_source()
202 source->line = 1; in new_source()
203 ISC_LIST_INITANDPREPEND(lex->sources, source, link); in new_source()
263 inputsource *source; in isc_lex_close() local
271 source = HEAD(lex->sources); in isc_lex_close()
272 if (source == NULL) { in isc_lex_close()
276 ISC_LIST_UNLINK(lex->sources, source, link); in isc_lex_close()
277 lex->last_was_eol = source->last_was_eol; in isc_lex_close()
278 if (source->is_file) { in isc_lex_close()
279 if (source->need_close) { in isc_lex_close()
280 (void)fclose((FILE *)(source->input)); in isc_lex_close()
283 isc_mem_free(lex->mctx, source->name); in isc_lex_close()
284 isc_buffer_free(&source->pushback); in isc_lex_close()
285 isc_mem_put(lex->mctx, source, sizeof(*source)); in isc_lex_close()
309 pushback(inputsource *source, int c) { in pushback() argument
310 REQUIRE(source->pushback->current > 0); in pushback()
312 source->at_eof = false; in pushback()
315 source->pushback->current--; in pushback()
317 source->line--; in pushback()
322 pushandgrow(isc_lex_t *lex, inputsource *source, int c) { in pushandgrow() argument
323 if (isc_buffer_availablelength(source->pushback) == 0) { in pushandgrow()
329 oldlen = isc_buffer_length(source->pushback); in pushandgrow()
331 isc_buffer_usedregion(source->pushback, &used); in pushandgrow()
334 tbuf->current = source->pushback->current; in pushandgrow()
335 isc_buffer_free(&source->pushback); in pushandgrow()
336 source->pushback = tbuf; in pushandgrow()
338 isc_buffer_putuint8(source->pushback, (uint8_t)c); in pushandgrow()
344 inputsource *source; in isc_lex_gettoken() local
364 source = HEAD(lex->sources); in isc_lex_gettoken()
367 if (source == NULL) { in isc_lex_gettoken()
375 if (source->result != ISC_R_SUCCESS) { in isc_lex_gettoken()
376 return (source->result); in isc_lex_gettoken()
380 source->saved_line = source->line; in isc_lex_gettoken()
382 if (isc_buffer_remaininglength(source->pushback) == 0 && source->at_eof) in isc_lex_gettoken()
402 isc_buffer_compact(source->pushback); in isc_lex_gettoken()
416 if (source->is_file) { in isc_lex_gettoken()
417 flockfile(source->input); in isc_lex_gettoken()
422 if (isc_buffer_remaininglength(source->pushback) == 0) { in isc_lex_gettoken()
423 if (source->is_file) { in isc_lex_gettoken()
424 stream = source->input; in isc_lex_gettoken()
433 source->result = ISC_R_IOERROR; in isc_lex_gettoken()
434 result = source->result; in isc_lex_gettoken()
437 source->at_eof = true; in isc_lex_gettoken()
440 buffer = source->input; in isc_lex_gettoken()
444 source->at_eof = true; in isc_lex_gettoken()
452 source->result = pushandgrow(lex, source, c); in isc_lex_gettoken()
453 if (source->result != ISC_R_SUCCESS) { in isc_lex_gettoken()
454 result = source->result; in isc_lex_gettoken()
460 if (!source->at_eof) { in isc_lex_gettoken()
463 source->ignored = isc_buffer_consumedlength( in isc_lex_gettoken()
464 source->pushback); in isc_lex_gettoken()
466 c = isc_buffer_getuint8(source->pushback); in isc_lex_gettoken()
472 source->line++; in isc_lex_gettoken()
612 pushback(source, c); in isc_lex_gettoken()
633 pushback(source, c); in isc_lex_gettoken()
724 pushback(source, c); in isc_lex_gettoken()
725 if (source->result != ISC_R_SUCCESS) { in isc_lex_gettoken()
726 result = source->result; in isc_lex_gettoken()
770 pushback(source, c); in isc_lex_gettoken()
843 pushback(source, c); in isc_lex_gettoken()
926 if (source->is_file) { in isc_lex_gettoken()
927 funlockfile(source->input); in isc_lex_gettoken()
1022 inputsource *source; in isc_lex_ungettoken() local
1028 source = HEAD(lex->sources); in isc_lex_ungettoken()
1029 REQUIRE(source != NULL); in isc_lex_ungettoken()
1031 REQUIRE(isc_buffer_consumedlength(source->pushback) != 0 || in isc_lex_ungettoken()
1036 isc_buffer_first(source->pushback); in isc_lex_ungettoken()
1038 source->line = source->saved_line; in isc_lex_ungettoken()
1039 source->at_eof = false; in isc_lex_ungettoken()
1044 inputsource *source; in isc_lex_getlasttokentext() local
1047 source = HEAD(lex->sources); in isc_lex_getlasttokentext()
1048 REQUIRE(source != NULL); in isc_lex_getlasttokentext()
1050 REQUIRE(isc_buffer_consumedlength(source->pushback) != 0 || in isc_lex_getlasttokentext()
1055 INSIST(source->ignored <= isc_buffer_consumedlength(source->pushback)); in isc_lex_getlasttokentext()
1056 r->base = (unsigned char *)isc_buffer_base(source->pushback) + in isc_lex_getlasttokentext()
1057 source->ignored; in isc_lex_getlasttokentext()
1058 r->length = isc_buffer_consumedlength(source->pushback) - in isc_lex_getlasttokentext()
1059 source->ignored; in isc_lex_getlasttokentext()
1064 inputsource *source; in isc_lex_getsourcename() local
1067 source = HEAD(lex->sources); in isc_lex_getsourcename()
1069 if (source == NULL) { in isc_lex_getsourcename()
1073 return (source->name); in isc_lex_getsourcename()
1078 inputsource *source; in isc_lex_getsourceline() local
1081 source = HEAD(lex->sources); in isc_lex_getsourceline()
1083 if (source == NULL) { in isc_lex_getsourceline()
1087 return (source->line); in isc_lex_getsourceline()
1092 inputsource *source; in isc_lex_setsourcename() local
1096 source = HEAD(lex->sources); in isc_lex_setsourcename()
1098 if (source == NULL) { in isc_lex_setsourcename()
1102 isc_mem_free(lex->mctx, source->name); in isc_lex_setsourcename()
1103 source->name = newname; in isc_lex_setsourcename()
1109 inputsource *source; in isc_lex_setsourceline() local
1112 source = HEAD(lex->sources); in isc_lex_setsourceline()
1114 if (source == NULL) { in isc_lex_setsourceline()
1118 source->line = line; in isc_lex_setsourceline()
1124 inputsource *source; in isc_lex_isfile() local
1128 source = HEAD(lex->sources); in isc_lex_isfile()
1130 if (source == NULL) { in isc_lex_isfile()
1134 return (source->is_file); in isc_lex_isfile()