This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
[asperl] bring ASPerl uptodate with mainline changes
[perl5.git] / toke.c
diff --git a/toke.c b/toke.c
index 640ab67..348e254 100644 (file)
--- a/toke.c
+++ b/toke.c
 #include "EXTERN.h"
 #include "perl.h"
 
+#ifndef PERL_OBJECT
 static void check_uni _((void));
 static void  force_next _((I32 type));
 static char *force_version _((char *start));
 static char *force_word _((char *start, int token, int check_keyword, int allow_pack, int allow_tick));
-static SV *q _((SV *sv));
+static SV *tokeq _((SV *sv));
 static char *scan_const _((char *start));
 static char *scan_formline _((char *s));
 static char *scan_heredoc _((char *s));
@@ -51,19 +52,10 @@ static char * filter_gets _((SV *sv, PerlIO *fp, STRLEN append));
 static void restore_rsfp _((void *f));
 static void restore_expect _((void *e));
 static void restore_lex_expect _((void *e));
+#endif /* PERL_OBJECT */
 
 static char ident_too_long[] = "Identifier too long";
 
-static char *linestart;                /* beg. of most recently read line */
-
-static char pending_ident;     /* pending identifier lookup */
-
-static struct {
-    I32 super_state;   /* lexer state to save */
-    I32 sub_inwhat;    /* "lex_inwhat" to use */
-    OP *sub_op;                /* "lex_op" to use */
-} sublex_info;
-
 /* The following are arranged oddly so that the guard on the switch statement
  * can get by with a single comparison (if the compiler is smart enough).
  */
@@ -145,7 +137,7 @@ static struct {
 /* grandfather return to old style */
 #define OLDLOP(f) return(yylval.ival=f,expect = XTERM,bufptr = s,(int)LSTOP)
 
-static int
+STATIC int
 ao(int toketype)
 {
     if (*bufptr == '=') {
@@ -159,7 +151,7 @@ ao(int toketype)
     return toketype;
 }
 
-static void
+STATIC void
 no_op(char *what, char *s)
 {
     char *oldbp = bufptr;
@@ -182,7 +174,7 @@ no_op(char *what, char *s)
     bufptr = oldbp;
 }
 
-static void
+STATIC void
 missingterm(char *s)
 {
     char tmpbuf[3];
@@ -215,7 +207,7 @@ deprecate(char *s)
        warn("Use of %s is deprecated", s);
 }
 
-static void
+STATIC void
 depcom(void)
 {
     deprecate("comma-less variable list");
@@ -223,7 +215,7 @@ depcom(void)
 
 #ifdef WIN32
 
-static I32
+STATIC I32
 win32_textfilter(int idx, SV *sv, int maxlen)
 {
  I32 count = FILTER_READ(idx+1, sv, maxlen);
@@ -305,7 +297,7 @@ lex_end(void)
     doextract = FALSE;
 }
 
-static void
+STATIC void
 restore_rsfp(void *f)
 {
     PerlIO *fp = (PerlIO*)f;
@@ -317,23 +309,21 @@ restore_rsfp(void *f)
     rsfp = fp;
 }
 
-static void
-restore_expect(e)
-void *e;
+STATIC void
+restore_expect(void *e)
 {
     /* a safe way to store a small integer in a pointer */
     expect = (expectation)((char *)e - tokenbuf);
 }
 
-static void
-restore_lex_expect(e)
-void *e;
+STATIC void
+restore_lex_expect(void *e)
 {
     /* a safe way to store a small integer in a pointer */
     lex_expect = (expectation)((char *)e - tokenbuf);
 }
 
-static void
+STATIC void
 incline(char *s)
 {
     dTHR;
@@ -374,7 +364,7 @@ incline(char *s)
     curcop->cop_line = atoi(n)-1;
 }
 
-static char *
+STATIC char *
 skipspace(register char *s)
 {
     dTHR;
@@ -432,7 +422,7 @@ skipspace(register char *s)
     }
 }
 
-static void
+STATIC void
 check_uni(void) {
     char *s;
     char ch;
@@ -456,7 +446,7 @@ check_uni(void) {
 #undef UNI
 #define UNI(f) return uni(f,s)
 
-static int
+STATIC int
 uni(I32 f, char *s)
 {
     yylval.ival = f;
@@ -477,7 +467,7 @@ uni(I32 f, char *s)
 
 #define LOP(f,x) return lop(f,x,s)
 
-static I32
+STATIC I32
 lop
 #ifdef CAN_PROTOTYPE
    (I32 f, expectation x, char *s)
@@ -506,7 +496,7 @@ char *s;
        return LSTOP;
 }
 
-static void 
+STATIC void 
 force_next(I32 type)
 {
     nexttype[nexttoke] = type;
@@ -518,7 +508,7 @@ force_next(I32 type)
     }
 }
 
-static char *
+STATIC char *
 force_word(register char *start, int token, int check_keyword, int allow_pack, int allow_initial_tick)
 {
     register char *s;
@@ -550,7 +540,7 @@ force_word(register char *start, int token, int check_keyword, int allow_pack, i
     return s;
 }
 
-static void
+STATIC void
 force_ident(register char *s, int kind)
 {
     if (s && *s) {
@@ -573,7 +563,7 @@ force_ident(register char *s, int kind)
     }
 }
 
-static char *
+STATIC char *
 force_version(char *s)
 {
     OP *version = Nullop;
@@ -600,8 +590,8 @@ force_version(char *s)
     return (s);
 }
 
-static SV *
-q(SV *sv)
+STATIC SV *
+tokeq(SV *sv)
 {
     register char *s;
     register char *send;
@@ -633,7 +623,7 @@ q(SV *sv)
     return sv;
 }
 
-static I32
+STATIC I32
 sublex_start(void)
 {
     register I32 op_type = yylval.ival;
@@ -644,7 +634,7 @@ sublex_start(void)
        return THING;
     }
     if (op_type == OP_CONST || op_type == OP_READLINE) {
-       SV *sv = q(lex_stuff);
+       SV *sv = tokeq(lex_stuff);
        STRLEN len;
        char *p = SvPV(sv, len);
        yylval.opval = (OP*)newSVOP(op_type, 0, newSVpv(p, len));
@@ -668,7 +658,7 @@ sublex_start(void)
        return FUNC;
 }
 
-static I32
+STATIC I32
 sublex_push(void)
 {
     dTHR;
@@ -721,7 +711,7 @@ sublex_push(void)
     return '(';
 }
 
-static I32
+STATIC I32
 sublex_done(void)
 {
     if (!lex_starts++) {
@@ -766,7 +756,7 @@ sublex_done(void)
     }
 }
 
-static char *
+STATIC char *
 scan_const(char *start)
 {
     register char *send = bufend;
@@ -927,7 +917,7 @@ scan_const(char *start)
 }
 
 /* This is the one truly awful dwimmer necessary to conflate C and sed. */
-static int
+STATIC int
 intuit_more(register char *s)
 {
     if (lex_brackets)
@@ -1055,7 +1045,7 @@ intuit_more(register char *s)
     return TRUE;
 }
 
-static int
+STATIC int
 intuit_method(char *start, GV *gv)
 {
     char *s = start + (*start == '$');
@@ -1110,7 +1100,7 @@ intuit_method(char *start, GV *gv)
     return 0;
 }
 
-static char*
+STATIC char*
 incl_perldb(void)
 {
     if (perldb) {
@@ -1244,7 +1234,7 @@ filter_read(int idx, SV *buf_sv, int maxlen)
 }
 
 
-static char *
+STATIC char *
 filter_gets(register SV *sv, register PerlIO *fp, STRLEN append)
 {
 #ifdef WIN32FILTER
@@ -1488,7 +1478,7 @@ yylex(void)
        if (SvIVX(linestr) == '\'') {
            SV *sv = newSVsv(linestr);
            if (!lex_inpat)
-               sv = q(sv);
+               sv = tokeq(sv);
            yylval.opval = (OP*)newSVOP(OP_CONST, 0, sv);
            s = bufend;
        }
@@ -3409,7 +3399,7 @@ yylex(void)
                }
            }
            force_next(')');
-           nextval[nexttoke].opval = (OP*)newSVOP(OP_CONST, 0, q(lex_stuff));
+           nextval[nexttoke].opval = (OP*)newSVOP(OP_CONST, 0, tokeq(lex_stuff));
            lex_stuff = Nullsv;
            force_next(THING);
            force_next(',');
@@ -4463,7 +4453,7 @@ keyword(register char *d, I32 len)
     return 0;
 }
 
-static void
+STATIC void
 checkcomma(register char *s, char *name, char *what)
 {
     char *w;
@@ -4505,7 +4495,7 @@ checkcomma(register char *s, char *name, char *what)
     }
 }
 
-static char *
+STATIC char *
 scan_word(register char *s, char *dest, STRLEN destlen, int allow_package, STRLEN *slp)
 {
     register char *d = dest;
@@ -4532,7 +4522,7 @@ scan_word(register char *s, char *dest, STRLEN destlen, int allow_package, STRLE
     }
 }
 
-static char *
+STATIC char *
 scan_ident(register char *s, register char *send, char *dest, STRLEN destlen, I32 ck_uni)
 {
     register char *d;
@@ -4667,7 +4657,7 @@ void pmflag(U16 *pmfl, int ch)
        *pmfl |= PMf_EXTENDED;
 }
 
-static char *
+STATIC char *
 scan_pat(char *start)
 {
     PMOP *pm;
@@ -4693,7 +4683,7 @@ scan_pat(char *start)
     return s;
 }
 
-static char *
+STATIC char *
 scan_subst(char *start)
 {
     register char *s;
@@ -4758,7 +4748,7 @@ scan_subst(char *start)
     return s;
 }
 
-static char *
+STATIC char *
 scan_trans(char *start)
 {
     register char* s;
@@ -4811,7 +4801,7 @@ scan_trans(char *start)
     return s;
 }
 
-static char *
+STATIC char *
 scan_heredoc(register char *s)
 {
     dTHR;
@@ -4939,7 +4929,7 @@ scan_heredoc(register char *s)
     return s;
 }
 
-static char *
+STATIC char *
 scan_inputsymbol(char *start)
 {
     register char *s = start;
@@ -4995,7 +4985,7 @@ scan_inputsymbol(char *start)
     return s;
 }
 
-static char *
+STATIC char *
 scan_str(char *start)
 {
     dTHR;
@@ -5219,7 +5209,7 @@ scan_num(char *start)
     return s;
 }
 
-static char *
+STATIC char *
 scan_formline(register char *s)
 {
     dTHR;
@@ -5289,7 +5279,7 @@ scan_formline(register char *s)
     return s;
 }
 
-static void
+STATIC void
 set_csh(void)
 {
 #ifdef CSH