// Copyright 2014 Paul Sokolovsky.// Use of this source code is governed by a BSD-style// license that can be found in the LICENSE file.#include "re1.5.h"void re1_5_dumpcode(ByteProg *prog){int pc = 0;char *code = prog->insts;while (pc < prog->bytelen) {printf("%2d: ", pc);switch(code[pc++]) {default:assert(0);// re1_5_fatal("printprog");case Split:printf("split %d (%d)\n", pc + (signed char)code[pc] + 1, (signed char)code[pc]);pc++;break;case RSplit:printf("rsplit %d (%d)\n", pc + (signed char)code[pc] + 1, (signed char)code[pc]);pc++;break;case Jmp:printf("jmp %d (%d)\n", pc + (signed char)code[pc] + 1, (signed char)code[pc]);pc++;break;case Char:printf("char %c\n", code[pc++]);break;case Any:printf("any\n");break;case Class:case ClassNot: {int num = code[pc];printf("class%s %d", (code[pc - 1] == ClassNot ? "not" : ""), num);pc++;while (num--) {printf(" 0x%02x-0x%02x", code[pc], code[pc + 1]);pc += 2;}printf("\n");break;}case NamedClass:printf("namedclass %c\n", code[pc++]);break;case Match:printf("match\n");break;case Save:printf("save %d\n", (unsigned char)code[pc++]);break;case Bol:printf("assert bol\n");break;case Eol:printf("assert eol\n");break;}}printf("Bytes: %d, insts: %d\n", prog->bytelen, prog->len);}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。