diff trunk/src/Lexer.d @ 9:5d6968cc751e

- Parsing string and character literals now (rudimentary implementation.)
author aziz
date Sat, 23 Jun 2007 07:46:00 +0000
parents d4ba94a5a282
children 3ee65d6e39c9
line wrap: on
line diff
--- a/trunk/src/Lexer.d	Fri Jun 22 20:41:04 2007 +0000
+++ b/trunk/src/Lexer.d	Sat Jun 23 07:46:00 2007 +0000
@@ -151,6 +151,35 @@
         }
       }
 
+      if (c == '"')
+      {
+        do {
+          c = *++p;
+          if (c == 0)
+            throw new Error("unterminated string literal.");
+          if (c == '\\')
+            ++p;
+        } while (c != '"')
+        ++p;
+        t.type = TOK.String;
+        t.end = p;
+        return;
+      }
+
+      if (c == '\'')
+      {
+        do {
+          c = *++p;
+          if (c == 0)
+            throw new Error("unterminated character literal.");
+          if (c == '\\')
+            ++p;
+        } while (c != '\'')
+        ++p;
+        t.type = TOK.Character;
+        t.end = p;
+        return;
+      }
       c = *++p;
     }
   }