diff options
| author | Brian Anderson <banderson@mozilla.com> | 2012-04-15 04:02:25 -0700 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2012-04-15 04:02:25 -0700 |
| commit | 4b4f0643157f6eda24ebaad3bdcf06ef2a3cad93 (patch) | |
| tree | c351a436863e8b2f670f545b4ab2c48d2a6c19cd /src/librustsyntax/parse | |
| parent | 2319c2d1ba81cf85aaadd809afc1367f7b217757 (diff) | |
| download | rust-4b4f0643157f6eda24ebaad3bdcf06ef2a3cad93.tar.gz rust-4b4f0643157f6eda24ebaad3bdcf06ef2a3cad93.zip | |
syntax: lexer doesn't need to store the src length
Diffstat (limited to 'src/librustsyntax/parse')
| -rw-r--r-- | src/librustsyntax/parse/lexer.rs | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/src/librustsyntax/parse/lexer.rs b/src/librustsyntax/parse/lexer.rs index 0414e11ab31..d5c1c776c0e 100644 --- a/src/librustsyntax/parse/lexer.rs +++ b/src/librustsyntax/parse/lexer.rs @@ -7,7 +7,6 @@ export reader, new_reader, next_token, is_whitespace; type reader = @{ span_diagnostic: diagnostic::span_handler, src: @str, - len: uint, mut col: uint, mut pos: uint, mut curr: char, @@ -25,12 +24,12 @@ impl reader for reader { ret str::slice(*self.src, start - 1u, self.pos - 1u); } fn next() -> char { - if self.pos < self.len { + if self.pos < (*self.src).len() { ret str::char_at(*self.src, self.pos); } else { ret -1 as char; } } fn bump() { - if self.pos < self.len { + if self.pos < (*self.src).len() { self.col += 1u; self.chpos += 1u; if self.curr == '\n' { @@ -59,12 +58,11 @@ impl reader for reader { fn new_reader(span_diagnostic: diagnostic::span_handler, filemap: codemap::filemap, itr: @interner::interner<str>) -> reader { - let r = @{span_diagnostic: span_diagnostic, - src: filemap.src, len: str::len(*filemap.src), + let r = @{span_diagnostic: span_diagnostic, src: filemap.src, mut col: 0u, mut pos: 0u, mut curr: -1 as char, mut chpos: filemap.start_pos.ch, mut strs: [], filemap: filemap, interner: itr}; - if r.pos < r.len { + if r.pos < (*filemap.src).len() { let next = str::char_range_at(*r.src, r.pos); r.pos = next.next; r.curr = next.ch; |
