464 while (*t1!=0 && *t1!=
'/') {
470 if ((
int)strlen(user)>0) {
474 r=(
char *)malloc(strlen(user)+strlen(t1)+1);
475 sprintf(r,
"%s%s",user,t1);
483 r=(
char *)malloc(strlen(home)+strlen(s)+1);
484 sprintf(r,
"%s%s",home,s+1);
515 if ((stdin_flag=(!strcmp(file,
"stdin")))) {
525 Errorline(
"file '%s' does not exist.\n",file);
562 if (!strcmp(file,
"stdout"))
565 if (!strcmp(file,
"stderr"))
571 Errorline(
"file '%s' could not be opened for output.\n",file);
637 Errorline(
"in tokenizer, put_back_char three times (last=%d).\n",c);
651 Errorline(
"in parser, put_back_token three times (last=%P).\n",t);
683 }
while (c!=EOF && c!=
EOLN);
732 fprintf(stderr,
"base2int('%c'): illegal argument\n",n);
737 #define isoctal(c) (c=='0'||c=='1'||c=='2'||c=='3'||c=='4'||c=='5'||c=='6'||c=='7')
762 else if (e==
'"' && c==
'\\') {
772 case 'a': c=
'\a';
break;
773 case 'b': c=
'\b';
break;
774 case 'f': c=
'\f';
break;
775 case 'n': c=
'\n';
break;
776 case 'r': c=
'\r';
break;
777 case 't': c=
'\t';
break;
778 case 'v': c=
'\v';
break;
789 else if (!isxdigit(c)) {
798 if (isxdigit(c)) n = 16*n+
base2int(c);
827 warningline(
"string too long, extra ignored (%E).\n");
923 warningline(
"name too long, extra ignored (%E).\n");
933 if(module && len==0) {
968 tok->type->keyword->symbol,
970 (
GENERIC)tok->type->global_value);
1018 if (c==
'e' || c==
'E') {
1020 if (c2==
'+' || c2==
'-' ||
DIGIT(c2)) {
1022 posflag = (c2==
'+' ||
DIGIT(c2));
1028 while (pwr>=100) { pwr-=100;
if (posflag) p*=1e100;
else p/=1e100; }
1029 while (pwr>=10 ) { pwr-=10;
if (posflag) p*=1e10;
else p/=1e10; }
1030 while (pwr>0 ) { pwr-=1;
if (posflag) p*=1e1;
else p/=1e1; }
1043 *(
REAL *)tok->value_3=f;
1091 }
while(c!=EOF && (c<=32));
1120 if(c==
'.' || c==
'?') {
1124 if(c2<=
' ' || c2==EOF) {
1158 Errorline(
"illegal character %d in input (%E).\n",c);
1167 if (!strcmp((
char *)tok->value_3,
"_")) {
1197 tok->attr_list=
NULL;
1211 else if (c<0 || c>32) {
1215 }
while(c && c!=EOF);
1217 if (for_parser)
prompt=
"| ";
long open_output_file(string file)
void read_token_main(ptr_psi_term, long)
void read_token_b(ptr_psi_term tok)
ptr_module current_module
void bk_stack_add_psi_attr(ptr_psi_term t, char *attrname, ptr_psi_term g)
ptr_module create_module(char *module)
ptr_node bk_stack_insert(long comp, char *keystr, ptr_node *tree, GENERIC info)
long psi_term_line_number
char * stack_copy_string(char *s)
void heap_mod_int_attr(ptr_psi_term t, char *attrname, long value)
ptr_psi_term heap_psi_term(long stat)
ptr_psi_term null_psi_term
void save_state(ptr_psi_term t)
void save_parse_state(ptr_parse_block pb)
void put_back_token(psi_term t)
void perr_s(char *s1, char *s2)
ptr_node bk2_stack_insert(long comp, char *keystr, ptr_node *tree, GENERIC info)
void read_name(ptr_psi_term tok, long ch, long(*f)(long), ptr_definition typ)
void read_string(ptr_psi_term tok, long e)
ptr_definition update_symbol(ptr_module module, char *symbol)
ptr_node heap_insert(long comp, char *keystr, ptr_node *tree, GENERIC info)
void read_string_error(int n)
void Errorline(char *format,...)
char * heap_copy_string(char *s)
void stack_add_psi_attr(ptr_psi_term t, char *attrname, ptr_psi_term g)
void read_number(ptr_psi_term tok, long c)
ptr_node stack_insert(long comp, char *keystr, ptr_node *tree, GENERIC info)
void infoline(char *format,...)
void restore_state(ptr_psi_term t)
void Syntaxerrorline(char *format,...)
void heap_add_str_attr(ptr_psi_term t, char *attrname, char *str)
ptr_psi_term error_psi_term
void heap_add_psi_attr(ptr_psi_term t, char *attrname, ptr_psi_term g)
ptr_definition quoted_string
ptr_psi_term stack_psi_term(long stat)
#define OLD_SAVED_PSI_TERM
void heap_add_int_attr(ptr_psi_term t, char *attrname, long value)
char * expand_file_name(char *s)
void new_state(ptr_psi_term *t)
ptr_node find(long comp, char *keystr, ptr_node tree)
long legal_in_name(long c)
GENERIC get_attr(ptr_psi_term t, char *attrname)
ptr_psi_term stack_copy_psi_term(psi_term t)
void stack_add_str_attr(ptr_psi_term t, char *attrname, char *str)
ptr_definition final_question
ptr_psi_term saved_psi_term
void read_comment(ptr_psi_term tok)
struct wl_psi_term * ptr_psi_term
void restore_parse_state(ptr_parse_block pb)
void stack_add_int_attr(ptr_psi_term t, char *attrname, long value)
void heap_mod_str_attr(ptr_psi_term t, char *attrname, char *str)
void TOKEN_ERROR(ptr_psi_term p)
void warningline(char *format,...)
FILE * get_stream(ptr_psi_term t)
long open_input_file(char *file)
ptr_definition inputfilesym
void perr_i(char *str, long i)
GENERIC heap_alloc(long s)
ptr_choice_point choice_stack
ptr_psi_term old_saved_psi_term
void read_token(ptr_psi_term tok)
void put_back_char(long c)