changeset 59:3e594725899a

- Issuing error when no digits were found in hex and binary numbers.
author aziz
date Fri, 29 Jun 2007 06:01:03 +0000
parents 50bb7fc9db44
children 32cc23bd217b
files trunk/src/Lexer.d trunk/src/Messages.d
diffstat 2 files changed, 10 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/trunk/src/Lexer.d	Fri Jun 29 05:47:00 2007 +0000
+++ b/trunk/src/Lexer.d	Fri Jun 29 06:01:03 2007 +0000
@@ -999,6 +999,9 @@
         ulong_ += *p - 'a' + 10;
     }
 
+    if (digits == 16)
+      error(MID.NoDigitsInHexNumber);
+
     switch (*p)
     {
     case '.':
@@ -1034,6 +1037,9 @@
       break;
     }
 
+    if (digits == 0)
+      error(MID.NoDigitsInBinNumber);
+
     if (digits > 64)
       error(MID.OverflowBinaryNumber);
     assert((p[-1] == '0' || p[-1] == '1' || p[-1] == '_') && !(*p == '0' || *p == '1' || *p == '_'));
--- a/trunk/src/Messages.d	Fri Jun 29 05:47:00 2007 +0000
+++ b/trunk/src/Messages.d	Fri Jun 29 06:01:03 2007 +0000
@@ -42,6 +42,8 @@
   OverflowHexNumber,
   OverflowBinaryNumber,
   OverflowOctalNumber,
+  NoDigitsInHexNumber,
+  NoDigitsInBinNumber,
 }
 
 string[] messages = [
@@ -80,4 +82,6 @@
   "overflow in hexadecimal number.",
   "overflow in binary number.",
   "overflow in octal number.",
+  "invalid hex number; at least one hex digit expected.",
+  "invalid binary number; at least one binary digit expected.",
 ];