diff parser_old.rhope @ 50:689fb73e7612

Add support for various integer literals and add support for raw pointers to objects and raw pointers to arrays in the FFI
author Mike Pavone <pavone@retrodev.com>
date Fri, 16 Apr 2010 01:57:04 -0400
parents 3e20ed8959c4
children 079200bc3e75
line wrap: on
line diff
--- a/parser_old.rhope	Thu Apr 08 01:02:18 2010 -0400
+++ b/parser_old.rhope	Fri Apr 16 01:57:04 2010 -0400
@@ -927,6 +927,18 @@
 	out <- node
 }
 
+Blueprint Machine Integer
+{
+	Value
+	Size
+	Signed?
+}
+
+Machine Integer[value,size,signed?:out]
+{
+	out <- [[[Build["Machine Integer"]]Value <<[value]]Size <<[size]]Signed? <<[signed?]
+}
+
 Parse Number[string,params:value,after]
 {
 	delims <- [[[[(" ","\t","\n","\r")]Append[[params]List Delim >>]]Append[[params]Block Begin >>]]Append[[params]Arg End >>]]Append[[params]List End >>]
@@ -945,7 +957,12 @@
 		{
 			value <- <String@Real Number[valstring]
 		}{
-			value <- <String@Whole Number[valstring]
+			size, val, type <- [valstring]Get DString[("i","u")]
+			{
+				value <- Machine Integer[<String@Whole Number[val], <String@Whole Number[size], [type]=["i"]]
+			} {} {} {
+				value <- <String@Whole Number[valstring]
+			}
 		}
 	}
 }