aboutsummaryrefslogtreecommitdiff
path: root/src/comp/front/lexer.rs
diff options
context:
space:
mode:
authorGraydon Hoare <[email protected]>2010-09-29 17:22:07 -0700
committerGraydon Hoare <[email protected]>2010-09-29 17:22:13 -0700
commitb970563fe3f36853250f4cef65a8425431789e8b (patch)
treec09d7d39a46419c24ea88164ee047c10ebd7da39 /src/comp/front/lexer.rs
parentAllow tag recursion through vectors as well as boxes (diff)
downloadrust-b970563fe3f36853250f4cef65a8425431789e8b.tar.xz
rust-b970563fe3f36853250f4cef65a8425431789e8b.zip
Patchwork of attempted fixes to effect system and gc system; eventually give up and disable it entirely in the runtime. Will need extensive reworking.
Diffstat (limited to 'src/comp/front/lexer.rs')
-rw-r--r--src/comp/front/lexer.rs18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/comp/front/lexer.rs b/src/comp/front/lexer.rs
index d058db4a..f38f5024 100644
--- a/src/comp/front/lexer.rs
+++ b/src/comp/front/lexer.rs
@@ -9,8 +9,8 @@ state type reader = state obj {
fn is_eof() -> bool;
fn curr() -> char;
fn next() -> char;
- state fn bump();
- state fn mark();
+ io fn bump();
+ fn mark();
fn get_filename() -> str;
fn get_mark_pos() -> common.pos;
fn get_curr_pos() -> common.pos;
@@ -55,7 +55,7 @@ fn new_reader(stdio_reader rdr, str filename) -> reader
ret n;
}
- state fn bump() {
+ io fn bump() {
c = n;
if (c == (-1) as char) {
@@ -72,7 +72,7 @@ fn new_reader(stdio_reader rdr, str filename) -> reader
n = rdr.getc() as char;
}
- state fn mark() {
+ fn mark() {
mark_line = line;
mark_col = col;
}
@@ -243,14 +243,14 @@ fn is_whitespace(char c) -> bool {
ret c == ' ' || c == '\t' || c == '\r' || c == '\n';
}
-state fn consume_any_whitespace(reader rdr) {
+io fn consume_any_whitespace(reader rdr) {
while (is_whitespace(rdr.curr())) {
rdr.bump();
}
be consume_any_line_comment(rdr);
}
-state fn consume_any_line_comment(reader rdr) {
+io fn consume_any_line_comment(reader rdr) {
if (rdr.curr() == '/') {
alt (rdr.next()) {
case ('/') {
@@ -273,7 +273,7 @@ state fn consume_any_line_comment(reader rdr) {
}
-state fn consume_block_comment(reader rdr) {
+io fn consume_block_comment(reader rdr) {
let int level = 1;
while (level > 0) {
if (rdr.curr() == '/' && rdr.next() == '*') {
@@ -294,7 +294,7 @@ state fn consume_block_comment(reader rdr) {
be consume_any_whitespace(rdr);
}
-state fn next_token(reader rdr) -> token.token {
+io fn next_token(reader rdr) -> token.token {
auto accum_str = "";
auto accum_int = 0;
@@ -355,7 +355,7 @@ state fn next_token(reader rdr) -> token.token {
ret token.LIT_INT(accum_int);
}
- state fn binop(reader rdr, token.binop op) -> token.token {
+ io fn binop(reader rdr, token.binop op) -> token.token {
rdr.bump();
if (rdr.next() == '=') {
rdr.bump();