Unified · Split
| @@ -809,6 +809,21 @@ static void dumpnode(Renode *node) · 808 unmodified lines | |||
| 809 | } | 809 | } |
| 810 | } | 810 | } |
| 811 | 811 | ||
| 812 | static void dumpcclass(Reclass *cc) { | ||
| 813 | Rune *p; | ||
| 814 | for (p = cc->spans; p < cc->end; p += 2) { | ||
| 815 | if (p[0] > 32 && p[0] < 127) | ||
| 816 | printf(" %c", p[0]); | ||
| 817 | else | ||
| 818 | printf(" \\x%02x", p[0]); | ||
| 819 | if (p[1] > 32 && p[1] < 127) | ||
| 820 | printf("-%c", p[1]); | ||
| 821 | else | ||
| 822 | printf("-\\x%02x", p[1]); | ||
| 823 | } | ||
| 824 | putchar('\n'); | ||
| 825 | } | ||
| 826 | |||
| 812 | static void dumpprog(Reprog *prog) | 827 | static void dumpprog(Reprog *prog) |
| 813 | { | 828 | { |
| 814 | Reinst *inst; | 829 | Reinst *inst; |
| @@ -824,8 +839,8 @@ static void dumpprog(Reprog *prog) · 9 unmodified lines | |||
| 824 | case I_ANY: puts("any"); break; | 839 | case I_ANY: puts("any"); break; |
| 825 | case I_ANYNL: puts("anynl"); break; | 840 | case I_ANYNL: puts("anynl"); break; |
| 826 | case I_CHAR: printf(inst->c >= 32 && inst->c < 127 ? "char '%c'\n" : "char U+%04X\n", inst->c); break; | 841 | case I_CHAR: printf(inst->c >= 32 && inst->c < 127 ? "char '%c'\n" : "char U+%04X\n", inst->c); break; |
| 827 | case I_CCLASS: puts("cclass"); break; | 842 | case I_CCLASS: printf("cclass"); dumpcclass(inst->cc); break; |
| 828 | case I_NCCLASS: puts("ncclass"); break; | 843 | case I_NCCLASS: printf("ncclass"); dumpcclass(inst->cc); break; |
| 829 | case I_REF: printf("ref %d\n", inst->n); break; | 844 | case I_REF: printf("ref %d\n", inst->n); break; |
| 830 | case I_BOL: puts("bol"); break; | 845 | case I_BOL: puts("bol"); break; |
| 831 | case I_EOL: puts("eol"); break; | 846 | case I_EOL: puts("eol"); break; |