diff options
Diffstat (limited to 'src/comp/driver')
| -rw-r--r-- | src/comp/driver/rustc.rs | 3 | ||||
| -rw-r--r-- | src/comp/driver/session.rs | 37 |
2 files changed, 39 insertions, 1 deletions
diff --git a/src/comp/driver/rustc.rs b/src/comp/driver/rustc.rs index 42bd91c5..a5463940 100644 --- a/src/comp/driver/rustc.rs +++ b/src/comp/driver/rustc.rs @@ -25,9 +25,10 @@ fn main(vec[str] args) { log "You want rustboot, the compiler next door."; auto i = 0; + auto sess = session.session(); for (str filename in args) { if (i > 0) { - auto p = parser.new_parser(filename); + auto p = parser.new_parser(sess, filename); log "opened file: " + filename; auto tok = p.peek(); while (true) { diff --git a/src/comp/driver/session.rs b/src/comp/driver/session.rs new file mode 100644 index 00000000..3b92e073 --- /dev/null +++ b/src/comp/driver/session.rs @@ -0,0 +1,37 @@ +import util.common.span; +import std._uint; + +io obj session() { + io fn span_err(span sp, str msg) { + let str s = sp.filename; + s += ':' as u8; + // We really need #fmt soon! + s += _uint.to_str(sp.lo.line, 10u); + s += ':' as u8; + s += _uint.to_str(sp.lo.col, 10u); + s += ':' as u8; + s += _uint.to_str(sp.hi.line, 10u); + s += ':' as u8; + s += _uint.to_str(sp.hi.col, 10u); + s += ": error: "; + s += msg; + log s; + fail; + } + + io fn err(str msg) { + let str s = "error: "; + s += msg; + log s; + fail; + } +} + + +// Local Variables: +// fill-column: 78; +// indent-tabs-mode: nil +// c-basic-offset: 4 +// buffer-file-coding-system: utf-8-unix +// compile-command: "make -k -C ../.. 2>&1 | sed -e 's/\\/x\\//x:\\//g'"; +// End: |