/[emacs]/emacs/src/regex.c
ViewVC logotype

Diff of /emacs/src/regex.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.185 by lektu, Tue Feb 4 14:03:13 2003 UTC revision 1.186 by rms, Sun Feb 23 15:00:30 2003 UTC
# Line 921  print_partial_compiled_pattern (start, e Line 921  print_partial_compiled_pattern (start, e
921    
922    if (start == NULL)    if (start == NULL)
923      {      {
924        printf ("(null)\n");        fprintf (stderr, "(null)\n");
925        return;        return;
926      }      }
927    
928    /* Loop over pattern commands.  */    /* Loop over pattern commands.  */
929    while (p < pend)    while (p < pend)
930      {      {
931        printf ("%d:\t", p - start);        fprintf (stderr, "%d:\t", p - start);
932    
933        switch ((re_opcode_t) *p++)        switch ((re_opcode_t) *p++)
934          {          {
935          case no_op:          case no_op:
936            printf ("/no_op");            fprintf (stderr, "/no_op");
937            break;            break;
938    
939          case succeed:          case succeed:
940            printf ("/succeed");            fprintf (stderr, "/succeed");
941            break;            break;
942    
943          case exactn:          case exactn:
944            mcnt = *p++;            mcnt = *p++;
945            printf ("/exactn/%d", mcnt);            fprintf (stderr, "/exactn/%d", mcnt);
946            do            do
947              {              {
948                putchar ('/');                fprintf (stderr, "/%c", *p++);
               putchar (*p++);  
949              }              }
950            while (--mcnt);            while (--mcnt);
951            break;            break;
952    
953          case start_memory:          case start_memory:
954            printf ("/start_memory/%d", *p++);            fprintf (stderr, "/start_memory/%d", *p++);
955            break;            break;
956    
957          case stop_memory:          case stop_memory:
958            printf ("/stop_memory/%d", *p++);            fprintf (stderr, "/stop_memory/%d", *p++);
959            break;            break;
960    
961          case duplicate:          case duplicate:
962            printf ("/duplicate/%d", *p++);            fprintf (stderr, "/duplicate/%d", *p++);
963            break;            break;
964    
965          case anychar:          case anychar:
966            printf ("/anychar");            fprintf (stderr, "/anychar");
967            break;            break;
968    
969          case charset:          case charset:
# Line 975  print_partial_compiled_pattern (start, e Line 974  print_partial_compiled_pattern (start, e
974              int length = CHARSET_BITMAP_SIZE (p - 1);              int length = CHARSET_BITMAP_SIZE (p - 1);
975              int has_range_table = CHARSET_RANGE_TABLE_EXISTS_P (p - 1);              int has_range_table = CHARSET_RANGE_TABLE_EXISTS_P (p - 1);
976    
977              printf ("/charset [%s",              fprintf (stderr, "/charset [%s",
978                      (re_opcode_t) *(p - 1) == charset_not ? "^" : "");                      (re_opcode_t) *(p - 1) == charset_not ? "^" : "");
979    
980              assert (p + *p < pend);              assert (p + *p < pend);
# Line 987  print_partial_compiled_pattern (start, e Line 986  print_partial_compiled_pattern (start, e
986                    /* Are we starting a range?  */                    /* Are we starting a range?  */
987                    if (last + 1 == c && ! in_range)                    if (last + 1 == c && ! in_range)
988                      {                      {
989                        putchar ('-');                        fprintf (stderr, "-");
990                        in_range = 1;                        in_range = 1;
991                      }                      }
992                    /* Have we broken a range?  */                    /* Have we broken a range?  */
993                    else if (last + 1 != c && in_range)                    else if (last + 1 != c && in_range)
994                      {                      {
995                        putchar (last);                        fprintf (stderr, "%c", last);
996                        in_range = 0;                        in_range = 0;
997                      }                      }
998    
999                    if (! in_range)                    if (! in_range)
1000                      putchar (c);                      fprintf (stderr, "%c", c);
1001    
1002                    last = c;                    last = c;
1003                }                }
1004    
1005              if (in_range)              if (in_range)
1006                putchar (last);                fprintf (stderr, "%c", last);
1007    
1008              putchar (']');              fprintf (stderr, "]");
1009    
1010              p += 1 + length;              p += 1 + length;
1011    
1012              if (has_range_table)              if (has_range_table)
1013                {                {
1014                  int count;                  int count;
1015                  printf ("has-range-table");                  fprintf (stderr, "has-range-table");
1016    
1017                  /* ??? Should print the range table; for now, just skip it.  */                  /* ??? Should print the range table; for now, just skip it.  */
1018                  p += 2;         /* skip range table bits */                  p += 2;         /* skip range table bits */
# Line 1024  print_partial_compiled_pattern (start, e Line 1023  print_partial_compiled_pattern (start, e
1023            break;            break;
1024    
1025          case begline:          case begline:
1026            printf ("/begline");            fprintf (stderr, "/begline");
1027            break;            break;
1028    
1029          case endline:          case endline:
1030            printf ("/endline");            fprintf (stderr, "/endline");
1031            break;            break;
1032    
1033          case on_failure_jump:          case on_failure_jump:
1034            extract_number_and_incr (&mcnt, &p);            extract_number_and_incr (&mcnt, &p);
1035            printf ("/on_failure_jump to %d", p + mcnt - start);            fprintf (stderr, "/on_failure_jump to %d", p + mcnt - start);
1036            break;            break;
1037    
1038          case on_failure_keep_string_jump:          case on_failure_keep_string_jump:
1039            extract_number_and_incr (&mcnt, &p);            extract_number_and_incr (&mcnt, &p);
1040            printf ("/on_failure_keep_string_jump to %d", p + mcnt - start);            fprintf (stderr, "/on_failure_keep_string_jump to %d", p + mcnt - start);
1041            break;            break;
1042    
1043          case on_failure_jump_nastyloop:          case on_failure_jump_nastyloop:
1044            extract_number_and_incr (&mcnt, &p);            extract_number_and_incr (&mcnt, &p);
1045            printf ("/on_failure_jump_nastyloop to %d", p + mcnt - start);            fprintf (stderr, "/on_failure_jump_nastyloop to %d", p + mcnt - start);
1046            break;            break;
1047    
1048          case on_failure_jump_loop:          case on_failure_jump_loop:
1049            extract_number_and_incr (&mcnt, &p);            extract_number_and_incr (&mcnt, &p);
1050            printf ("/on_failure_jump_loop to %d", p + mcnt - start);            fprintf (stderr, "/on_failure_jump_loop to %d", p + mcnt - start);
1051            break;            break;
1052    
1053          case on_failure_jump_smart:          case on_failure_jump_smart:
1054            extract_number_and_incr (&mcnt, &p);            extract_number_and_incr (&mcnt, &p);
1055            printf ("/on_failure_jump_smart to %d", p + mcnt - start);            fprintf (stderr, "/on_failure_jump_smart to %d", p + mcnt - start);
1056            break;            break;
1057    
1058          case jump:          case jump:
1059            extract_number_and_incr (&mcnt, &p);            extract_number_and_incr (&mcnt, &p);
1060            printf ("/jump to %d", p + mcnt - start);            fprintf (stderr, "/jump to %d", p + mcnt - start);
1061            break;            break;
1062    
1063          case succeed_n:          case succeed_n:
1064            extract_number_and_incr (&mcnt, &p);            extract_number_and_incr (&mcnt, &p);
1065            extract_number_and_incr (&mcnt2, &p);            extract_number_and_incr (&mcnt2, &p);
1066            printf ("/succeed_n to %d, %d times", p - 2 + mcnt - start, mcnt2);            fprintf (stderr, "/succeed_n to %d, %d times", p - 2 + mcnt - start, mcnt2);
1067            break;            break;
1068    
1069          case jump_n:          case jump_n:
1070            extract_number_and_incr (&mcnt, &p);            extract_number_and_incr (&mcnt, &p);
1071            extract_number_and_incr (&mcnt2, &p);            extract_number_and_incr (&mcnt2, &p);
1072            printf ("/jump_n to %d, %d times", p - 2 + mcnt - start, mcnt2);            fprintf (stderr, "/jump_n to %d, %d times", p - 2 + mcnt - start, mcnt2);
1073            break;            break;
1074    
1075          case set_number_at:          case set_number_at:
1076            extract_number_and_incr (&mcnt, &p);            extract_number_and_incr (&mcnt, &p);
1077            extract_number_and_incr (&mcnt2, &p);            extract_number_and_incr (&mcnt2, &p);
1078            printf ("/set_number_at location %d to %d", p - 2 + mcnt - start, mcnt2);            fprintf (stderr, "/set_number_at location %d to %d", p - 2 + mcnt - start, mcnt2);
1079            break;            break;
1080    
1081          case wordbound:          case wordbound:
1082            printf ("/wordbound");            fprintf (stderr, "/wordbound");
1083            break;            break;
1084    
1085          case notwordbound:          case notwordbound:
1086            printf ("/notwordbound");            fprintf (stderr, "/notwordbound");
1087            break;            break;
1088    
1089          case wordbeg:          case wordbeg:
1090            printf ("/wordbeg");            fprintf (stderr, "/wordbeg");
1091            break;            break;
1092    
1093          case wordend:          case wordend:
1094            printf ("/wordend");            fprintf (stderr, "/wordend");
1095    
1096          case syntaxspec:          case syntaxspec:
1097            printf ("/syntaxspec");            fprintf (stderr, "/syntaxspec");
1098            mcnt = *p++;            mcnt = *p++;
1099            printf ("/%d", mcnt);            fprintf (stderr, "/%d", mcnt);
1100            break;            break;
1101    
1102          case notsyntaxspec:          case notsyntaxspec:
1103            printf ("/notsyntaxspec");            fprintf (stderr, "/notsyntaxspec");
1104            mcnt = *p++;            mcnt = *p++;
1105            printf ("/%d", mcnt);            fprintf (stderr, "/%d", mcnt);
1106            break;            break;
1107    
1108  # ifdef emacs  # ifdef emacs
1109          case before_dot:          case before_dot:
1110            printf ("/before_dot");            fprintf (stderr, "/before_dot");
1111            break;            break;
1112    
1113          case at_dot:          case at_dot:
1114            printf ("/at_dot");            fprintf (stderr, "/at_dot");
1115            break;            break;
1116    
1117          case after_dot:          case after_dot:
1118            printf ("/after_dot");            fprintf (stderr, "/after_dot");
1119            break;            break;
1120    
1121          case categoryspec:          case categoryspec:
1122            printf ("/categoryspec");            fprintf (stderr, "/categoryspec");
1123            mcnt = *p++;            mcnt = *p++;
1124            printf ("/%d", mcnt);            fprintf (stderr, "/%d", mcnt);
1125            break;            break;
1126    
1127          case notcategoryspec:          case notcategoryspec:
1128            printf ("/notcategoryspec");            fprintf (stderr, "/notcategoryspec");
1129            mcnt = *p++;            mcnt = *p++;
1130            printf ("/%d", mcnt);            fprintf (stderr, "/%d", mcnt);
1131            break;            break;
1132  # endif /* emacs */  # endif /* emacs */
1133    
1134          case begbuf:          case begbuf:
1135            printf ("/begbuf");            fprintf (stderr, "/begbuf");
1136            break;            break;
1137    
1138          case endbuf:          case endbuf:
1139            printf ("/endbuf");            fprintf (stderr, "/endbuf");
1140            break;            break;
1141    
1142          default:          default:
1143            printf ("?%d", *(p-1));            fprintf (stderr, "?%d", *(p-1));
1144          }          }
1145    
1146        putchar ('\n');        fprintf (stderr, "\n");
1147      }      }
1148    
1149    printf ("%d:\tend of pattern.\n", p - start);    fprintf (stderr, "%d:\tend of pattern.\n", p - start);
1150  }  }
1151    
1152    

Legend:
Removed from v.1.185  
changed lines
  Added in v.1.186

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26