summaryrefslogtreecommitdiff
path: root/perl.h
diff options
context:
space:
mode:
authorLarry Wall <lwall@jpl-devvax.jpl.nasa.gov>1988-01-27 22:18:25 +0000
committerLarry Wall <lwall@jpl-devvax.jpl.nasa.gov>1988-01-27 22:18:25 +0000
commita559c25918b1466cdb50c9f978a86f01be0bac10 (patch)
treeffbe6c7bc07144d291a61555d002e7969110f248 /perl.h
parenta1cc2bdc08f9aa1504f32e5b0b782c2b3cffd124 (diff)
downloadperl-a559c25918b1466cdb50c9f978a86f01be0bac10.tar.gz
perl 1.0 patch 8: perl needed an eval operator and a symbolic debugger
I didn't add an eval operator to the original perl because I hadn't thought of any good uses for it. Recently I thought of some. Along with creating the eval operator, this patch introduces a symbolic debugger for perl scripts, which makes use of eval to interpret some debugging commands. Having eval also lets me emulate awk's FOO=bar command line behavior with a line such as the one a2p now inserts at the beginning of translated scripts.
Diffstat (limited to 'perl.h')
-rw-r--r--perl.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/perl.h b/perl.h
index 751b8cdc61..9b877f3e30 100644
--- a/perl.h
+++ b/perl.h
@@ -1,6 +1,9 @@
-/* $Header: perl.h,v 1.0.1.2 88/01/24 03:53:47 root Exp $
+/* $Header: perl.h,v 1.0.1.3 88/01/28 10:24:17 root Exp $
*
* $Log: perl.h,v $
+ * Revision 1.0.1.3 88/01/28 10:24:17 root
+ * patch8: added eval operator.
+ *
* Revision 1.0.1.2 88/01/24 03:53:47 root
* patch 2: hid str_peek() in #ifdef DEBUGGING.
*
@@ -103,7 +106,8 @@ ARG *flipflip();
STR *arg_to_str();
STR *str_new();
STR *stab_str();
-STR *eval();
+STR *eval(); /* this evaluates expressions */
+STR *do_eval(); /* this evaluates eval operator */
FCMD *load_format();
@@ -164,6 +168,7 @@ EXT char *inplace INIT(Nullch);
EXT char tokenbuf[256];
EXT int expectterm INIT(TRUE);
EXT int lex_newlines INIT(FALSE);
+EXT int in_eval INIT(FALSE);
FILE *popen();
/* char *str_get(); */
@@ -196,6 +201,7 @@ EXT struct loop {
EXT int loop_ptr INIT(-1);
EXT jmp_buf top_env;
+EXT jmp_buf eval_env;
EXT char *goto_targ INIT(Nullch); /* cmd_exec gets strange when set */