implement C<goto &func> and other fixes (via private mail)
[p5sagit/p5-mst-13.2.git] / perly.y
diff --git a/perly.y b/perly.y
index f9c5f74..78378b6 100644 (file)
--- a/perly.y
+++ b/perly.y
@@ -26,6 +26,11 @@ dep(void)
 
 %start prog
 
+%{
+/* I sense a Big Blue pattern here... */
+#if !defined(OEMVS) && !defined(__OPEN_VM) && !defined(POSIX_BC)
+%}
+
 %union {
     I32        ival;
     char *pval;
@@ -33,6 +38,14 @@ dep(void)
     GV *gvval;
 }
 
+%{
+#endif /* !OEMVS && !__OPEN_VM && !POSIX_BC */
+
+#ifdef USE_PURE_BISON
+#define YYLEX_PARAM (&yychar)
+#endif
+%}
+
 %token <ival> '{' ')'
 
 %token <opval> WORD METHOD FUNCMETH THING PMFUNC PRIVATEREF
@@ -504,7 +517,7 @@ term        :       term ASSIGNOP term
                        { $$ = newUNOP(OP_ENTERSUB, OPf_STACKED,
                            append_elem(OP_LIST, $3, scalar($2))); }
        |       DO term %prec UNIOP
-                       { $$ = newUNOP(OP_DOFILE, 0, scalar($2)); }
+                       { $$ = dofile($2); }
        |       DO block        %prec '('
                        { $$ = newUNOP(OP_NULL, OPf_SPECIAL, scope($2)); }
        |       DO WORD '(' ')'