Add a temporary hack to divert the parser to an alternate file
This commit is contained in:
parent
58e26243a7
commit
81a79603c0
1 changed files with 12 additions and 0 deletions
|
@ -175,6 +175,18 @@ fn new_parser_from_file(sess: parse_sess, cfg: ast::crate_cfg,
|
||||||
path: &Path) -> Result<Parser, ~str> {
|
path: &Path) -> Result<Parser, ~str> {
|
||||||
match io::read_whole_file_str(path) {
|
match io::read_whole_file_str(path) {
|
||||||
result::Ok(move src) => {
|
result::Ok(move src) => {
|
||||||
|
|
||||||
|
// HACK: If the file contains a special token use a different
|
||||||
|
// source file. Used to send the stage1+ parser (the stage0 parser
|
||||||
|
// doesn't have this hack) to a different crate file.
|
||||||
|
// Transitional. Remove me.
|
||||||
|
let src = if src.starts_with("// DIVERT") {
|
||||||
|
let actual_path = &path.with_filestem("alternate_crate");
|
||||||
|
result::unwrap(io::read_whole_file_str(actual_path))
|
||||||
|
} else {
|
||||||
|
move src
|
||||||
|
};
|
||||||
|
|
||||||
let filemap = sess.cm.new_filemap(path.to_str(), @move src);
|
let filemap = sess.cm.new_filemap(path.to_str(), @move src);
|
||||||
let srdr = lexer::new_string_reader(sess.span_diagnostic, filemap,
|
let srdr = lexer::new_string_reader(sess.span_diagnostic, filemap,
|
||||||
sess.interner);
|
sess.interner);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue