From c4df39609c9c09c450dd8fe5905a8e6fbeb5f181 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Tue, 22 Feb 2011 18:58:07 -0500 Subject: Rename std._io to std.io since 'io' is no longer a keyword --- src/comp/front/lexer.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/comp/front/lexer.rs') diff --git a/src/comp/front/lexer.rs b/src/comp/front/lexer.rs index a45b1113..481fc5dd 100644 --- a/src/comp/front/lexer.rs +++ b/src/comp/front/lexer.rs @@ -1,4 +1,4 @@ -import std._io.stdio_reader; +import std.io.stdio_reader; import std._str; import std.map; import std.map.hashmap; -- cgit v1.2.3 From eac75b76486ec54f677b2460f09635380437b125 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Tue, 22 Feb 2011 20:23:38 -0500 Subject: Teach rustc about reserved keywords --- src/comp/front/lexer.rs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'src/comp/front/lexer.rs') diff --git a/src/comp/front/lexer.rs b/src/comp/front/lexer.rs index 481fc5dd..99e9217f 100644 --- a/src/comp/front/lexer.rs +++ b/src/comp/front/lexer.rs @@ -90,7 +90,6 @@ fn new_reader(stdio_reader rdr, str filename) -> reader } auto keywords = new_str_hash[token.token](); - auto reserved = new_str_hash[()](); keywords.insert("mod", token.MOD); keywords.insert("use", token.USE); @@ -191,6 +190,16 @@ fn new_reader(stdio_reader rdr, str filename) -> reader keywords.insert("f32", token.MACH(common.ty_f32)); keywords.insert("f64", token.MACH(common.ty_f64)); + auto reserved = new_str_hash[()](); + + reserved.insert("f16", ()); // IEEE 754-2008 'binary16' interchange fmt + reserved.insert("f80", ()); // IEEE 754-1985 'extended' + reserved.insert("f128", ()); // IEEE 754-2008 'binary128' + reserved.insert("m32", ()); // IEEE 754-2008 'decimal32' + reserved.insert("m64", ()); // IEEE 754-2008 'decimal64' + reserved.insert("m128", ()); // IEEE 754-2008 'decimal128' + reserved.insert("dec", ()); // One of m32, m64, m128 + ret reader(rdr, filename, rdr.getc() as char, rdr.getc() as char, 1u, 0u, 1u, 0u, keywords, reserved); } @@ -425,6 +434,12 @@ impure fn next_token(reader rdr) -> token.token { ret kwds.get(accum_str); } + auto rsvd = rdr.get_reserved(); + if (rsvd.contains_key(accum_str)) { + log "reserved keyword"; + fail; + } + ret token.IDENT(accum_str); } -- cgit v1.2.3 From d97c800e3179604db82e35bff682ea1ed6ec3909 Mon Sep 17 00:00:00 2001 From: Graydon Hoare Date: Sat, 5 Mar 2011 20:05:02 +0000 Subject: Make ret and fail stmts have 0 out-edges, Closes #250. --- src/comp/front/lexer.rs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'src/comp/front/lexer.rs') diff --git a/src/comp/front/lexer.rs b/src/comp/front/lexer.rs index 99e9217f..0e15e3d8 100644 --- a/src/comp/front/lexer.rs +++ b/src/comp/front/lexer.rs @@ -665,12 +665,9 @@ impure fn next_token(reader rdr) -> token.token { case ('%') { ret binop(rdr, token.PERCENT); } - } - log "lexer stopping at "; - log c; - ret token.EOF; + fail; } -- cgit v1.2.3