[ create a new paste ] login | about

Link: http://codepad.org/ui7ip8Ca    [ raw code | fork ]

Plain Text, pasted on Mar 8:
void print_emails(estring fname) {
	estring file_contents = es_read_file(fname);

	estring grammar = es(
           "EMAIL = NAME '@' LOCATION || PREFIX '<' NAME '@' DOMAIN '>'"
           "*NAME = [CHARS - @]"
           "*DOMAIN = CHARS"
           "PREFIX = [CHARS - <]"
        );
	egnode node = grammar_quick_parse(grammar, file_contents);

 	ehash h = new_ehash();
	while(node != NULL) {
         estring username = eslower(node->match); eg_next_node(node);
         estring domain   = eslower(node->match); eg_next_node(node);
         h.setdefault(domain, new_earray()).append(username);
        }

        // Print it out
	for(ehash_iter(h);!ehash_iter_done(h);ehash_iter_next(h)){
		printf("%s [",ehash_iter_key(h));
		earray a = ehash_iter_val(h);
                earray_sort_in_place(a);
		for(int i = 0; i<earray_size(a); i++) {
			printf("'%s', ", earray_get(a, i);
                }
                printf("]\n");
	}
}


Create a new paste based on this one


Comments: