syntax: lexer doesn't need a codemap
This commit is contained in:
parent
aa8dc0175d
commit
2319c2d1ba
4 changed files with 7 additions and 11 deletions
|
@ -155,14 +155,13 @@ fn is_lit(t: token::token) -> bool {
|
||||||
|
|
||||||
type lit = {lit: str, pos: uint};
|
type lit = {lit: str, pos: uint};
|
||||||
|
|
||||||
fn gather_comments_and_literals(cm: codemap::codemap,
|
fn gather_comments_and_literals(span_diagnostic: diagnostic::span_handler,
|
||||||
span_diagnostic: diagnostic::span_handler,
|
|
||||||
path: str,
|
path: str,
|
||||||
srdr: io::reader) ->
|
srdr: io::reader) ->
|
||||||
{cmnts: [cmnt], lits: [lit]} {
|
{cmnts: [cmnt], lits: [lit]} {
|
||||||
let src = @str::from_bytes(srdr.read_whole_stream());
|
let src = @str::from_bytes(srdr.read_whole_stream());
|
||||||
let itr = @interner::mk::<str>(str::hash, str::eq);
|
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);
|
codemap::new_filemap(path, src, 0u, 0u), itr);
|
||||||
let mut comments: [cmnt] = [];
|
let mut comments: [cmnt] = [];
|
||||||
let mut literals: [lit] = [];
|
let mut literals: [lit] = [];
|
||||||
|
|
|
@ -5,7 +5,6 @@ import diagnostic;
|
||||||
export reader, new_reader, next_token, is_whitespace;
|
export reader, new_reader, next_token, is_whitespace;
|
||||||
|
|
||||||
type reader = @{
|
type reader = @{
|
||||||
cm: codemap::codemap,
|
|
||||||
span_diagnostic: diagnostic::span_handler,
|
span_diagnostic: diagnostic::span_handler,
|
||||||
src: @str,
|
src: @str,
|
||||||
len: uint,
|
len: uint,
|
||||||
|
@ -57,12 +56,10 @@ impl reader for reader {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn new_reader(cm: codemap::codemap,
|
fn new_reader(span_diagnostic: diagnostic::span_handler,
|
||||||
span_diagnostic: diagnostic::span_handler,
|
|
||||||
filemap: codemap::filemap,
|
filemap: codemap::filemap,
|
||||||
itr: @interner::interner<str>) -> reader {
|
itr: @interner::interner<str>) -> reader {
|
||||||
let r = @{cm: cm,
|
let r = @{span_diagnostic: span_diagnostic,
|
||||||
span_diagnostic: span_diagnostic,
|
|
||||||
src: filemap.src, len: str::len(*filemap.src),
|
src: filemap.src, len: str::len(*filemap.src),
|
||||||
mut col: 0u, mut pos: 0u, mut curr: -1 as char,
|
mut col: 0u, mut pos: 0u, mut curr: -1 as char,
|
||||||
mut chpos: filemap.start_pos.ch, mut strs: [],
|
mut chpos: filemap.start_pos.ch, mut strs: [],
|
||||||
|
|
|
@ -104,7 +104,7 @@ fn new_parser_from_file(sess: parse_sess, cfg: ast::crate_cfg, path: str,
|
||||||
sess.chpos, sess.byte_pos);
|
sess.chpos, sess.byte_pos);
|
||||||
sess.cm.files += [filemap];
|
sess.cm.files += [filemap];
|
||||||
let itr = @interner::mk(str::hash, str::eq);
|
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);
|
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);
|
(name, ss, source, sess.chpos, sess.byte_pos);
|
||||||
sess.cm.files += [filemap];
|
sess.cm.files += [filemap];
|
||||||
let itr = @interner::mk(str::hash, str::eq);
|
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);
|
filemap, itr);
|
||||||
ret new_parser(sess, cfg, rdr, ftype);
|
ret new_parser(sess, cfg, rdr, ftype);
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,7 +58,7 @@ fn print_crate(cm: codemap, span_diagnostic: diagnostic::span_handler,
|
||||||
crate: @ast::crate, filename: str, in: io::reader,
|
crate: @ast::crate, filename: str, in: io::reader,
|
||||||
out: io::writer, ann: pp_ann) {
|
out: io::writer, ann: pp_ann) {
|
||||||
let boxes: [pp::breaks] = [];
|
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);
|
filename, in);
|
||||||
let s =
|
let s =
|
||||||
@{s: pp::mk_printer(out, default_columns),
|
@{s: pp::mk_printer(out, default_columns),
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue