|
|
1.1 ! root 1: block data ! 2: integer cshift, csize, yynlin ! 3: common /yyllib/ cshift, csize, yynlin ! 4: data yynlin/YYNEWLINE/ ! 5: end ! 6: block data ! 7: common /yyldat/ yyfnd, ymorf, yyprev, yybgin, yytop ! 8: integer yyfnd, yymorf, yyprev, yybgin, yytop ! 9: data yybgin/1/ ! 10: data yyprev/YYNEWLINE/ ! 11: data yytop/YYTOPVAL/ ! 12: end ! 13: integer function yylook(dummy) ! 14: common /Lverif/ verif ! 15: common /Ladvan/ advan ! 16: common /Lstoff/ stoff ! 17: common /Lsfall/ sfall ! 18: common /Latable/ atable ! 19: common /Lextra/ extra ! 20: common /Lvstop/ vstop ! 21: integer verif(Sverif), advan(Sadvan),stoff(Sstoff),match(Smatch) ! 22: integer sfall(Ssfall),atable(Satable),extra(Sextra), vstop(Svstop) ! 23: integer state, lsp, r ! 24: integer ch, n ! 25: common /yyldat/ yyfnd, yymorf, yyprev, yybgin, yytop, yylsp, yylsta(YYLMAX) ! 26: common /yyxel/ yyleng, yytext ! 27: integer yyfnd, yymorf, yylsta, yylsp, yytext, yyprev, yyleng, yytop ! 28: integer lexshf, yytext(YYLMAX), yyback, yybgin ! 29: integer z, t ! 30: if (yymorf .eq. 0) ! 31: yyleng = 0 ! 32: else ! 33: yymorf=0 ! 34: 1776 ! 35: lsp = 1 ! 36: state = yybgin ! 37: if (yyprev .eq. YYNEWLINE) ! 38: state = state + 1 ! 39: for (;;){ ! 40: r = stoff(state) ! 41: if (r .eq. 0){ ! 42: z = sfall(state) ! 43: if (z .eq. 0) ! 44: break ! 45: if(stoff(z) == 0) break ! 46: } ! 47: ch = input(dummy) ! 48: ich = lexshf(ch) ! 49: yyleng = yyleng+1 ! 50: yytext(yyleng) = ch ! 51: 1984 ! 52: if(r .gt. 0){ ! 53: t = r + ich ! 54: if (t<= yytop){ ! 55: if (verif(t) .eq. state){ ! 56: if(advan(t) == YYERROR){ ! 57: call unput(yytext(yyleng)) ! 58: yyleng = yyleng - 1 ! 59: break ! 60: } ! 61: state = advan(t) ! 62: yylsta(lsp) = state ! 63: lsp = lsp +1 ! 64: goto 2001 ! 65: } ! 66: } ! 67: } ! 68: if(r < 0){ ! 69: t = r + ich ! 70: if (t <= yytop .and. verif(t) .eq. state){ ! 71: if(advan(t) == YYERROR){ ! 72: call unput(yytext(yyleng)) ! 73: yyleng = yyleng - 1 ! 74: break ! 75: } ! 76: state = advan(t) ! 77: yylsta(lsp) = state ! 78: lsp = lsp +1 ! 79: goto 2001 ! 80: } ! 81: t = r + match(ich) ! 82: if(t <= yytop && state == verif(t)){ ! 83: if(advan(t) == YYERROR){ ! 84: call unput(yytext(yyleng)) ! 85: yyleng = yyleng - 1 ! 86: break ! 87: } ! 88: state = advan(t) ! 89: yylsta(lsp) = state ! 90: lsp = lsp + 1 ! 91: goto 2001 ! 92: } ! 93: } ! 94: else { ! 95: if (state > 0) state = sfall(state) ! 96: if (state .gt. 0) r = stoff(state) ! 97: if (state .gt. 0 .and. r .ne. 0) ! 98: goto 1984 ! 99: call unput(yytext(yyleng)) ! 100: yyleng = yyleng -1 ! 101: break ! 102: } ! 103: 2001 ! 104: continue ! 105: } ! 106: while (lsp .gt. 1){ ! 107: lsp = lsp -1 ! 108: ilsp = yylsta(lsp) ! 109: yyfnd = atable(ilsp) ! 110: if (yyfnd .gt. 0) ! 111: if (vstop(yyfnd) .gt. 0){ ! 112: r = vstop(yyfnd) ! 113: if (extra(r) .ne. 0){ ! 114: for(;;){ ! 115: ilsp = yylsta(lsp) ! 116: if (yyback(atable(ilsp), -r) .eq. 1) ! 117: break ! 118: lsp= lsp -1 ! 119: call unput(yytext(yyleng)) ! 120: yyleng = yyleng -1 ! 121: } ! 122: } ! 123: yyprev = lexshf(yytext(yyleng)) ! 124: yylsp = lsp ! 125: yyfnd = yyfnd + 1 ! 126: yylook = r ! 127: yytext(yyleng+1) = 0 ! 128: return ! 129: } ! 130: call unput(yytext(yyleng)) ! 131: } ! 132: if (yytext(1) .eq. 0){ ! 133: yylook=0 ! 134: return ! 135: } ! 136: yyprev = input(dummy) ! 137: call output(yyprev) ! 138: yyprev = lexshf(yyprev) ! 139: yyleng = 0 ! 140: goto 1776 ! 141: end ! 142: integer function yyback (isub, n) ! 143: common /Lvstop/ vstop ! 144: integer vstop(Svstop) ! 145: if (isub .ne. 0) ! 146: while (vstop(isub) .ne. 0){ ! 147: if (vstop(isub) .eq. m){ ! 148: yyback = 1 ! 149: return ! 150: } ! 151: isub = isub + 1 ! 152: } ! 153: yyback = 0 ! 154: return ! 155: end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.