annotate interp.rhope @ 189:d0e3a13c1bd9 default tip

Remove old calculator example
author Mike Pavone <pavone@retrodev.com>
date Fri, 07 Oct 2011 00:24:04 -0700
parents 0c7c5671fcd3
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
174
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
1
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
2 Import interplookup.rhope
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
3
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
4 _Get Line[string:out]
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
5 {
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
6 char <- Get Char[]
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
7 If[[char]=["\n"]]
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
8 {
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
9 out <- string
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
10 }{
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
11 out <- _Get Line[[string]Append[char]]
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
12 }
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
13 }
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
14
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
15 Get Line[:out]
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
16 {
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
17 out <- _Get Line[""]
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
18 }
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
19
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
20 Do Set Input[worker,val,num:out]
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
21 {
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
22 out <- [worker]Set Input[num, val]
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
23 }
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
24
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
25 Interp Loop[lookup:out]
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
26 {
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
27 [Get Line[]]Split[" "]
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
28 {
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
29 fname <- [~]Index[0]
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
30 args <- Map[Tail[~, 1], Int32[?]]
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
31 }
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
32
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
33 [lookup]Index[fname]
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
34 { worker <- Fold[Do Set Input[?], ~, args] }
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
35 { continue <- Print[["Could not find "]Append[fname]] }
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
36
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
37 continue <- Print[worker[]]
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
38
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
39 Val[continue]
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
40 { out <- Interp Loop[lookup] }
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
41 }
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
42
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
43 Main[:out]
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
44 {
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
45 out <- Interp Loop[Func Lookup[]]
0c7c5671fcd3 Start work on interpreter
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
46 }