39 #define COMMA_PREC ((commasym->op_data)?(commasym->op_data->precedence):0)
40 #define COLON_PREC ((colonsym->op_data)?(colonsym->op_data->precedence):0)
74 (void)snprintf(tmp1,2,
"%c",g%26+
'A');
79 }
while (g>0 && len<
STRLEN);
81 perr(
"Variable name too long -- the universe has ceased to exist.");
153 fprintf(
outfile,(b&1?
"X":
" "));
172 fprintf(
outfile,
" (not coded) ");
217 fprintf(s,
"illegal");
319 if (n->
data || force)
380 if (q) { *sb = c; sb++; }
382 if (q && *s==c) { *sb = *s; sb++; }
385 if (q) { *sb = c; sb++; }
391 if (q && *s==c) { (void)putc(*s,
outfile); }
408 return (*s && !
LOWER(s[0]));
452 if (!*s)
return FALSE;
472 if (!s[0])
return FALSE;
474 if (s[0]==
'%')
return FALSE;
476 if (s[0]==
'_' && s[1]==0)
return FALSE;
611 if (str[0]==
'\n') pos=0;
else pos++;
643 for(i=pretty_things+1;(
unsigned long)i<(
unsigned long)
indx;i++) {
669 for(i=pretty_things+1;(
unsigned long)i<(
unsigned long)
indx;i++)
715 return (t->
type==t_type &&
921 if (numarg!=1 && numarg!=3)
return NOTOP;
926 if (op==
fx || op==
fy) { result=
PREFIX;
break; }
953 long ttype, a1type, a2type;
954 long tprec, a1prec, a2prec;
955 long tkind, a1kind, a2kind;
956 long p1, p2, argswritten;
962 tkind=
opcheck(t, &tprec, &ttype);
969 a1kind =
opcheck(arg1, &a1prec, &a1type);
970 a2kind =
opcheck(arg2, &a2prec, &a2type);
974 if (a1prec>tprec) p1=
TRUE;
975 else if (a1prec<tprec) p1=
FALSE;
983 if (a2prec>tprec) p2=
TRUE;
984 else if (a2prec<tprec) p2=
FALSE;
1011 else if (tkind==
PREFIX) {
1013 a1kind =
opcheck(arg1, &a1prec, &a1type);
1017 else p1=(tprec<=a1prec);
1027 a1kind =
opcheck(arg1, &a1prec, &a1type);
1031 else p1=(tprec<=a1prec);
1087 if(t->
type->type==block) {
1100 if (neg) val = -val;
1106 (void)snprintf(segbuf[seg],100,
seg_format,(
unsigned long)tmp);
1110 (void)snprintf(segbuf[seg],100,
"%s%ld",(neg?
"-":
""),(
unsigned long)val);
1111 for (i=seg; i>=0; i--)
prettyf(segbuf[i]);
1231 (void)snprintf(s,4,
"%ld",v);
1298 for(i=pretty_things+1;(
unsigned long)i<(
unsigned long)
indx;i++) {
1335 if(strcmp((
char *)n2->
data,n->
key)<0)
1340 long tkind, tprec, ttype, eqprec;
1342 tkind=
opcheck(tok, &tprec, &ttype);
1343 if (tprec>=eqprec)
prettyf(
"(");
1345 if (tprec>=eqprec)
prettyf(
")");
1372 if (!printflag)
return FALSE;
1440 long old_print_depth;
1629 printf(
"*null psi_term*");
ptr_definition disjunction
symbol in bi module
ptr_node printed_pointers
ptr_definition alist
symbol in bi module
void prettyf_quoted_string(char *s)
prettyf_quoted_string
item pretty_things[PRETTY_SIZE]
void get_two_args(ptr_node t, ptr_psi_term *a, ptr_psi_term *b)
get_two_args
GENERIC unique_name()
unique_name
void prettyf(char *s)
prettyf
void prettyf_inner(char *s, long q, char c)
prettyf_inner
long two_or_more(ptr_node t)
two_or_more
#define yfx
was enum (operator) but va_arg could not handle - now typedef
#define FEATCMP
indicates to use featcmp for comparison (in trees.c)
GENERIC heap_pointer
used to allocate from heap - size allocated subtracted - adj for alignment
ptr_definition eqsym
symbol in syntax module
ptr_definition integer
symbol in bi module
long opcheck(ptr_psi_term t, long *prec, long *type)
opcheck
#define xfx
was enum (operator) but va_arg could not handle - now typedef
void go_through_tree(ptr_node t)
go_through_tree
#define INTCMP
indicates to use intcmp for comparison (in trees.c)
#define POSTFIX
used in pretty printing in print.c
#define NOT_CODED
For LIFE boolean calculation built-in.
ptr_definition cut
symbol in syntax module
void listing_pred_write(ptr_node n, long fflag)
listing_pred_write
void work_out_length()
work_out_length
long display_modules
whether to display modules with symbols
#define fx
was enum (operator) but va_arg could not handle - now typedef
void pretty_symbol(ptr_keyword k)
pretty_symbol
void forbid_variables(ptr_node n)
#define INT_SIZE
How many types can be encoded on one integer in the transitive closure encoding.
long check_legal_cons(ptr_psi_term t, ptr_definition t_type)
check_legal_cons
long strpos(long pos, char *str)
strpos
void main_pred_write(ptr_node n)
main_pred_write
ptr_definition stream
symbol in bi module
char * strip_module_name(char *str)
strip_module_name
struct wl_psi_term * ptr_psi_term
quotedStackCopy
void display_couple(ptr_psi_term u, char *s, ptr_psi_term v)
display_couple
long is_integer(char *s)
is_integer
#define xfy
was enum (operator) but va_arg could not handle - now typedef
long starts_nonlower(char *s)
starts_nonlower
#define DOTDOT
used in pretty printing in print.c
void prettyf_quote(char *s)
prettyf_quote
#define REAL
Which C type to use to represent reals and integers in Wild_Life.
long overlap_type(ptr_definition t1, ptr_definition t2)
overlap_type
void mark_tab(ptr_tab_brk t)
mark_tab
ptr_node heap_insert(long comp, char *keystr, ptr_node *tree, GENERIC info)
heap_insert
void print_bin(long b)
print_bin
void write_attributes(ptr_node n, ptr_tab_brk tab)
write_attributes
#define PAGE_WIDTH
Initial page width for printing.
ptr_definition sys_bytedata
symbol in sys module
long sub_type(ptr_definition t1, ptr_definition t2)
sub_type
ptr_definition real
symbol in bi module
long has_non_alpha(char *s)
has_non_alpha
void pretty_list(ptr_psi_term t, long depth)
pretty_list
void pretty_quote_symbol(ptr_keyword k)
pretty_quote_symbol
#define PREFIX
used in pretty printing in print.c
unsigned long * GENERIC
unsigned long *GENERIC
void display_psi_stdout(ptr_psi_term t)
display_psi_stdout
char * buffer
buffer used only in print.c - there is local with same name in xpred.c
void new_tab(ptr_tab_brk *t)
new_tab
void pretty_tag_or_psi_term(ptr_psi_term p, long sprec, long depth)
pretty_tag_or_psi_term
char * heap_copy_string(char *s)
heap_copy_string
void main_display_psi_term(ptr_psi_term t)
main_display_psi_term
#define TRUE
Standard boolean.
long pretty_psi_with_ops(ptr_psi_term t, long sprec, long depth)
pretty_psi_with_ops
#define STRCMP
indicates to use strcmp for comparison (c function)
#define PRINT_POWER
Power of ten to split printing (REALs are often more precise than ints.
ptr_definition eof
symbol in syntax module
void pretty_variables(ptr_node n, ptr_tab_brk tab)
pretty_variables
long str_to_int(char *s)
str_to_int
#define FALSE
Standard boolean.
void pred_write(ptr_node n)
pred_write
void print_resid_message(ptr_psi_term t, ptr_resid_list r)
print_resid_message
void display_psi_stderr(ptr_psi_term t)
display_psi_stderr
ptr_definition nil
symbol in bi module
ptr_module extract_module_from_name(char *str)
extract_module_from_name
void check_pointer(ptr_psi_term p)
check_pointer
char seg_format[PRINT_POWER+4]
ptr_definition disj_nil
symbol in syntax module
#define equal_types(A, B)
void print_code(FILE *s, ptr_int_list c)
print_code
#define xf
was enum (operator) but va_arg could not handle - now typedef
void display_psi_stream(ptr_psi_term t)
display_psi_stream
ptr_node find(long comp, char *keystr, ptr_node tree)
find
char * heap_nice_name()
heap_nice_name
#define PRINT_DEPTH
Initial depth limit for printing.
long featcmp(char *str1, char *str2)
featcmp
void init_print()
init_print
#define INFIX
used in pretty printing in print.c
#define yf
was enum (operator) but va_arg could not handle - now typedef
long check_opargs(ptr_node n)
check_opargs
#define PRETTY_SIZE
Maximum number of syntactic tokens in a pretty-printed output term.
#define MAX_PRECEDENCE
Maximum operator precedence.
long no_quote(char *s)
no_quote
void do_pretty_attr(ptr_node t, ptr_tab_brk tab, long *cnt, long two, long depth)
do_pretty_attr
#define PRINT_SPLIT
Size at which to split printing (REALs are often more precise than ints.
long all_symbol(char *s)
all_symbol
#define WL_MAXINT
Maximum exactly representable integer (2^53-1 for double IEEE format)
void display_psi(FILE *s, ptr_psi_term t)
display_psi
#define NOTOP
used in pretty printing in print.c
void go_through(ptr_psi_term t)
go_through
#define STRLEN
Maximum size of file names and input tokens (which includes input strings) (Note: calculated tokens c...
void insert_variables(ptr_node vars, long force)
insert_variables
void pretty_psi_term(ptr_psi_term t, long sprec, long depth)
pretty_psi_term
void pretty_output()
pretty_output
long print_variables(long printflag)
print_variables
ptr_definition quoted_string
symbol in bi module
ptr_operator_data op_data
void print_operator_kind(FILE *s, long kind)
print_operator_kind
GENERIC heap_alloc(long s)
heap_alloc
void pretty_attr(ptr_node t, long depth)
pretty_attr
long count_features(ptr_node t)
count_features
#define fy
was enum (operator) but va_arg could not handle - now typedef