Mercurial > repos > rhope
annotate boolean.rhope @ 183:24c6f8767190
Remove obsolete version of compiler that ran under the interpreter
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Wed, 27 Jul 2011 21:14:23 -0700 |
parents | ac5c2d78663f |
children |
rev | line source |
---|---|
68 | 1 |
2 Generate Boolean Methods[backend:out] | |
3 { | |
4 func,inval <- [[[[[backend]Create Function["If@Boolean",("in"),("yes","no"),"rhope"] | |
5 ]Set Input Type[Type Instance["Boolean"], 0] | |
6 ]Set Output Type[Type Instance["Boolean"], 0] | |
7 ]Set Output Type[Type Instance["Boolean"], 1] | |
8 ]Read Field["in", "Val"] | |
9 | |
10 ifyes <- [[[func]Instruction Stream | |
11 ]Move["in","yes"] | |
12 ]Set Null["no"] | |
13 | |
14 ifno <- [[[func]Instruction Stream | |
15 ]Move["in","no"] | |
16 ]Set Null["yes"] | |
17 | |
18 ffunc <- [[func]Do If[inval, ifyes] | |
19 ]Do If[NotCond[inval], ifno] | |
20 | |
21 out <- [backend]Store Function[ffunc] | |
22 } | |
23 | |
170
ac5c2d78663f
Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents:
68
diff
changeset
|
24 Compile Boolean Inline Check[func,op,type,in,outyes,outno:out,no inline] |
ac5c2d78663f
Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents:
68
diff
changeset
|
25 { |
ac5c2d78663f
Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents:
68
diff
changeset
|
26 ,no inline <- If[[op]=["If"]] |
ac5c2d78663f
Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents:
68
diff
changeset
|
27 { |
ac5c2d78663f
Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents:
68
diff
changeset
|
28 ,no inline <- If[[[type]Name >>]=["Boolean"]] |
ac5c2d78663f
Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents:
68
diff
changeset
|
29 { |
ac5c2d78663f
Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents:
68
diff
changeset
|
30 ifyes <- [[func]Instruction Stream |
ac5c2d78663f
Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents:
68
diff
changeset
|
31 ]Move[in, outyes] |
ac5c2d78663f
Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents:
68
diff
changeset
|
32 |
ac5c2d78663f
Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents:
68
diff
changeset
|
33 ifno <- [[func]Instruction Stream |
ac5c2d78663f
Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents:
68
diff
changeset
|
34 ]Move[in, outno] |
ac5c2d78663f
Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents:
68
diff
changeset
|
35 |
ac5c2d78663f
Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents:
68
diff
changeset
|
36 ,inval <- [func]Read Field[Cast[in, type] "Val"] |
ac5c2d78663f
Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents:
68
diff
changeset
|
37 { |
ac5c2d78663f
Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents:
68
diff
changeset
|
38 out <- [[~]Do If[inval, ifyes] |
ac5c2d78663f
Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents:
68
diff
changeset
|
39 ]Do If[NotCond[inval], ifno] |
ac5c2d78663f
Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents:
68
diff
changeset
|
40 } |
ac5c2d78663f
Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents:
68
diff
changeset
|
41 |
ac5c2d78663f
Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents:
68
diff
changeset
|
42 } |
ac5c2d78663f
Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents:
68
diff
changeset
|
43 } |
ac5c2d78663f
Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents:
68
diff
changeset
|
44 } |
ac5c2d78663f
Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents:
68
diff
changeset
|
45 |