74 switch (op_stack[i]) {
110 perr(
"*** Parser error ");
112 perr(
": stack full.\n");
366 perr(
": bad symbol for end of list '");
377 perr(
": bad symbol in list '");
425 long count=0,f=
TRUE,f2,v;
485 (
void)snprintf(s,10,
"%ld",v);
497 (void)snprintf(s,10,
"%ld",count);
594 if (
equ_tokch((*tok),
':') && arg1 && arg2) {
683 printf(
"*** Parser: ooops, NOP expected.\n");
695 printf(
"*** Parser: ugh, NOP expected.\n");
702 printf(
"*** Parser: yuck, weirdo operator.\n");
731 long limit,pr_op,pr_1,pr_2,start=0;
964 while((c=
read_char()) && c!=EOF && c!=
'.' && c!=
'?' && c!=
EOLN) {}
973 else if (c<0 || c>32) {
977 }
while(c && c!=EOF);
ptr_psi_term heap_copy_psi_term(psi_term t)
heap_copy_psi_term
void psi_term_error()
psi_term_error
#define PARSER_STACK_SIZE
void put_back_char(long c)
put_back_char
void read_token(ptr_psi_term tok)
read_token
ptr_module current_module
void show(long limit)
show
void push_psi_ptr_value(ptr_psi_term q, GENERIC *p)
push_psi_ptr_value
void push(psi_term tok, long prec, long op)
push
void mark_nonstrict(ptr_psi_term t)
mark_nonstrict
void display_psi_stdout(ptr_psi_term t)
display_psi_stdout
long precedence(psi_term tok, long typ)
precedence
psi_term parse_list(ptr_definition typ, char e, char s)
parse_list
void display_psi_stderr(ptr_psi_term t)
display_psi_stderr
void put_back_token(psi_term t)
put_back_token
ptr_definition minus_symbol
ptr_definition add_module3
psi_term read_life_form(char ch1, char ch2)
read_life_form
void feature_insert(char *keystr, ptr_node *tree, ptr_psi_term psi)
feature_insert
ptr_node stack_insert(long comp, char *keystr, ptr_node *tree, GENERIC info)
stack_insert
char * heap_copy_string(char *s)
heap_copy_string
void Syntaxerrorline(char *format,...)
long pop(ptr_psi_term tok, long *op)
pop
void crunch(long prec, long limit)
crunch
psi_term parse(long *q)
parse
ptr_psi_term error_psi_term
int bad_psi_term(ptr_psi_term t)
bad_psi_term
ptr_definition quoted_string
ptr_psi_term stack_psi_term(long stat)
stack_psi_term
ptr_psi_term stack_copy_psi_term(psi_term t)
stack_copy_psi_term
ptr_definition disjunction
#define equal_types(A, B)
ptr_definition add_module2
ptr_node find(long comp, char *keystr, ptr_node tree)
find
ptr_definition final_question
ptr_psi_term saved_psi_term
psi_term list_nil(ptr_definition type)
list_nil
ptr_definition add_module1
psi_term make_life_form(ptr_psi_term tok, ptr_psi_term arg1, ptr_psi_term arg2)
make_life_form
long read_char()
read_char
unsigned long global_time_stamp
psi_term read_psi_term()
read_psi_term
ptr_operator_data op_data
GENERIC heap_alloc(long s)
heap_alloc
void stack_insert_copystr(char *keystr, ptr_node *tree, GENERIC info)
stack_insert_copystr
long int_stack[PARSER_STACK_SIZE]
psi_term psi_term_stack[PARSER_STACK_SIZE]