summaryrefslogtreecommitdiff
path: root/toke.c
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>2000-10-28 16:02:47 +0000
committerJarkko Hietaniemi <jhi@iki.fi>2000-10-28 16:02:47 +0000
commitdba4d15314674d8e2372d6f7a985345787581cbb (patch)
tree234455629f7743610048270294f4bc627f10234e /toke.c
parent47deb5e7d69449fbaa65f4bd4f42d66014743a75 (diff)
downloadperl-dba4d15314674d8e2372d6f7a985345787581cbb.tar.gz
The reëntrant version shouldn't be needed unless USE_PURE_BISON.
p4raw-id: //depot/perl@7465
Diffstat (limited to 'toke.c')
-rw-r--r--toke.c36
1 files changed, 19 insertions, 17 deletions
diff --git a/toke.c b/toke.c
index 3572b0edcd..b007de4550 100644
--- a/toke.c
+++ b/toke.c
@@ -80,9 +80,9 @@ static I32 utf16rev_textfilter(pTHXo_ int idx, SV *sv, int maxlen);
#endif
#ifdef USE_PURE_BISON
-#ifndef YYMAXLEVEL
-#define YYMAXLEVEL 100
-#endif
+# ifndef YYMAXLEVEL
+# define YYMAXLEVEL 100
+# endif
YYSTYPE* yylval_pointer[YYMAXLEVEL];
int* yychar_pointer[YYMAXLEVEL];
int yyactlevel = 0;
@@ -92,7 +92,7 @@ int yyactlevel = 0;
# define yychar (*yychar_pointer[yyactlevel])
# define PERL_YYLEX_PARAM yylval_pointer[yyactlevel],yychar_pointer[yyactlevel]
# undef yylex
-# define yylex() Perl_yylex(aTHX_ yylval_pointer[yyactlevel],yychar_pointer[yyactlevel])
+# define yylex() Perl_yylex_r(aTHX_ yylval_pointer[yyactlevel],yychar_pointer[yyactlevel])
#endif
#include "keywords.h"
@@ -2071,38 +2071,40 @@ S_find_in_my_stash(pTHX_ char *pkgname, I32 len)
if we already built the token before, use it.
*/
+#ifdef USE_PURE_BISON
#ifdef __SC__
-#pragma segment Perl_yylex
+#pragma segment Perl_yylex_r
#endif
int
-#ifdef USE_PURE_BISON
-Perl_yylex(pTHX_ YYSTYPE *lvalp, int *lcharp)
-#else
-Perl_yylex(pTHX)
-#endif
+Perl_yylex_r(pTHX_ YYSTYPE *lvalp, int *lcharp)
{
dTHR;
int r;
-#ifdef USE_PURE_BISON
yylval_pointer[yyactlevel] = lvalp;
yychar_pointer[yyactlevel] = lcharp;
yyactlevel++;
if (yyactlevel >= YYMAXLEVEL)
Perl_croak(aTHX_ "panic: YYMAXLEVEL");
-#endif
- r = S_syylex(aTHX);
+ r = Perl_yylex(aTHX);
-#ifdef USE_PURE_BISON
yyactlevel--;
-#endif
return r;
}
+#endif
-STATIC int
-S_syylex(pTHX) /* need to be separate from yylex for reentrancy */
+#ifdef __SC__
+#pragma segment Perl_yylex
+#endif
+
+int
+#ifdef USE_PURE_BISON
+Perl_yylex(pTHX_ YYSTYPE *lvalp, int *lcharp)
+#else
+Perl_yylex(pTHX)
+#endif
{
dTHR;
register char *s;