diff libinterp/parse-tree/parse.h @ 16133:249d62b3fac8

new class for parser state * oct-parse.yy, parse.h (octave_parser): New class (curr_parser): New global variable. * oct-parse.yy (eval_string, parse_fcn_file): Save curr_parser on unwind_protect stack. Create new curr_parser and arrange for it to be cleaned up. * toplev.cc (main_loop): Likewise. * input.cc (get_debug_input): Likewise.
author John W. Eaton <jwe@octave.org>
date Tue, 26 Feb 2013 20:10:00 -0500
parents 6884401b2fbb
children ec9c6222ef5a
line wrap: on
line diff
--- a/libinterp/parse-tree/parse.h	Tue Feb 26 16:52:33 2013 -0800
+++ b/libinterp/parse-tree/parse.h	Tue Feb 26 20:10:00 2013 -0500
@@ -107,4 +107,28 @@
 
 extern OCTINTERP_API int octave_parse_input (void);
 
+class
+octave_parser
+{
+public:
+
+  octave_parser (void) { }
+
+  ~octave_parser (void) { }
+
+  // For unwind protect.
+  static void cleanup (octave_parser *parser) { delete parser; }
+
+private:
+
+  // No copying!
+
+  octave_parser (const octave_parser&);
+
+  octave_parser& operator = (const octave_parser&);
+};
+
+// The current state of the parser.
+extern octave_parser *curr_parser;
+
 #endif