41 #define COMMA_PREC ((commasym->op_data)?(commasym->op_data->precedence):0)
42 #define COLON_PREC ((colonsym->op_data)?(colonsym->op_data->precedence):0)
66 (void)snprintf(tmp1,2,
"%c",g%26+
'A');
71 }
while (g>0 && len<
STRLEN);
73 perr(
"Variable name too long -- the universe has ceased to exist.");
137 fprintf(
outfile,(b&1?
"X":
" "));
154 fprintf(
outfile,
" (not coded) ");
200 fprintf(s,
"illegal");
294 if (n->
data || force)
358 if (q) { *sb = c; sb++; }
360 if (q && *s==c) { *sb = *s; sb++; }
363 if (q) { *sb = c; sb++; }
369 if (q && *s==c) { (void)putc(*s,
outfile); }
382 return (*s && !
LOWER(s[0]));
411 if (!*s)
return FALSE;
426 if (!s[0])
return FALSE;
428 if (s[0]==
'%')
return FALSE;
430 if (s[0]==
'_' && s[1]==0)
return FALSE;
545 if (str[0]==
'\n') pos=0;
else pos++;
574 for(i=pretty_things+1;(
unsigned long)i<(
unsigned long)
indx;i++) {
600 for(i=pretty_things+1;(
unsigned long)i<(
unsigned long)
indx;i++)
647 return (t->type==t_type &&
820 if (!
featcmp(n->key,
"1"))
return 1 | f;
821 if (!
featcmp(n->key,
"2"))
return 2 | f;
845 if (numarg!=1 && numarg!=3)
return NOTOP;
850 if (op==
fx || op==
fy) { result=
PREFIX;
break; }
873 long ttype, a1type, a2type;
874 long tprec, a1prec, a2prec;
875 long tkind, a1kind, a2kind;
876 long p1, p2, argswritten;
882 tkind=
opcheck(t, &tprec, &ttype);
889 a1kind =
opcheck(arg1, &a1prec, &a1type);
890 a2kind =
opcheck(arg2, &a2prec, &a2type);
894 if (a1prec>tprec) p1=
TRUE;
895 else if (a1prec<tprec) p1=
FALSE;
903 if (a2prec>tprec) p2=
TRUE;
904 else if (a2prec<tprec) p2=
FALSE;
915 if (!p1 && strcmp(t->type->keyword->symbol,
",")) {
920 (!strcmp(t->type->keyword->symbol,
",") ||
921 !strcmp(t->type->keyword->symbol,
":-"))) {
925 if (!p2 && strcmp(t->type->keyword->symbol,
"."))
prettyf(
" ");
933 a1kind =
opcheck(arg1, &a1prec, &a1type);
937 else p1=(tprec<=a1prec);
947 a1kind =
opcheck(arg1, &a1prec, &a1type);
951 else p1=(tprec<=a1prec);
995 if(t->type==
nil && !t->attr_list)
998 if(t->type==
disj_nil && !t->attr_list)
1004 if(t->type->type==block) {
1015 val = *(
REAL *)t->value_3;
1017 if (neg) val = -val;
1023 (void)snprintf(segbuf[seg],100,
seg_format,(
unsigned long)tmp);
1027 (void)snprintf(segbuf[seg],100,
"%s%ld",(neg?
"-":
""),(
unsigned long)val);
1028 for (i=seg; i>=0; i--)
prettyf(segbuf[i]);
1036 (void)snprintf(buf,
STRLEN,
"%lg",*(
REAL *)t->value_3);
1056 (void)snprintf(buf,
STRLEN,
"stream(%ld)",(
long)t->value_3);
1077 if (!argswritten && t->attr_list &&
1148 (void)snprintf(s,4,
"%ld",v);
1169 if (t->left || t->right)
return TRUE;
else return FALSE;
1205 for(i=pretty_things+1;(
unsigned long)i<(
unsigned long)
indx;i++) {
1240 if(strcmp((
char *)n2->
data,n->key)<0)
1245 long tkind, tprec, ttype, eqprec;
1247 tkind=
opcheck(tok, &tprec, &ttype);
1248 if (tprec>=eqprec)
prettyf(
"(");
1250 if (tprec>=eqprec)
prettyf(
")");
1278 if (!printflag)
return FALSE;
1345 long old_print_depth;
1507 printf(
"*null psi_term*");
ptr_node printed_pointers
void prettyf_quoted_string(char *s)
void main_display_psi_term(ptr_psi_term)
item pretty_things[PRETTY_SIZE]
void get_two_args(ptr_node t, ptr_psi_term *a, ptr_psi_term *b)
get_two_args
void prettyf_inner(char *s, long q, char c)
long two_or_more(ptr_node t)
long opcheck(ptr_psi_term t, long *prec, long *type)
void go_through_tree(ptr_node t)
void listing_pred_write(ptr_node n, long fflag)
void main_pred_write(ptr_node)
void pretty_symbol(ptr_keyword k)
void forbid_variables(ptr_node n)
char * strip_module_name(char *str)
long check_legal_cons(ptr_psi_term t, ptr_definition t_type)
long strpos(long pos, char *str)
void pretty_psi_term(ptr_psi_term, long, long)
void display_couple(ptr_psi_term u, char *s, ptr_psi_term v)
long starts_nonlower(char *s)
void prettyf_quote(char *s)
long overlap_type(ptr_definition t1, ptr_definition t2)
void mark_tab(ptr_tab_brk t)
ptr_node heap_insert(long comp, char *keystr, ptr_node *tree, GENERIC info)
void write_attributes(ptr_node n, ptr_tab_brk tab)
long sub_type(ptr_definition t1, ptr_definition t2)
long has_non_alpha(char *s)
void pretty_list(ptr_psi_term t, long depth)
void pretty_quote_symbol(ptr_keyword k)
void display_psi_stdout(ptr_psi_term t)
char * heap_copy_string(char *s)
void new_tab(ptr_tab_brk *t)
long pretty_psi_with_ops(ptr_psi_term t, long sprec, long depth)
void pretty_variables(ptr_node n, ptr_tab_brk tab)
void pred_write(ptr_node n)
void print_resid_message(ptr_psi_term t, ptr_resid_list r)
void display_psi_stderr(ptr_psi_term t)
ptr_definition quoted_string
ptr_module extract_module_from_name(char *str)
void pretty_attr(ptr_node, long)
void check_pointer(ptr_psi_term p)
char seg_format[PRINT_POWER+4]
ptr_definition disjunction
#define equal_types(A, B)
void print_code(FILE *s, ptr_int_list c)
void display_psi_stream(ptr_psi_term t)
ptr_node find(long comp, char *keystr, ptr_node tree)
long featcmp(char *str1, char *str2)
long check_opargs(ptr_node n)
void go_through(ptr_psi_term)
ptr_definition sys_bytedata
void do_pretty_attr(ptr_node t, ptr_tab_brk tab, long *cnt, long two, long depth)
struct wl_psi_term * ptr_psi_term
void display_psi(FILE *s, ptr_psi_term t)
void pretty_tag_or_psi_term(ptr_psi_term, long, long)
void insert_variables(ptr_node vars, long force)
long print_variables(long printflag)
ptr_operator_data op_data
void print_operator_kind(FILE *s, long kind)
GENERIC heap_alloc(long s)
heap_alloc
long count_features(ptr_node t)