-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathtoy-env.soar
More file actions
61 lines (54 loc) · 1.37 KB
/
toy-env.soar
File metadata and controls
61 lines (54 loc) · 1.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
######################################
# Initialization
#
sp {toy-env*propose*initialize-toy-env
(state <s> ^superstate nil
-^name)
-->
(<s> ^operator <o> +) #leaving '=' generates a tie impasse
(<o> ^name initialize-toy-env)}
sp {toy-env*apply*initialize-toy-env
(state <s> ^operator.name initialize-toy-env)
(state <s> ^io <io>)
(<io> ^output-link <output-link>)
-->
(<s> ^name toy-env)
}
######################################
# Add inputs
#
sp {toy-env*propose*addup
(state <s> ^io <io>)
(<io> ^input-link <input-link>)
(<input-link> ^a <aval>)
(<input-link> ^b <bval>)
-->
(<s> ^operator <o> =)
(write (crlf)|===> Soar input: | <aval> | | <bval> (crlf))
}
sp {toy-env*apply*addup
(state <s> ^io <io>)
(<io> ^output-link <onode>)
# (<onode> ^result <currentresult>)
(<io> ^input-link <inode>) #(<io> ^input-link <input-link>)
(<inode> ^a <aval>)
(<inode> ^b <bval>)
-->
(<onode> ^result (+ <aval> <bval>))
(write (crlf)|===> Soar output: | (+ <aval> <bval>) (crlf))
}
######################################
# WAIT OPERATOR
# Propose wait for a state no-change
#
sp {top-ps*propose*wait
"Propose wait if there is a state no-change."
:default
(state <s> ^attribute state
^choices none
-^superstate.name evaluate-operator
-^operator.name wait)
-->
(<s> ^operator <o> + <)
(<o> ^name wait)
}