comparison libinterp/parse-tree/parse.h @ 16139:2fd39ab12209

move a function and data member from lexical_feedback to octave_parser * parse.h: Include lex.h. * parse.h, oct-parse.yy (octave_parser::reset): New function. (octave_parser::end_of_input): New data member. (octave_parser::octave_parser): Initialize it. * lex.h, lex.ll (lexical_feedback::reset): Rename from reset_parser. (lexical_feedback::parser_end_of_input): Delete. * input.cc (get_debug_input): Call octave_parser::reset, not lexical_feedback::reset_parser. * toplev.cc (main_loop): Likewise. * oct-parse.yy (eval_string, parse_fcn_file): Likewise. * toplev.cc (main_loop): Set octave_parser::end_of_input, not lexical_feedback::parser_end_of_input. * oct-parse.yy: Use octave_parser::end_of_input, not lexical_feedback::parser_end_of_input.
author John W. Eaton <jwe@octave.org>
date Wed, 27 Feb 2013 13:09:33 -0500
parents 284e2ca86ef7
children 26d65d677557
comparison
equal deleted inserted replaced
16138:284e2ca86ef7 16139:2fd39ab12209
27 27
28 #include <string> 28 #include <string>
29 29
30 #include <stack> 30 #include <stack>
31 31
32 #include "lex.h"
32 #include "token.h" 33 #include "token.h"
33 34
34 extern int octave_lex (void); 35 extern int octave_lex (void);
35 36
36 class octave_comment_list; 37 class octave_comment_list;
134 class 135 class
135 octave_parser 136 octave_parser
136 { 137 {
137 public: 138 public:
138 139
139 octave_parser (void) { } 140 octave_parser (void) : end_of_input (false) { }
140 141
141 ~octave_parser (void) { } 142 ~octave_parser (void) { }
143
144 void reset (void)
145 {
146 curr_lexer->reset ();
147 }
142 148
143 int run (void); 149 int run (void);
144 150
145 // Error mesages for mismatched end tokens. 151 // Error mesages for mismatched end tokens.
146 void end_error (const char *type, token::end_tok_type ettype, int l, int c); 152 void end_error (const char *type, token::end_tok_type ettype, int l, int c);
318 // Append a statement to an existing statement list. 324 // Append a statement to an existing statement list.
319 tree_statement_list * 325 tree_statement_list *
320 append_statement_list (tree_statement_list *list, char sep, 326 append_statement_list (tree_statement_list *list, char sep,
321 tree_statement *stmt, bool warn_missing_semi); 327 tree_statement *stmt, bool warn_missing_semi);
322 328
329 // TRUE means that we have encountered EOF on the input stream.
330 bool end_of_input;
331
323 // For unwind protect. 332 // For unwind protect.
324 static void cleanup (octave_parser *parser) { delete parser; } 333 static void cleanup (octave_parser *parser) { delete parser; }
325 334
326 private: 335 private:
327 336