1
Fork 0

syntax: lexer doesn't need a codemap

This commit is contained in:
Brian Anderson 2012-04-15 03:57:24 -07:00
parent aa8dc0175d
commit 2319c2d1ba
4 changed files with 7 additions and 11 deletions

View file

@ -155,14 +155,13 @@ fn is_lit(t: token::token) -> bool {
type lit = {lit: str, pos: uint};
fn gather_comments_and_literals(cm: codemap::codemap,
span_diagnostic: diagnostic::span_handler,
fn gather_comments_and_literals(span_diagnostic: diagnostic::span_handler,
path: str,
srdr: io::reader) ->
{cmnts: [cmnt], lits: [lit]} {
let src = @str::from_bytes(srdr.read_whole_stream());
let itr = @interner::mk::<str>(str::hash, str::eq);
let rdr = new_reader(cm, span_diagnostic,
let rdr = new_reader(span_diagnostic,
codemap::new_filemap(path, src, 0u, 0u), itr);
let mut comments: [cmnt] = [];
let mut literals: [lit] = [];

View file

@ -5,7 +5,6 @@ import diagnostic;
export reader, new_reader, next_token, is_whitespace;
type reader = @{
cm: codemap::codemap,
span_diagnostic: diagnostic::span_handler,
src: @str,
len: uint,
@ -57,12 +56,10 @@ impl reader for reader {
}
}
fn new_reader(cm: codemap::codemap,
span_diagnostic: diagnostic::span_handler,
fn new_reader(span_diagnostic: diagnostic::span_handler,
filemap: codemap::filemap,
itr: @interner::interner<str>) -> reader {
let r = @{cm: cm,
span_diagnostic: span_diagnostic,
let r = @{span_diagnostic: span_diagnostic,
src: filemap.src, len: str::len(*filemap.src),
mut col: 0u, mut pos: 0u, mut curr: -1 as char,
mut chpos: filemap.start_pos.ch, mut strs: [],

View file

@ -104,7 +104,7 @@ fn new_parser_from_file(sess: parse_sess, cfg: ast::crate_cfg, path: str,
sess.chpos, sess.byte_pos);
sess.cm.files += [filemap];
let itr = @interner::mk(str::hash, str::eq);
let rdr = lexer::new_reader(sess.cm, sess.span_diagnostic, filemap, itr);
let rdr = lexer::new_reader(sess.span_diagnostic, filemap, itr);
ret new_parser(sess, cfg, rdr, ftype);
}
@ -116,7 +116,7 @@ fn new_parser_from_source_str(sess: parse_sess, cfg: ast::crate_cfg,
(name, ss, source, sess.chpos, sess.byte_pos);
sess.cm.files += [filemap];
let itr = @interner::mk(str::hash, str::eq);
let rdr = lexer::new_reader(sess.cm, sess.span_diagnostic,
let rdr = lexer::new_reader(sess.span_diagnostic,
filemap, itr);
ret new_parser(sess, cfg, rdr, ftype);
}

View file

@ -58,7 +58,7 @@ fn print_crate(cm: codemap, span_diagnostic: diagnostic::span_handler,
crate: @ast::crate, filename: str, in: io::reader,
out: io::writer, ann: pp_ann) {
let boxes: [pp::breaks] = [];
let r = comments::gather_comments_and_literals(cm, span_diagnostic,
let r = comments::gather_comments_and_literals(span_diagnostic,
filename, in);
let s =
@{s: pp::mk_printer(out, default_columns),