diff options
| author | Graydon Hoare <[email protected]> | 2010-09-01 13:24:14 -0700 |
|---|---|---|
| committer | Graydon Hoare <[email protected]> | 2010-09-01 13:24:14 -0700 |
| commit | eb90be779877caa2e2d51095301f83695d77dd44 (patch) | |
| tree | 76756b9fa7e4cfc6284632b7cde93302d87348c4 /src/comp/driver | |
| parent | Whitespace churn. (diff) | |
| download | rust-eb90be779877caa2e2d51095301f83695d77dd44.tar.xz rust-eb90be779877caa2e2d51095301f83695d77dd44.zip | |
Add session, span tracking, error reporting, beginning of a function to parse an item to rustc.
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: |