Esempio n. 1
0
File: pp.c Progetto: hvds/seq
void setup_pp(int k) {
	int i, d, q;

	k0 = k;
	setup_inverse();
	setup_walker();
	pppp = calloc(k + 1, sizeof(pp_pp));
	pplist = (pp_pp**)NULL;
	pplistsize = 0;
	pplistmax = 0;
	ZINIT(&z_no_previous, "z_no_previous");
	mpz_set_si(z_no_previous, -1);
	
	for (i = 1; i <= k; ++i) {
		int prime, power;
		power = greatest_prime_power(i, &prime);
		pp_save_r(i, prime, power);
	}
}
Esempio n. 2
0
int main(int    argc,
         char **argv)
{
    FILE *input = 0;

    stable_Init(1024, &my_symbols);

    setup_parser();
    setup_walker();

    if (argc > 1) {
        printf("input = %s\n", argv[1]);
        input = fopen(argv[1], "r");
    }

    if (input) {
        run_parser(input);
    } else {
        push_tree("Value", 0);
        push_tree("Symbol", 0);
        push_tree("ParameterName", 1);
        push_tree("LetAssign", 2);
        stack_Dup(&the_trees);
        push_tree("Statement", 0);
        push_tree("Let", 3);
        stack_Dup(&the_trees);
        push_tree("Block", 2);
    }

    if (!the_trees.top) return 0;

    Node_test value = the_trees.top->value;

    node_Print(0, value);

    if (!run_walker(value)) return 1;

    return 0;
}