comparison 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
comparison
equal deleted inserted replaced
49:3e20ed8959c4 50:689fb73e7612
925 Get Value@Named Pipe Node[node:out] 925 Get Value@Named Pipe Node[node:out]
926 { 926 {
927 out <- node 927 out <- node
928 } 928 }
929 929
930 Blueprint Machine Integer
931 {
932 Value
933 Size
934 Signed?
935 }
936
937 Machine Integer[value,size,signed?:out]
938 {
939 out <- [[[Build["Machine Integer"]]Value <<[value]]Size <<[size]]Signed? <<[signed?]
940 }
941
930 Parse Number[string,params:value,after] 942 Parse Number[string,params:value,after]
931 { 943 {
932 delims <- [[[[(" ","\t","\n","\r")]Append[[params]List Delim >>]]Append[[params]Block Begin >>]]Append[[params]Arg End >>]]Append[[params]List End >>] 944 delims <- [[[[(" ","\t","\n","\r")]Append[[params]List Delim >>]]Append[[params]Block Begin >>]]Append[[params]Arg End >>]]Append[[params]List End >>]
933 after delim,valstring <- [string]Get Comment DString[delims, params] {} {} 945 after delim,valstring <- [string]Get Comment DString[delims, params] {} {}
934 { 946 {
943 }{ 955 }{
944 If[[valstring]Contains["."]] 956 If[[valstring]Contains["."]]
945 { 957 {
946 value <- <String@Real Number[valstring] 958 value <- <String@Real Number[valstring]
947 }{ 959 }{
948 value <- <String@Whole Number[valstring] 960 size, val, type <- [valstring]Get DString[("i","u")]
961 {
962 value <- Machine Integer[<String@Whole Number[val], <String@Whole Number[size], [type]=["i"]]
963 } {} {} {
964 value <- <String@Whole Number[valstring]
965 }
949 } 966 }
950 } 967 }
951 } 968 }
952 969
953 Parse Params@Type Instance[literal,params,string:out,after] 970 Parse Params@Type Instance[literal,params,string:out,after]