Lines Matching defs:scan
117 char *parse; /* Input-scan pointer. */
301 * Simple_vFAIL -- like FAIL, but marks the current location in the scan
681 regnode *scan = *scanp, *next;
685 I32 is_par = OP(scan) == OPEN ? ARG(scan) : 0;
689 while (scan && OP(scan) != END && scan < last) {
692 if (PL_regkind[(U8)OP(scan)] == EXACT) {
694 regnode *n = regnext(scan);
697 regnode *stop = scan;
700 next = scan + NODE_SZ_STR(scan);
704 (stringok && (OP(n) == OP(scan))))
706 && NEXT_OFF(scan) + NEXT_OFF(n) < I16_MAX) {
710 NEXT_OFF(scan) += NEXT_OFF(n);
719 int oldl = STR_LEN(scan);
724 NEXT_OFF(scan) += NEXT_OFF(n);
725 STR_LEN(scan) += STR_LEN(n);
728 Move(STRING(n), STRING(scan) + oldl, STR_LEN(n), char);
736 if (UTF && OP(scan) == EXACTF && STR_LEN(scan) >= 6) {
765 char *s0 = STRING(scan), *s, *t;
766 char *s1 = s0 + STR_LEN(scan) - 1, *s2 = s1 - 4;
781 n = scan + NODE_SZ_STR(scan);
793 if (OP(scan) != CURLYX) {
794 int max = (reg_off_by_arg[OP(scan)]
798 int off = (reg_off_by_arg[OP(scan)] ? ARG(scan) : NEXT_OFF(scan));
800 regnode *n = scan;
808 if (reg_off_by_arg[OP(scan)])
809 ARG(scan) = off;
811 NEXT_OFF(scan) = off;
815 if (OP(scan) == BRANCH || OP(scan) == BRANCHJ
816 || OP(scan) == IFTHEN || OP(scan) == SUSPEND) {
817 next = regnext(scan);
818 code = OP(scan);
828 while (OP(scan) == code) {
840 next = regnext(scan);
841 scan = NEXTOPER(scan);
843 scan = NEXTOPER(scan);
852 minnext = study_chunk(pRExC_state, &scan, &deltanext,
860 scan = next;
908 scan = NEXTOPER(NEXTOPER(scan));
910 scan = NEXTOPER(scan);
913 else if (OP(scan) == EXACT) {
914 I32 l = STR_LEN(scan);
915 UV uc = *((U8*)STRING(scan));
917 U8 *s = (U8*)STRING(scan);
930 sv_catpvn(data->last_found, STRING(scan), STR_LEN(scan));
936 mg->mg_len += utf8_length((U8*)STRING(scan),
937 (U8*)STRING(scan)+STR_LEN(scan));
975 else if (PL_regkind[(U8)OP(scan)] == EXACT) { /* But OP != EXACT! */
976 I32 l = STR_LEN(scan);
977 UV uc = *((U8*)STRING(scan));
983 U8 *s = (U8 *)STRING(scan);
1005 if (OP(scan) == EXACTFL)
1021 else if (strchr((char*)PL_varies,OP(scan))) {
1024 regnode *oscan = scan;
1029 switch (PL_regkind[(U8)OP(scan)]) {
1031 scan = NEXTOPER(scan);
1035 next = NEXTOPER(scan);
1039 next = regnext(scan);
1040 scan = NEXTOPER(scan);
1052 next = regnext(scan);
1053 scan = NEXTOPER(scan);
1057 scan = regnext(scan);
1064 mincount = ARG1(scan);
1065 maxcount = ARG2(scan);
1066 next = regnext(scan);
1067 if (OP(scan) == CURLYX) {
1070 scan->flags = ((lp <= U8_MAX) ? lp : U8_MAX);
1072 scan = NEXTOPER(scan) + EXTRA_STEP_2ARGS;
1073 next_is_eval = (OP(scan) == EVAL);
1101 /* This will finish on WHILEM, setting scan, or on NULL: */
1102 minnext = study_chunk(pRExC_state, &scan, &deltanext, last, data,
1132 if (!scan) /* It was not CURLYX, but CURLY. */
1133 scan = next;
1369 else if (strchr((char*)PL_simple,OP(scan))) {
1382 switch (PL_regkind[(U8)OP(scan)]) {
1386 /* Perl_croak(aTHX_ "panic: unexpected simple REx opcode %d", OP(scan)); */
1391 if (OP(scan) == SANY)
1404 (struct regnode_charclass_class*)scan);
1407 (struct regnode_charclass_class*)scan);
1569 else if (PL_regkind[(U8)OP(scan)] == EOL && flags & SCF_DO_SUBSTR) {
1570 data->flags |= (OP(scan) == MEOL
1574 else if ( PL_regkind[(U8)OP(scan)] == BRANCHJ
1576 && (scan->flags || data || (flags & SCF_DO_STCLASS))
1577 && (OP(scan) == IFMATCH || OP(scan) == UNLESSM)) {
1591 if ( flags & SCF_DO_STCLASS && !scan->flags
1592 && OP(scan) == IFMATCH ) { /* Lookahead */
1599 next = regnext(scan);
1600 nscan = NEXTOPER(NEXTOPER(scan));
1602 if (scan->flags) {
1609 scan->flags = (U8)minnext;
1625 else if (OP(scan) == OPEN) {
1628 else if (OP(scan) == CLOSE) {
1629 if ((I32)ARG(scan) == is_par) {
1630 next = regnext(scan);
1636 *(data->last_closep) = ARG(scan);
1638 else if (OP(scan) == EVAL) {
1642 else if (OP(scan) == LOGICAL && scan->flags == 2) { /* Embedded follows */
1653 scan = regnext(scan);
1657 *scanp = scan;
1740 regnode *scan;
1875 scan = r->program + 1; /* First BRANCH. */
1883 if (OP(scan) != BRANCH) { /* Only one top-level choice. */
1890 first = scan;
1956 (IV)(first - scan + 1)));
1974 first = scan;
1983 minlen = study_chunk(pRExC_state, &first, &fake, scan + RExC_size, /* Up to end */
2105 scan = r->program + 1;
2109 minlen = study_chunk(pRExC_state, &scan, &fake, scan + RExC_size, &data, SCF_DO_STCLASS_AND|SCF_WHILEM_VISITED_POS);
4463 register regnode *scan;
4470 scan = p;
4472 temp = regnext(scan);
4475 scan = temp;
4478 if (reg_off_by_arg[OP(scan)]) {
4479 ARG_SET(scan, val - scan);
4482 NEXT_OFF(scan) = val - scan;