Mercurial > octave-libgccjit
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