changeset 20:d6adfbd7c513

- Added code for parsing braces.
author aziz
date Sat, 23 Jun 2007 22:31:02 +0000
parents f85832f9f24e
children c785c122e4e6
files trunk/src/Lexer.d trunk/src/Token.d trunk/src/main.d
diffstat 3 files changed, 37 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/trunk/src/Lexer.d	Sat Jun 23 22:08:04 2007 +0000
+++ b/trunk/src/Lexer.d	Sat Jun 23 22:31:02 2007 +0000
@@ -259,6 +259,32 @@
       if (c == '\'')
         return scanCharacterLiteral(t);
 
+      switch(c)
+      {
+      case '(':
+        t.type = TOK.LParen;
+        goto Lcommon;
+      case ')':
+        t.type = TOK.RParen;
+        goto Lcommon;
+      case '[':
+        t.type = TOK.LBracket;
+        goto Lcommon;
+      case ']':
+        t.type = TOK.RBracket;
+        goto Lcommon;
+      case '{':
+        t.type = TOK.LBrace;
+        goto Lcommon;
+      case '}':
+        t.type = TOK.RBrace;
+      Lcommon:
+        ++p;
+        t.end = p;
+        return;
+      default:
+      }
+
       if (c & 128 && isUniAlpha(decodeUTF()))
         goto Lidentifier;
       c = *++p;
--- a/trunk/src/Token.d	Sat Jun 23 22:08:04 2007 +0000
+++ b/trunk/src/Token.d	Sat Jun 23 22:31:02 2007 +0000
@@ -18,6 +18,13 @@
   Character,
   DivisionAssign,
   Number,
+/* Braces */
+  LParen,
+  RParen,
+  LBracket,
+  RBracket,
+  LBrace,
+  RBrace,
   EOF
 }
 
--- a/trunk/src/main.d	Sat Jun 23 22:08:04 2007 +0000
+++ b/trunk/src/main.d	Sat Jun 23 22:31:02 2007 +0000
@@ -58,6 +58,10 @@
       case TOK.Number:
         writef("<n>%s</n>", span);
       break;
+      case TOK.LParen, TOK.RParen, TOK.LBracket,
+           TOK.RBracket, TOK.LBrace, TOK.RBrace:
+        writef("<br>%s</br>", span);
+      break;
       default:
     }
     end = token.end;