Mercurial > repos > rhope
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] |