📄 pprint-rules-main.c
字号:
/****************************************************************************** pprint-rules-main.c - print a ruleset in a long format******************************************************************************/#include <stdio.h>#include <math.h>#include "ripper.h"static void pprint_rule(rule_t *);static void pprint_concept(concept_t *);/*****************************************************************************/char *Program="pprint-rules";char *Help_str[] = { "syntax: pprint-rules [options] stem", " print a ripper ruleset", "", "options are:", " -v#: set trace level to #", NULL};/*****************************************************************************/int main(argc,argv)int argc;char *argv[];{ char *stem; concept_t *hyp; int o; FILE *fp; BOOL sort; sort = FALSE; while ((o=getopt(argc,argv,"v:oh"))!=EOF) { switch (o) { case 'v': set_trace_level(atoi(optarg)); break; case 'h': case '?': default: give_help(); if (o=='h') exit(0); else fatal("option not implemented"); } } if (optind<argc) { stem = argv[optind++]; } else { give_help(); fatal("no file stem specified"); } if (optind<argc) { warning("not all arguments were used: %s ...",argv[optind]); } /* now load the hypothesis */ ld_names(add_ext(stem,".names")); if ((fp=fopen(add_ext(stem,".hyp"),"r"))==NULL) { fatal("can't open concept file for read"); } hyp = ld_concept(fp); pprint_concept(hyp); fclose(fp);}static void pprint_concept(concept_t *c){ int i; for (i=0; i<vmax(c->rules); i++) { pprint_rule(vref(rule_t,c->rules,i)); } printf("[covers %g pos, %g neg examples]\n",c->nposx,c->nnegx); print_symbol(c->def->nom); printf(" :-\ttrue.\n"); if (c->res!=FIRST) { printf("resolution=best.\n"); }}static void pprint_rule(rule_t *r){ int i,last_term; gsym_t *gsym; printf("[covers %g pos, %g neg examples]\n",r->nposx,r->nnegx); print_symbol(r->conseq); printf(" :-\n"); /* find the last terminal symbol */ last_term = -1; for (i=0; i<vmax(r->antec); i++) { gsym = vref(gsym_t,r->antec,i); if (!gsym->nonterm) last_term=i; } if (last_term == -1) { printf("\ttrue.\n\n"); } else { for (i=0; i<vmax(r->antec); i++) { gsym = vref(gsym_t,r->antec,i); if (!gsym->nonterm) { printf("\t"); print_gsym(gsym); if (i==last_term) printf(".\n\n"); else printf(",\n"); } } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -