📄 regnodes.h
字号:
/* -*- buffer-read-only: t -*- !!!!!!! DO NOT EDIT THIS FILE !!!!!!! This file is built by regcomp.pl from regcomp.sym. Any changes made here will be lost!*//* Regops and State definitions */#define REGNODE_MAX 90#define REGMATCH_STATE_MAX 130#define END 0 /* 0000 End of program. */#define SUCCEED 1 /* 0x01 Return from a subroutine, basically. */#define BOL 2 /* 0x02 Match "" at beginning of line. */#define MBOL 3 /* 0x03 Same, assuming multiline. */#define SBOL 4 /* 0x04 Same, assuming singleline. */#define EOS 5 /* 0x05 Match "" at end of string. */#define EOL 6 /* 0x06 Match "" at end of line. */#define MEOL 7 /* 0x07 Same, assuming multiline. */#define SEOL 8 /* 0x08 Same, assuming singleline. */#define BOUND 9 /* 0x09 Match "" at any word boundary */#define BOUNDL 10 /* 0x0a Match "" at any word boundary */#define NBOUND 11 /* 0x0b Match "" at any word non-boundary */#define NBOUNDL 12 /* 0x0c Match "" at any word non-boundary */#define GPOS 13 /* 0x0d Matches where last m//g left off. */#define REG_ANY 14 /* 0x0e Match any one character (except newline). */#define SANY 15 /* 0x0f Match any one character. */#define CANY 16 /* 0x10 Match any one byte. */#define ANYOF 17 /* 0x11 Match character in (or not in) this class. */#define ALNUM 18 /* 0x12 Match any alphanumeric character */#define ALNUML 19 /* 0x13 Match any alphanumeric char in locale */#define NALNUM 20 /* 0x14 Match any non-alphanumeric character */#define NALNUML 21 /* 0x15 Match any non-alphanumeric char in locale */#define SPACE 22 /* 0x16 Match any whitespace character */#define SPACEL 23 /* 0x17 Match any whitespace char in locale */#define NSPACE 24 /* 0x18 Match any non-whitespace character */#define NSPACEL 25 /* 0x19 Match any non-whitespace char in locale */#define DIGIT 26 /* 0x1a Match any numeric character */#define DIGITL 27 /* 0x1b Match any numeric character in locale */#define NDIGIT 28 /* 0x1c Match any non-numeric character */#define NDIGITL 29 /* 0x1d Match any non-numeric character in locale */#define CLUMP 30 /* 0x1e Match any combining character sequence */#define BRANCH 31 /* 0x1f Match this alternative, or the next... */#define BACK 32 /* 0x20 Match "", "next" ptr points backward. */#define EXACT 33 /* 0x21 Match this string (preceded by length). */#define EXACTF 34 /* 0x22 Match this string, folded (prec. by length). */#define EXACTFL 35 /* 0x23 Match this string, folded in locale (w/len). */#define NOTHING 36 /* 0x24 Match empty string. */#define TAIL 37 /* 0x25 Match empty string. Can jump here from outside. */#define STAR 38 /* 0x26 Match this (simple) thing 0 or more times. */#define PLUS 39 /* 0x27 Match this (simple) thing 1 or more times. */#define CURLY 40 /* 0x28 Match this simple thing {n,m} times. */#define CURLYN 41 /* 0x29 Capture next-after-this simple thing */#define CURLYM 42 /* 0x2a Capture this medium-complex thing {n,m} times. */#define CURLYX 43 /* 0x2b Match this complex thing {n,m} times. */#define WHILEM 44 /* 0x2c Do curly processing and see if rest matches. */#define OPEN 45 /* 0x2d Mark this point in input as start of */#define CLOSE 46 /* 0x2e Analogous to OPEN. */#define REF 47 /* 0x2f Match some already matched string */#define REFF 48 /* 0x30 Match already matched string, folded */#define REFFL 49 /* 0x31 Match already matched string, folded in loc. */#define IFMATCH 50 /* 0x32 Succeeds if the following matches. */#define UNLESSM 51 /* 0x33 Fails if the following matches. */#define SUSPEND 52 /* 0x34 "Independent" sub-RE. */#define IFTHEN 53 /* 0x35 Switch, should be preceeded by switcher . */#define GROUPP 54 /* 0x36 Whether the group matched. */#define LONGJMP 55 /* 0x37 Jump far away. */#define BRANCHJ 56 /* 0x38 BRANCH with long offset. */#define EVAL 57 /* 0x39 Execute some Perl code. */#define MINMOD 58 /* 0x3a Next operator is not greedy. */#define LOGICAL 59 /* 0x3b Next opcode should set the flag only. */#define RENUM 60 /* 0x3c Group with independently numbered parens. */#define TRIE 61 /* 0x3d Match many EXACT(FL?)? at once. flags==type */#define TRIEC 62 /* 0x3e Same as TRIE, but with embedded charclass data */#define AHOCORASICK 63 /* 0x3f Aho Corasick stclass. flags==type */#define AHOCORASICKC 64 /* 0x40 Same as AHOCORASICK, but with embedded charclass data */#define GOSUB 65 /* 0x41 recurse to paren arg1 at (signed) ofs arg2 */#define GOSTART 66 /* 0x42 recurse to start of pattern */#define NREF 67 /* 0x43 Match some already matched string */#define NREFF 68 /* 0x44 Match already matched string, folded */#define NREFFL 69 /* 0x45 Match already matched string, folded in loc. */#define NGROUPP 70 /* 0x46 Whether the group matched. */#define INSUBP 71 /* 0x47 Whether we are in a specific recurse. */#define DEFINEP 72 /* 0x48 Never execute directly. */#define ENDLIKE 73 /* 0x49 Used only for the type field of verbs */#define OPFAIL 74 /* 0x4a Same as (?!) */#define ACCEPT 75 /* 0x4b Accepts the current matched string. */#define VERB 76 /* 0x4c no-sv 1 Used only for the type field of verbs */#define PRUNE 77 /* 0x4d Pattern fails at this startpoint if no-backtracking through this */#define MARKPOINT 78 /* 0x4e Push the current location for rollback by cut. */#define SKIP 79 /* 0x4f On failure skip forward (to the mark) before retrying */#define COMMIT 80 /* 0x50 Pattern fails outright if backtracking through this */#define CUTGROUP 81 /* 0x51 On failure go to the next alternation in the group */#define KEEPS 82 /* 0x52 $& begins here. */#define LNBREAK 83 /* 0x53 generic newline pattern */#define VERTWS 84 /* 0x54 vertical whitespace (Perl 6) */#define NVERTWS 85 /* 0x55 not vertical whitespace (Perl 6) */#define HORIZWS 86 /* 0x56 horizontal whitespace (Perl 6) */#define NHORIZWS 87 /* 0x57 not horizontal whitespace (Perl 6) */#define FOLDCHAR 88 /* 0x58 codepoint with tricky case folding properties. */#define OPTIMIZED 89 /* 0x59 Placeholder for dump. */#define PSEUDO 90 /* 0x5a Pseudo opcode for internal use. */ /* ------------ States ------------- */#define TRIE_next (REGNODE_MAX + 1) /* state for TRIE */#define TRIE_next_fail (REGNODE_MAX + 2) /* state for TRIE */#define EVAL_AB (REGNODE_MAX + 3) /* state for EVAL */#define EVAL_AB_fail (REGNODE_MAX + 4) /* state for EVAL */#define CURLYX_end (REGNODE_MAX + 5) /* state for CURLYX */#define CURLYX_end_fail (REGNODE_MAX + 6) /* state for CURLYX */#define WHILEM_A_pre (REGNODE_MAX + 7) /* state for WHILEM */#define WHILEM_A_pre_fail (REGNODE_MAX + 8) /* state for WHILEM */#define WHILEM_A_min (REGNODE_MAX + 9) /* state for WHILEM */#define WHILEM_A_min_fail (REGNODE_MAX + 10) /* state for WHILEM */#define WHILEM_A_max (REGNODE_MAX + 11) /* state for WHILEM */#define WHILEM_A_max_fail (REGNODE_MAX + 12) /* state for WHILEM */#define WHILEM_B_min (REGNODE_MAX + 13) /* state for WHILEM */#define WHILEM_B_min_fail (REGNODE_MAX + 14) /* state for WHILEM */#define WHILEM_B_max (REGNODE_MAX + 15) /* state for WHILEM */#define WHILEM_B_max_fail (REGNODE_MAX + 16) /* state for WHILEM */#define BRANCH_next (REGNODE_MAX + 17) /* state for BRANCH */#define BRANCH_next_fail (REGNODE_MAX + 18) /* state for BRANCH */#define CURLYM_A (REGNODE_MAX + 19) /* state for CURLYM */#define CURLYM_A_fail (REGNODE_MAX + 20) /* state for CURLYM */#define CURLYM_B (REGNODE_MAX + 21) /* state for CURLYM */#define CURLYM_B_fail (REGNODE_MAX + 22) /* state for CURLYM */#define IFMATCH_A (REGNODE_MAX + 23) /* state for IFMATCH */#define IFMATCH_A_fail (REGNODE_MAX + 24) /* state for IFMATCH */#define CURLY_B_min_known (REGNODE_MAX + 25) /* state for CURLY */#define CURLY_B_min_known_fail (REGNODE_MAX + 26) /* state for CURLY */#define CURLY_B_min (REGNODE_MAX + 27) /* state for CURLY */#define CURLY_B_min_fail (REGNODE_MAX + 28) /* state for CURLY */#define CURLY_B_max (REGNODE_MAX + 29) /* state for CURLY */#define CURLY_B_max_fail (REGNODE_MAX + 30) /* state for CURLY */#define COMMIT_next (REGNODE_MAX + 31) /* state for COMMIT */#define COMMIT_next_fail (REGNODE_MAX + 32) /* state for COMMIT */#define MARKPOINT_next (REGNODE_MAX + 33) /* state for MARKPOINT */#define MARKPOINT_next_fail (REGNODE_MAX + 34) /* state for MARKPOINT */#define SKIP_next (REGNODE_MAX + 35) /* state for SKIP */#define SKIP_next_fail (REGNODE_MAX + 36) /* state for SKIP */#define CUTGROUP_next (REGNODE_MAX + 37) /* state for CUTGROUP */#define CUTGROUP_next_fail (REGNODE_MAX + 38) /* state for CUTGROUP */#define KEEPS_next (REGNODE_MAX + 39) /* state for KEEPS */#define KEEPS_next_fail (REGNODE_MAX + 40) /* state for KEEPS *//* PL_regkind[] What type of regop or state is this. */#ifndef DOINITEXTCONST U8 PL_regkind[];#elseEXTCONST U8 PL_regkind[] = { END, /* END */ END, /* SUCCEED */ BOL, /* BOL */ BOL, /* MBOL */ BOL, /* SBOL */ EOL, /* EOS */ EOL, /* EOL */ EOL, /* MEOL */ EOL, /* SEOL */ BOUND, /* BOUND */ BOUND, /* BOUNDL */ NBOUND, /* NBOUND */ NBOUND, /* NBOUNDL */ GPOS, /* GPOS */ REG_ANY, /* REG_ANY */ REG_ANY, /* SANY */ REG_ANY, /* CANY */ ANYOF, /* ANYOF */ ALNUM, /* ALNUM */ ALNUM, /* ALNUML */ NALNUM, /* NALNUM */ NALNUM, /* NALNUML */ SPACE, /* SPACE */ SPACE, /* SPACEL */ NSPACE, /* NSPACE */ NSPACE, /* NSPACEL */ DIGIT, /* DIGIT */ DIGIT, /* DIGITL */ NDIGIT, /* NDIGIT */ NDIGIT, /* NDIGITL */ CLUMP, /* CLUMP */ BRANCH, /* BRANCH */ BACK, /* BACK */ EXACT, /* EXACT */ EXACT, /* EXACTF */ EXACT, /* EXACTFL */ NOTHING, /* NOTHING */ NOTHING, /* TAIL */ STAR, /* STAR */ PLUS, /* PLUS */ CURLY, /* CURLY */ CURLY, /* CURLYN */ CURLY, /* CURLYM */ CURLY, /* CURLYX */ WHILEM, /* WHILEM */ OPEN, /* OPEN */ CLOSE, /* CLOSE */ REF, /* REF */ REF, /* REFF */ REF, /* REFFL */ BRANCHJ, /* IFMATCH */ BRANCHJ, /* UNLESSM */ BRANCHJ, /* SUSPEND */ BRANCHJ, /* IFTHEN */ GROUPP, /* GROUPP */ LONGJMP, /* LONGJMP */ BRANCHJ, /* BRANCHJ */ EVAL, /* EVAL */ MINMOD, /* MINMOD */ LOGICAL, /* LOGICAL */ BRANCHJ, /* RENUM */ TRIE, /* TRIE */ TRIE, /* TRIEC */ TRIE, /* AHOCORASICK */ TRIE, /* AHOCORASICKC */ GOSUB, /* GOSUB */ GOSTART, /* GOSTART */ REF, /* NREF */ REF, /* NREFF */ REF, /* NREFFL */ NGROUPP, /* NGROUPP */ INSUBP, /* INSUBP */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -