00001
00017
00018
00019
00020
00021
00022
00023
00024 #include <sent/stddefs.h>
00025 #include <sent/dfa.h>
00026
00032 void
00033 print_dfa_info(DFA_INFO *dinfo)
00034 {
00035 j_printf("DFA grammar info:\n");
00036 j_printf(" %d nodes, %d arcs, %d terminal(category) symbols\n",
00037 dinfo->state_num, dinfo->arc_num, dinfo->term_num);
00038 j_printf(" category-pair matrix size is %d bytes\n",
00039 sizeof(unsigned char) * dinfo->term_num * dinfo->term_num / 8);
00040 }
00041
00047 void
00048 print_dfa_cp(DFA_INFO *dinfo)
00049 {
00050 int i,j;
00051 int t;
00052
00053 j_printf("---------- terminal(category)-pair matrix ----------\n");
00054
00055 j_printf(" ");
00056 for (j=0;j<dinfo->term_num;j++) {
00057 if (j > 0 && (j % 10) == 0) {
00058 t = j / 10;
00059 j_printf("%1d", t);
00060 } else {
00061 j_printf(" ");
00062 }
00063 }
00064 j_printf("\n ");
00065 for (j=0;j<dinfo->term_num;j++) {
00066 j_printf("%1d", j % 10);
00067 }
00068 j_printf("\n");
00069
00070 j_printf("bgn ");
00071 for (j=0;j<dinfo->term_num;j++) {
00072 j_printf((dfa_cp_begin(dinfo, j) == TRUE) ? "o" : " ");
00073 }
00074 j_printf("\n");
00075 j_printf("end ");
00076 for (j=0;j<dinfo->term_num;j++) {
00077 j_printf((dfa_cp_end(dinfo, j) == TRUE) ? "o" : " ");
00078 }
00079 j_printf("\n");
00080 for (i=0;i<dinfo->term_num;i++) {
00081 j_printf("%3d ",i);
00082 for (j=0;j<dinfo->term_num;j++) {
00083 j_printf((dfa_cp(dinfo, i, j) == TRUE) ? "o" : " ");
00084 }
00085 j_printf("\n");
00086 }
00087 }