Lines Matching refs:backtrack
105 the 'backtrack' path. Branch instructions are expesive for all CPUs, so we avoid taken
110 Backtrack path: match failed.
113 Backtrack path: match is required.
130 D backtrack path
131 ')' backtrack path (If we arrived from "C" jump to the backtrack of "C")
132 B backtrack path
135 C backtrack path
136 A backtrack path
138 Notice, that the order of backtrack code paths are the opposite of the fast
140 to the current backtrack code path. The backtrack path must check
143 frame and continue the execution on the backtrack code paths.
150 when the backtrack mechanism performed. Because of OP_RECURSE, the data
5932 backtrack = sljit_alloc_memory(compiler, (size)); \
5935 memset(backtrack, 0, size); \
5936 backtrack->prev = parent->top; \
5937 backtrack->cc = (ccstart); \
5938 parent->top = backtrack; \
5945 backtrack = sljit_alloc_memory(compiler, (size)); \
5948 memset(backtrack, 0, size); \
5949 backtrack->prev = parent->top; \
5950 backtrack->cc = (ccstart); \
5951 parent->top = backtrack; \
5955 #define BACKTRACK_AS(type) ((type *)backtrack)
6087 backtrack_common *backtrack;
6171 add_jump(compiler, &backtrack->topbacktracks, CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(1)));
6176 compile_dnref_search(common, ccbegin, &backtrack->topbacktracks);
6189 compile_ref_matchingpath(common, ccbegin, &backtrack->topbacktracks, FALSE, FALSE);
6251 add_jump(compiler, &backtrack->topbacktracks, CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(1)));
6256 compile_dnref_search(common, ccbegin, &backtrack->topbacktracks);
6265 add_jump(compiler, &backtrack->topbacktracks, CMP(SLJIT_GREATER_EQUAL, SLJIT_MEM1(STACK_TOP), STACK(1), SLJIT_IMM, max));
6269 compile_ref_matchingpath(common, ccbegin, &backtrack->topbacktracks, TRUE, TRUE);
6293 backtrack_common *backtrack;
6306 compile_matchingpath(common, next_opcode(common, start_cc), bracketend(start_cc) - (1 + LINK_SIZE), backtrack);
6355 add_jump(compiler, &backtrack->topbacktracks, CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_IMM, 0));
6413 backtrack_common *backtrack;
6447 add_jump(compiler, &backtrack->topbacktracks, JUMP(SLJIT_SIG_GREATER));
6458 static pcre_uchar *compile_assert_matchingpath(compiler_common *common, pcre_uchar *cc, assert_backtrack *backtrack, BOOL conditional)
6470 jump_list **target = (conditional) ? &backtrack->condfailed : &backtrack->common.topbacktracks;
6496 backtrack->framesize = framesize;
6497 backtrack->private_data_ptr = private_data_ptr;
6506 /* This is a braminzero backtrack path. */
6780 backtrack->matchingpath = LABEL();
6781 SET_LABEL(jump, backtrack->matchingpath);
6785 JUMPTO(SLJIT_JUMP, backtrack->matchingpath);
6793 set_jumps(backtrack->common.topbacktracks, LABEL());
6827 backtrack->matchingpath = LABEL();
6830 JUMPTO(SLJIT_JUMP, backtrack->matchingpath);
6836 SLJIT_ASSERT(found == &backtrack->common.topbacktracks);
6837 set_jumps(backtrack->common.topbacktracks, LABEL());
6838 backtrack->common.topbacktracks = NULL;
6984 backtrack_common *backtrack;
7033 parent->top = backtrack->prev;
7100 /* This is a backtrack path! (Since the try-path of OP_BRAMINZERO matches to the empty string) */
7373 compile_matchingpath(common, matchingpath, cc, backtrack);
7489 /* This is a backtrack path! (From the viewpoint of OP_BRAMINZERO) */
7495 backtrack for the zero-length iteration. When
7505 /* Continue to the normal backtrack. */
7525 backtrack_common *backtrack;
7676 backtrack->top = NULL;
7677 backtrack->topbacktracks = NULL;
7680 compile_matchingpath(common, ccbegin, cc, backtrack);
7755 compile_backtrackingpath(common, backtrack->top);
7758 set_jumps(backtrack->topbacktracks, LABEL());
7790 backtrack->topbacktracks = NULL;
7794 add_jump(compiler, &backtrack->topbacktracks, CMP(SLJIT_NOT_EQUAL, SLJIT_MEM1(STACK_TOP), STACK(stacksize - 1), SLJIT_IMM, 0));
7796 add_jump(compiler, &backtrack->topbacktracks, CMP(SLJIT_NOT_EQUAL, SLJIT_MEM1(TMP2), (stacksize - 1) * sizeof(sljit_sw), SLJIT_IMM, 0));
7906 backtrack_common *backtrack;
7988 compile_char1_matchingpath(common, type, cc, &backtrack->topbacktracks);
8010 compile_char1_matchingpath(common, type, cc, &backtrack->topbacktracks);
8037 add_jump(compiler, &backtrack->topbacktracks, CMP(SLJIT_LESS, base, offset1, SLJIT_IMM, min + 1));
8046 compile_char1_matchingpath(common, type, cc, &backtrack->topbacktracks);
8060 add_jump(compiler, &backtrack->topbacktracks, JUMP(SLJIT_JUMP));
8070 compile_char1_matchingpath(common, type, cc, &backtrack->topbacktracks);
8077 compile_char1_matchingpath(common, type, cc, &backtrack->topbacktracks);
8086 compile_char1_matchingpath(common, type, cc, &backtrack->topbacktracks);
8116 compile_char1_matchingpath(common, type, cc, &backtrack->topbacktracks);
8152 backtrack_common *backtrack;
8158 add_jump(compiler, &backtrack->topbacktracks, JUMP(SLJIT_JUMP));
8178 add_jump(compiler, &backtrack->topbacktracks, CMP(SLJIT_NOT_EQUAL, TMP2, 0, SLJIT_IMM, 0));
8189 add_jump(compiler, &backtrack->topbacktracks, JUMP(SLJIT_JUMP));
8215 backtrack_common *backtrack;
8247 backtrack_common *backtrack;
8278 backtrack_common *backtrack;
8289 /* Tail item on backtrack. */
8574 /* Head item on backtrack. */
9301 /* OP_ONCE removes everything in case of a backtrack, so we don't
9361 assert_backtrack backtrack;
9374 memset(&backtrack, 0, sizeof(backtrack));
9375 backtrack.common.cc = current->cc;
9376 backtrack.matchingpath = CURRENT_AS(braminzero_backtrack)->matchingpath;
9378 compile_assert_matchingpath(common, current->cc, &backtrack, FALSE);