about summary refs log tree commit diff
path: root/src/librustsyntax/parse/parser.rs
diff options
context:
space:
mode:
authorNiko Matsakis <niko@alum.mit.edu>2012-05-10 07:24:56 -0700
committerNiko Matsakis <niko@alum.mit.edu>2012-05-18 20:00:50 -0700
commit0f969da8824c4a2a25f67a1576907e7de985d97c (patch)
treec967d51eaa10d6de2219c0d70bb94f8ee13cc653 /src/librustsyntax/parse/parser.rs
parentcf6ad6d62ab6846aa389684a220bfd8ed56570f3 (diff)
downloadrust-0f969da8824c4a2a25f67a1576907e7de985d97c.tar.gz
rust-0f969da8824c4a2a25f67a1576907e7de985d97c.zip
port some code to use dvec
Diffstat (limited to 'src/librustsyntax/parse/parser.rs')
-rw-r--r--src/librustsyntax/parse/parser.rs11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/librustsyntax/parse/parser.rs b/src/librustsyntax/parse/parser.rs
index eb25660b45f..48d31a8c35c 100644
--- a/src/librustsyntax/parse/parser.rs
+++ b/src/librustsyntax/parse/parser.rs
@@ -13,6 +13,7 @@ import attr::{parse_outer_attrs_or_ext,
               parse_outer_attributes,
               parse_optional_meta};
 import common::*;
+import dvec::{dvec, extensions};
 
 export expect;
 export file_type;
@@ -54,7 +55,7 @@ type parser = @{
     mut token: token::token,
     mut span: span,
     mut last_span: span,
-    mut buffer: [{tok: token::token, span: span}],
+    buffer: dvec<{tok: token::token, span: span}>,
     mut restriction: restriction,
     reader: reader,
     keywords: hashmap<str, ()>,
@@ -64,12 +65,12 @@ type parser = @{
 impl parser for parser {
     fn bump() {
         self.last_span = self.span;
-        if vec::len(self.buffer) == 0u {
+        if self.buffer.len() == 0u {
             let next = lexer::next_token(self.reader);
             self.token = next.tok;
             self.span = mk_sp(next.chpos, self.reader.chpos);
         } else {
-            let next = vec::shift(self.buffer);
+            let next = self.buffer.shift();
             self.token = next.tok;
             self.span = next.span;
         }
@@ -79,10 +80,10 @@ impl parser for parser {
         self.span = mk_sp(lo, hi);
     }
     fn look_ahead(distance: uint) -> token::token {
-        while vec::len(self.buffer) < distance {
+        while self.buffer.len() < distance {
             let next = lexer::next_token(self.reader);
             let sp = mk_sp(next.chpos, self.reader.chpos);
-            vec::push(self.buffer, {tok: next.tok, span: sp});
+            self.buffer.push({tok: next.tok, span: sp});
         }
         ret self.buffer[distance - 1u].tok;
     }