Includable_lexer::new_input(String s, Sources * global_sources)
{
Source_file * sl = global_sources->get_file_l(s);
- if (!sl)
+ if (!sl)
{
- String msg ="Can't find file `" + s+ "'";
+ String msg =_("Can't find file `") + s+ "'";
LexerError(msg.ch_C ());
- return;
+ return;
}
-
+
char_count_stack_.push(0);
- if (yy_current_buffer)
+ if (yy_current_buffer)
state_stack_.push(yy_current_buffer);
cout << "[" << s<<flush;
- include_stack_.push(sl);
-
+ include_stack_.push(sl);
+
/*
ugh. We'd want to create a buffer from the bytes directly.
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(sl->istream_l(), YY_BUF_SIZE));
+ yy_switch_to_buffer(yy_create_buffer(sl->istream_l(), YY_BUF_SIZE));
}
/** pop the inputstack. conceptually this is a destructor, but it
cout << "]"<<flush;
yy_delete_buffer(yy_current_buffer);
yy_current_buffer = 0;
- if (state_stack_.empty())
+ if (state_stack_.empty())
{
return false;
}
- else
+ else
{
yy_switch_to_buffer(state_stack_.pop());
return true;
Includable_lexer::~Includable_lexer()
{
- while (!include_stack_.empty())
+ while (!include_stack_.empty())
{
close_input();
}
}
-/**
+/**
Since we don't create the buffer state from the bytes directly, we
don't know about the location of the lexer. Add this as a
YY_USER_ACTION */