+ Whoops. The size argument to yy_create_buffer is not the
+ filelength but a BUFFERSIZE. Maybe this is why reading stdin fucks up. */
+ yy_switch_to_buffer (yy_create_buffer (file->get_istream (), YY_BUF_SIZE));
+}
+
+void
+Includable_lexer::new_input (const string &name, string data, Sources *sources)
+{
+ Source_file *file = new Source_file (name, data);
+ sources->add (file);
+ file_name_strings_.push_back (name);
+
+ char_count_stack_.push_back (0);
+ if (yy_current_buffer)
+ state_stack_.push_back (yy_current_buffer);
+
+ debug_output (string (state_stack_.size (), ' ') // indentation!
+ + string ("[") + name);
+ include_stack_.push_back (file);
+
+ yy_switch_to_buffer (yy_create_buffer (file->get_istream (), YY_BUF_SIZE));