about summary refs log tree commit diff
path: root/src/libsyntax/parse
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2012-11-14 17:03:07 -0800
committerBrian Anderson <banderson@mozilla.com>2012-11-14 21:56:55 -0800
commit3a9ccd53e559be6db3300eb161951fe75b1ff962 (patch)
tree61a317786587ad8020a34a1a4367efb4438a1afc /src/libsyntax/parse
parent8069d2f266b5e5f21d9cc846b0b8b8daa1812dcc (diff)
downloadrust-3a9ccd53e559be6db3300eb161951fe75b1ff962.tar.gz
rust-3a9ccd53e559be6db3300eb161951fe75b1ff962.zip
Factor out some position management code in the lexer
Diffstat (limited to 'src/libsyntax/parse')
-rw-r--r--src/libsyntax/parse/lexer.rs14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/libsyntax/parse/lexer.rs b/src/libsyntax/parse/lexer.rs
index dbeaff28625..178d772ecc6 100644
--- a/src/libsyntax/parse/lexer.rs
+++ b/src/libsyntax/parse/lexer.rs
@@ -45,18 +45,17 @@ fn new_low_level_string_reader(span_diagnostic: span_handler,
                                filemap: @codemap::FileMap,
                                itr: @token::ident_interner)
     -> string_reader {
+    // Force the initial reader bump to start on a fresh line
+    let initial_char = '\n';
     let r = @{span_diagnostic: span_diagnostic, src: filemap.src,
-              mut col: CharPos(0), mut pos: BytePos(0), mut curr: -1 as char,
+              mut col: CharPos(0), mut pos: BytePos(0),
+              mut curr: initial_char,
               mut chpos: filemap.start_pos.ch,
               filemap: filemap, interner: itr,
               /* dummy values; not read */
               mut peek_tok: token::EOF,
               mut peek_span: ast_util::dummy_sp()};
-    if r.pos.to_uint() < (*filemap.src).len() {
-        let next = str::char_range_at(*r.src, r.pos.to_uint());
-        r.pos = BytePos(next.next);
-        r.curr = next.ch;
-    }
+    bump(r);
     return r;
 }
 
@@ -142,9 +141,10 @@ fn bump(rdr: string_reader) {
         rdr.pos = BytePos(next.next);
         rdr.curr = next.ch;
     } else {
+        // XXX: What does this accomplish?
         if (rdr.curr != -1 as char) {
-            rdr.col += CharPos(1u);
             rdr.chpos += CharPos(1u);
+            rdr.col += CharPos(1u);
             rdr.curr = -1 as char;
         }
     }