Exemplo n.º 1
0
static int undef_iter0(pRule r, pRule rules)
{
  struct rule_closure closure;
  closure.rules = rules;
  closure.rule = r;
  option_map(r->options, (OptionIterator)&undef_iter1, &closure);
};
Exemplo n.º 2
0
static int
ps_rule_iterator(pRule r, aux_t l) {
    FILE *f = (FILE *) l;
    fprintf(f, "/%s{[\n", r->symbol);
    option_map(r->options, (OptionIterator) & ps_option_iterator, l);
    fprintf(f, "]choose}bind def\n");
}
Exemplo n.º 3
0
static int
ps_node_iterator(pNode n, aux_t l) {
    FILE *f = (FILE *) l;
    switch (n->type) {
    case literal:
	fprintf(f, "(%s)", n->data);
	break;
    case symbol:
	fprintf(f, "{%s}", n->data);
	break;
    case mapping:
	ps_node_iterator(n->params, l);
	fprintf(f, " %s-map", n->data);
	break;
    case deref:
	ps_node_iterator(n->params, l);
	fprintf(f, " cvx exec");
	break;
    case var_conddef:
	fprintf(f, "/%s ", n->data);
	ps_node_iterator(n->params, l);
	fprintf(f, " exec conddef");
	break;
    case var_def:
	fprintf(f, "/%s ", n->data);
	ps_node_iterator(n->params, l);
	fprintf(f, " exec def");
	break;
    case var_ref:
	fprintf(f, "%s", n->data);
	break;
    case code:			/* FIXME */
	break;
    case silence:
	ps_node_iterator(n->params, l);
	fprintf(f, " pop");
	break;
    case choice:
	fprintf(f, "[\n");
	option_map(n->data, (OptionIterator) & ps_option_iterator, l);
	fprintf(f, "] choose\n");
	break;
    case star:
	ps_node_iterator(n->params, f);
	fprintf(f, " star");
	break;
    case plus:
	ps_node_iterator(n->params, f);
	fprintf(f, " plus");
	break;
    case repeat_const:
	ps_node_iterator(n->params, f);
	fprintf(f, " %d rep", n->int_param);
	break;

    }
}
Exemplo n.º 4
0
static void dump_options(pOption opt)
{
  option_map(opt, (OptionIterator)&option_iter, NULL);
};