From 7fef288eefda36ca76eb46c6091546ce55ac3b42 Mon Sep 17 00:00:00 2001 From: Sida Wang Date: Mon, 16 Jan 2017 20:37:40 -0800 Subject: [PATCH] reorg, clean up, and read in logs --- run | 14 +- shrdlurn/README.md | 3 + shrdlurn/actionLDCS.grammar | 195 -------------- shrdlurn/basic-input.log | 64 ----- shrdlurn/commandInputs/sidaw.log.json | 238 ++++++++++++++++++ shrdlurn/commandInputs/turk-01-04-2017.lisp | 124 +++++++++ shrdlurn/evenricher.grammar | 200 --------------- shrdlurn/flatworld.grammar | 2 - shrdlurn/magnetic.grammar | 160 ------------ shrdlurn/objects.grammar | 1 - shrdlurn/richer.grammar | 107 -------- shrdlurn/runFloat | 28 --- shrdlurn/runRich | 36 --- shrdlurn/sidaw.lisp | 7 - shrdlurn/stacks.grammar | 72 ------ src/edu/stanford/nlp/sempre/Formulas.java | 2 +- src/edu/stanford/nlp/sempre/ILUtils.java | 24 +- src/edu/stanford/nlp/sempre/Master.java | 33 ++- .../stanford/nlp/sempre/TypeInference.java | 2 +- .../{actions => }/ActionExecutor.java | 9 +- .../{actions => }/ActionExecutorTest.java | 2 +- .../{actions => }/ActionFeatureComputer.java | 2 +- .../{actions => }/ActionFormula.java | 2 +- .../{actions => }/ActionLanguageAnalyzer.java | 2 +- .../BeamFloatingFeatureComputer.java | 2 +- .../interactive/{actions => }/Block.java | 2 +- .../nlp/sempre/interactive/BlockFn.java | 1 - .../{actions => }/BlocksParsingTest.java | 2 +- .../{actions => }/BlocksWorld.java | 2 +- .../interactive/{actions => }/FlatWorld.java | 2 +- .../sempre/interactive/GrammarInducer.java | 1 - .../{actions => }/GrammarInducerTest.java | 2 +- .../interactive/{actions => }/Item.java | 2 +- 33 files changed, 425 insertions(+), 920 deletions(-) delete mode 100644 shrdlurn/actionLDCS.grammar delete mode 100644 shrdlurn/basic-input.log create mode 100644 shrdlurn/commandInputs/sidaw.log.json create mode 100644 shrdlurn/commandInputs/turk-01-04-2017.lisp delete mode 100644 shrdlurn/evenricher.grammar delete mode 100644 shrdlurn/magnetic.grammar delete mode 120000 shrdlurn/objects.grammar delete mode 100644 shrdlurn/richer.grammar delete mode 100755 shrdlurn/runFloat delete mode 100755 shrdlurn/runRich delete mode 100644 shrdlurn/sidaw.lisp delete mode 100644 shrdlurn/stacks.grammar rename src/edu/stanford/nlp/sempre/interactive/{actions => }/ActionExecutor.java (98%) rename src/edu/stanford/nlp/sempre/interactive/{actions => }/ActionExecutorTest.java (99%) rename src/edu/stanford/nlp/sempre/interactive/{actions => }/ActionFeatureComputer.java (98%) rename src/edu/stanford/nlp/sempre/interactive/{actions => }/ActionFormula.java (98%) rename src/edu/stanford/nlp/sempre/interactive/{actions => }/ActionLanguageAnalyzer.java (98%) rename src/edu/stanford/nlp/sempre/interactive/{actions => }/BeamFloatingFeatureComputer.java (99%) rename src/edu/stanford/nlp/sempre/interactive/{actions => }/Block.java (98%) rename src/edu/stanford/nlp/sempre/interactive/{actions => }/BlocksParsingTest.java (99%) rename src/edu/stanford/nlp/sempre/interactive/{actions => }/BlocksWorld.java (99%) rename src/edu/stanford/nlp/sempre/interactive/{actions => }/FlatWorld.java (97%) rename src/edu/stanford/nlp/sempre/interactive/{actions => }/GrammarInducerTest.java (99%) rename src/edu/stanford/nlp/sempre/interactive/{actions => }/Item.java (86%) diff --git a/run b/run index 62f69fa..20ed7f0 100755 --- a/run +++ b/run @@ -986,8 +986,8 @@ addMode('interactive', 'interactive semantic parsing in blocks', lambda { |e| l( 'edu.stanford.nlp.sempre.Main', figOpts, - o('Executor', 'interactive.actions.ActionExecutor'), - o('LanguageAnalyzer', 'interactive.actions.ActionLanguageAnalyzer'), + o('Executor', 'interactive.ActionExecutor'), + o('LanguageAnalyzer', 'interactive.ActionLanguageAnalyzer'), o('ActionExecutor.convertNumberValues', true), o('ActionExecutor.printStackTrace', true), o('BlocksWorld.maxBlocks', 200), @@ -1014,7 +1014,7 @@ o('Parser.beamSize', 10), o('Params.initStepSize', 0.1), o('Params.adaptiveStepSize', true), -o('FeatureExtractor.featureComputers', 'interactive.actions.ActionFeatureComputer'), +o('FeatureExtractor.featureComputers', 'interactive.ActionFeatureComputer'), o('FeatureExtractor.featureDomains', 'rule', 'stats'), lambda { |e| system 'mkdir -p ./int-output/examples/'}, @@ -1023,12 +1023,12 @@ lambda { |e| system 'mkdir -p ./int-output/grammar/'}, lambda { |e| system 'mkdir -p ./int-output/json/'}, o('Master.newExamplesPath', './int-output/examples/'), -# o('Master.logPath', './int-output/logs/'), +o('Master.logPath', './int-output/logs/'), o('Master.newGrammarPath', './int-output/grammar/'), o('ILUtils.JSONLogPath', './int-output/json/'), -o('ILUtils.newInteractiveCommandLog', './int-output/interactive.log'), -o('ILUtils.interactiveCommandLog', './shrdlurn/basic-input.log'), +o('ILUtils.commandLog', './int-output/interactive.log'), +o('ILUtils.commandInputs', './shrdlurn/commandInputs/*.json'), o('Master.onlineLearnExamples', true), o('Master.independentSessions', false), @@ -1036,7 +1036,7 @@ o('Master.independentSessions', false), o('Master.onlyInteractive', true), o('server', true), -o('Server.numThreads', 8), +o('Server.numThreads', 16), o('Server.maxCandidates', 50), o('Derivation.showTypes', false), nil) }) diff --git a/shrdlurn/README.md b/shrdlurn/README.md index e0eb045..881eb2c 100644 --- a/shrdlurn/README.md +++ b/shrdlurn/README.md @@ -1,2 +1,5 @@ Run: ./run @mode=interactive -Server.port 8410 Test command : ./run @mode=test @class=interactive.actions.ActionExecutorTest -verbose 5 +Extracting query from sempre log: +awk -F"\t" '{sub("query=","",$5); print $5}' +cat ~/git/sidaw_acl2015/int-output/logs/_*.log | awk -F"\t" '{sub("query=","",$5); if (index($5, "(:def")!=0 ) print $5;}' diff --git a/shrdlurn/actionLDCS.grammar b/shrdlurn/actionLDCS.grammar deleted file mode 100644 index a8b9e83..0000000 --- a/shrdlurn/actionLDCS.grammar +++ /dev/null @@ -1,195 +0,0 @@ -# contextful top level functions -# command: -(def @root context:root) -(def @put put) -(def @base base) - -# basic actions -(def @add add) -(def @remove remove) -(def @move move) -(def @name name) - -# action combinators -(def @seq seq) -(def @repeat repeat) -(def @scope scope) - -# binary set operations -(def @setopv setops) -(def @setops setops) -(def @filter filter) - -# get property -(def @ofv ofv) -(def @ofs ofs) -(def @has has) -(def @val val) -(def @single single) - -# numbers -(def @compare compare) -(def @constant constant) -(def @arith arith) - -# set function -(def @veryx veryx) - -# select -(def @name name) -(def @named named) - -# sugar -(def @selected marked) -(def @select mark) -(def @base base) - -# special values -(def @sets sets) # constant sets -(def @setf setf) # set functions -(def @reset reset) # reset the world - -# typed lambdas -# Action a, CubesSet s, CubePredicate p, CubeNumber n, CubeProperty r, Direction d, Color c $CubeNumberProp q - -# This grammar should have Rule.defaultIsFloating false -# utilities -(rule $ROOT (reset) (ConstantFn (call @reset (string default))) (anchored 1)) -(rule $ROOT (reset $TOKEN) (lambda n (call @reset (var n))) (anchored 1)) - -(rule $Action (put $Color $Number $Number) (lambda c (lambda x (lambda y (call @put (var c) (var x) (var y))))) (anchored 1)) -(rule $Action (base $Number $Number) (lambda x (lambda y (call @base (var x) (var y)))) (anchored 1)) - -(rule $ROOT (_contextcmd) (ConstantFn (string "(context (graph NaiveKnowledgeGraph ((string [[1,3,1,\"Green\",[]],[2,2,1,\"Blue\",[]],[1,3,2,\"Red\",[]]]) (name b) (name c))))")) (anchored 1)) - -####### Start of the actual grammar -(rule $ROOT ($ActionSeq) (lambda a (call @root (var a))) (anchored 1)) # process for better -(rule $ROOT ($SetCube2) (lambda a (call @root (call @select (var a)))) (anchored 1)) # process for better - -(rule $Action ({ $ActionSeq }) (lambda a (call @scope (var a))) (anchored 1)) # scope variables inside this - -# control flow -(rule $ActionSeq ($ActionSeq ; $Action) (lambda a1 (lambda a2 (call @seq (var a1) (var a2)))) (anchored 1)) -(rule $Action (repeat $NumberSeq [ $ActionSeq ] ) (lambda n (lambda a (call @repeat (var n) (var a)))) (anchored 1)) - -(rule $ActionSeq ($Action) (IdentityFn) (anchored 1)) -(rule $Action ([ $ActionSeq ]) (IdentityFn) (anchored 1)) - -# basic actions, faking local scope -(rule $Action (for $SetCube2 remove) (lambda s (call @remove (var s))) (anchored 1)) -(rule $Action (for $SetCube2 add $Color) (lambda s (lambda c (call @add (var c) (string top) (var s)))) (anchored 1)) -(rule $Action (for $SetCube2 add $Color $Direction) (lambda s (lambda c (lambda d (call @add (var c) (var d) (var s))))) (anchored 1)) -(rule $Action (for $SetCube2 move $Direction) (lambda s (lambda d (call @move (var d) (var s)))) (anchored 1)) -(rule $Action (for $SetCube2 change $Rel to $SetValue) (lambda s (lambda r (lambda c (call @change (var r) (var v) (var s))))) (anchored 1)) - -# basic actions with implicit arguments -(rule $Action (remove) (ConstantFn (call @remove (call @selected))) (anchored 1)) -(rule $Action (add $Color) (lambda c (call @add (var c) (string top) (call @selected))) (anchored 1)) -(rule $Action (add $Color $Direction) (lambda c (lambda d (call @add (var c) (var d) (call @selected)))) (anchored 1)) -(rule $Action (move $Direction) (lambda d (call @move (var d) (call @selected))) (anchored 1)) -(rule $Action (change $Rel to $SetValue) (lambda r (lambda v (call @change (var r) (var v) (call @selected)))) (anchored 1)) - -# global scope -(rule $Action (select $SetCube2) (lambda s (call @select (var s))) (anchored 1)) - -# names -(for @varname (x y z) -(rule $Action (name $SetCube2 @varname) (lambda s (call @name (var s) (string @varname))) (anchored 1)) -(rule $SetCube (@varname) (ConstantFn (call @named (string @varname))) (anchored 1)) -) - -(rule $SetCube (selected) (ConstantFn (call @selected)) (anchored 1)) -(rule $SetCube (this) (ConstantFn (call @selected)) (anchored 1)) -(rule $SetCube (base) (ConstantFn (call @base)) (anchored 1)) - -########### basic sets -(rule $SetCube (all) (ConstantFn (call @sets (string all))) (anchored 1)) - -########### basic set operations -# just use or and filter, which does and - -(for @op (or and except) -(rule $SetCube2 ($SetCube2 @op $SetCube) (lambda s1 (lambda s2 - (call @setopv (string @op) (var s1) (var s2)))) (anchored 1)) -(rule $SetValue ($SetValue @op $SetValue) (lambda s1 (lambda s2 - (call @setops (string @op) (var s1) (var s2)))) (anchored 1)) -) - -(rule $SetCube2 ($SetCube) (IdentityFn) (anchored 1)) -(rule $SetCube ([ $SetCube2 ]) (IdentityFn) (anchored 1)) - -########### cube to cube relations -(rule $SetCube ($Direction of $SetCube2) (lambda d (lambda s - (call @ofs (var d) (var s)))) (anchored 1)) - -(rule $SetCube (very $Direction of $SetCube2) (lambda d (lambda s - (call @veryx (var d) (var s)))) (anchored 1)) - -############# Set of values, like color of, name of -(rule $SetValue ($Rel of $SetCube2) (lambda r (lambda s - (call @ofv (var r) (var s)))) (anchored 1)) - -(rule $SetCube (has $Rel $SetValue) (lambda r (lambda s - (call @has (var r) (var s)))) (anchored 1)) - -(for @property (col row height color name age) - (rule $Rel (@property) (ConstantFn (string @property)) (anchored 1)) -) -(rule $SetValue ($Color) (lambda c (call @val (var c))) (anchored 1)) -(rule $SetValue ($Number) (lambda n (call @single (var n))) (anchored 1)) - -########### arithmetics and etc - -(for @num (0 1 2 3 4 5 6 7 8 9) -(rule $Number (@num) (ConstantFn (number @num)) (anchored 1)) -) -(rule $Number (many) (ConstantFn (number 10 infty)) (anchored 1)) - -(for @op (+ - %) -(rule $NumberSeq ($NumberSeq @op $Number) (lambda n1 (lambda n2 -(call @arith (string @op) (var n1) (var n2)))) (anchored 1)) -) -(rule $Number ([ $NumberSeq ]) (IdentityFn) (anchored 1)) -(rule $NumberSeq ( $Number ) (IdentityFn) (anchored 1)) -(for @rel (> >= = < <= ==) -(rule $Pred ($NumberSeq @rel $NumberSeq) (lambda n1 (lambda n2 -(call @compare (string @rel) (var n1) (var n2)))) (anchored 1)) -) -####### Constants -(for @dir (top bot left right front back) -(rule $Direction (@dir) (ConstantFn (string @dir)) (anchored 1)) -) - -(for @varname (x y z) -(rule $Name (@varname) (ConstantFn (string @varname)) (anchored 1)) -) - -(rule $Color (red) (ConstantFn (string red)) (anchored 1)) -(rule $Color (orange) (ConstantFn (string orange)) (anchored 1)) -(rule $Color (yellow) (ConstantFn (string yellow)) (anchored 1)) -(rule $Color (green) (ConstantFn (string green)) (anchored 1)) -(rule $Color (blue) (ConstantFn (string blue)) (anchored 1)) -(rule $Color (white) (ConstantFn (string white)) (anchored 1)) -(rule $Color (black) (ConstantFn (string black)) (anchored 1)) -(rule $Color (pink) (ConstantFn (string pink)) (anchored 1)) -(rule $Color (brown) (ConstantFn (string brown)) (anchored 1)) - -(rule $Keyword (add) (ConstantFn (string keyword))) -(rule $Keyword (remove) (ConstantFn (string keyword))) -(rule $Keyword (repeat) (ConstantFn (string keyword))) -(rule $Keyword (has) (ConstantFn (string keyword))) -(rule $Keyword (of) (ConstantFn (string keyword))) -(rule $Keyword (col) (ConstantFn (string keyword))) -(rule $Keyword (row) (ConstantFn (string keyword))) -(rule $Keyword (height) (ConstantFn (string keyword))) -(rule $Keyword (color) (ConstantFn (string keyword))) -(rule $Keyword (top) (ConstantFn (string keyword))) -(rule $Keyword (bot) (ConstantFn (string keyword))) -(rule $Keyword (left) (ConstantFn (string keyword))) -(rule $Keyword (right) (ConstantFn (string keyword))) -(rule $Keyword (front) (ConstantFn (string keyword))) -(rule $Keyword (back) (ConstantFn (string keyword))) -(rule $Keyword (and) (ConstantFn (string keyword))) -(rule $Keyword (or) (ConstantFn (string keyword))) - - diff --git a/shrdlurn/basic-input.log b/shrdlurn/basic-input.log deleted file mode 100644 index 35f94ec..0000000 --- a/shrdlurn/basic-input.log +++ /dev/null @@ -1,64 +0,0 @@ -{"time":"2017-01-15T23:20:47.151","id":"sidaw","log":"(:context [[0,0,0,\\\"Fake\\\",[\\\"S\\\"]]])"} -{"time":"2017-01-15T23:20:47.211","id":"sidaw","log":"(:q \"add red\")"} -{"time":"2017-01-15T23:20:47.528","id":"sidaw","log":"(:accept \"add red\" \"(: add red here)\")"} -{"time":"2017-01-15T23:20:47.548","id":"sidaw","log":"(:autocomplete \"\")"} -{"time":"2017-01-15T23:20:52.539","id":"sidaw","log":"(:context [[0,0,0,\\\"Red\\\",[\\\"S\\\"]]])"} -{"time":"2017-01-15T23:20:52.548","id":"sidaw","log":"(:q \"add red top\")"} -{"time":"2017-01-15T23:20:52.884","id":"sidaw","log":"(:accept \"add red top\" \"(: add red top)\")"} -{"time":"2017-01-15T23:20:52.890","id":"sidaw","log":"(:autocomplete \"\")"} -{"time":"2017-01-15T23:20:54.360","id":"sidaw","log":"(:context [[0,0,0,\\\"Red\\\",[\\\"S\\\"]],[0,0,1,\\\"Red\\\",[]]])"} -{"time":"2017-01-15T23:20:54.369","id":"sidaw","log":"(:q \"select red\")"} -{"time":"2017-01-15T23:20:57.765","id":"sidaw","log":"(:context [[0,0,0,\\\"Red\\\",[\\\"S\\\"]],[0,0,1,\\\"Red\\\",[]]])"} -{"time":"2017-01-15T23:20:57.778","id":"sidaw","log":"(:q \"select has color red\")"} -{"time":"2017-01-15T23:20:58.068","id":"sidaw","log":"(:accept \"select has color red\" \"(:for (color red) (: select))\")"} -{"time":"2017-01-15T23:20:58.087","id":"sidaw","log":"(:autocomplete \"\")"} -{"time":"2017-01-15T23:20:59.982","id":"sidaw","log":"(:def_ret \"select red\" \"[[\\\"select has color red\\\",\\\"(:for (color red) (: select))\\\"]]\")"} -{"time":"2017-01-15T23:21:08.531","id":"sidaw","log":"(:context [[0,0,0,\\\"Red\\\",[\\\"S\\\"]],[0,0,1,\\\"Red\\\",[\\\"S\\\"]]])"} -{"time":"2017-01-15T23:21:08.539","id":"sidaw","log":"(:q \"select origin\")"} -{"time":"2017-01-15T23:21:09.366","id":"sidaw","log":"(:accept \"select origin\" \"(:for (call origin) (: select))\")"} -{"time":"2017-01-15T23:21:09.371","id":"sidaw","log":"(:autocomplete \"\")"} -{"time":"2017-01-15T23:21:15.471","id":"sidaw","log":"(:context [[0,0,0,\\\"Red\\\",[\\\"S\\\"]],[0,0,1,\\\"Red\\\",[]]])"} -{"time":"2017-01-15T23:21:15.494","id":"sidaw","log":"(:q \"yellow stick 5\")"} -{"time":"2017-01-15T23:21:32.361","id":"sidaw","log":"(:context [[0,0,0,\\\"Red\\\",[\\\"S\\\"]],[0,0,1,\\\"Red\\\",[]]])"} -{"time":"2017-01-15T23:21:32.374","id":"sidaw","log":"(:q \"add yellow top 4 times\")"} -{"time":"2017-01-15T23:21:36.602","id":"sidaw","log":"(:context [[0,0,0,\\\"Red\\\",[\\\"S\\\"]],[0,0,1,\\\"Red\\\",[]]])"} -{"time":"2017-01-15T23:21:36.620","id":"sidaw","log":"(:q \"repeat 4 [ add yellow top]\")"} -{"time":"2017-01-15T23:21:37.173","id":"sidaw","log":"(:accept \"repeat 4 [ add yellow top]\" \"(:loop (number 4) (: add yellow top))\")"} -{"time":"2017-01-15T23:21:37.183","id":"sidaw","log":"(:autocomplete \"\")"} -{"time":"2017-01-15T23:21:39.608","id":"sidaw","log":"(:def_ret \"add yellow top 4 times\" \"[[\\\"repeat 4 [ add yellow top]\\\",\\\"(:loop (number 4) (: add yellow top))\\\"]]\")"} -{"time":"2017-01-15T23:21:43.980","id":"sidaw","log":"(:context [[0,0,0,\\\"Red\\\",[\\\"S\\\"]],[0,0,1,\\\"Red\\\",[]],[0,0,2,\\\"Yellow\\\",[]],[0,0,3,\\\"Yellow\\\",[]],[0,0,4,\\\"Yellow\\\",[]],[0,0,5,\\\"Yellow\\\",[]]])"} -{"time":"2017-01-15T23:21:43.993","id":"sidaw","log":"(:q \"add red 4 times\")"} -{"time":"2017-01-15T23:21:46.945","id":"sidaw","log":"(:context [[0,0,0,\\\"Red\\\",[\\\"S\\\"]],[0,0,1,\\\"Red\\\",[]],[0,0,2,\\\"Yellow\\\",[]],[0,0,3,\\\"Yellow\\\",[]],[0,0,4,\\\"Yellow\\\",[]],[0,0,5,\\\"Yellow\\\",[]]])"} -{"time":"2017-01-15T23:21:46.967","id":"sidaw","log":"(:q \"add red top 4 times\")"} -{"time":"2017-01-15T23:21:47.547","id":"sidaw","log":"(:accept \"add red top 4 times\" \"(:loop (number 4) (: add red top))\")"} -{"time":"2017-01-15T23:21:47.553","id":"sidaw","log":"(:autocomplete \"\")"} -{"time":"2017-01-15T23:21:54.311","id":"sidaw","log":"(:context [[0,0,0,\\\"Red\\\",[\\\"S\\\"]],[0,0,1,\\\"Red\\\",[]],[0,0,2,\\\"Yellow\\\",[]],[0,0,3,\\\"Yellow\\\",[]],[0,0,4,\\\"Yellow\\\",[]],[0,0,5,\\\"Yellow\\\",[]],[0,0,6,\\\"Red\\\",[]],[0,0,7,\\\"Red\\\",[]],[0,0,8,\\\"Red\\\",[]],[0,0,9,\\\"Red\\\",[]]])"} -{"time":"2017-01-15T23:21:54.333","id":"sidaw","log":"(:q \"red stick size 4\")"} -{"time":"2017-01-15T23:22:02.232","id":"sidaw","log":"(:context [[0,0,0,\\\"Red\\\",[\\\"S\\\"]],[0,0,1,\\\"Red\\\",[]],[0,0,2,\\\"Yellow\\\",[]],[0,0,3,\\\"Yellow\\\",[]],[0,0,4,\\\"Yellow\\\",[]],[0,0,5,\\\"Yellow\\\",[]],[0,0,6,\\\"Red\\\",[]],[0,0,7,\\\"Red\\\",[]],[0,0,8,\\\"Red\\\",[]],[0,0,9,\\\"Red\\\",[]]])"} -{"time":"2017-01-15T23:22:02.250","id":"sidaw","log":"(:q \"[add red; select top] 4 times\")"} -{"time":"2017-01-15T23:22:02.877","id":"sidaw","log":"(:accept \"[add red; select top] 4 times\" \"(:loop (number 4) (:s (: add red here) (:for (call adj top) (: select))))\")"} -{"time":"2017-01-15T23:22:02.891","id":"sidaw","log":"(:autocomplete \"\")"} -{"time":"2017-01-15T23:22:06.003","id":"sidaw","log":"(:def_ret \"red stick size 4\" \"[[\\\"[add red; select top] 4 times\\\",\\\"(:loop (number 4) (:s (: add red here) (:for (call adj top) (: select))))\\\"]]\")"} -{"time":"2017-01-15T23:22:16.995","id":"sidaw","log":"(:context [[0,0,0,\\\"Fake\\\",[\\\"S\\\"]]])"} -{"time":"2017-01-15T23:22:17.003","id":"sidaw","log":"(:q \"red square size 4\")"} -{"time":"2017-01-15T23:22:21.425","id":"sidaw","log":"(:context [[0,0,0,\\\"Fake\\\",[\\\"S\\\"]]])"} -{"time":"2017-01-15T23:22:21.446","id":"sidaw","log":"(:q \"red stick size 4\")"} -{"time":"2017-01-15T23:22:35.484","id":"sidaw","log":"(:context [[0,0,0,\\\"Fake\\\",[\\\"S\\\"]]])"} -{"time":"2017-01-15T23:22:35.505","id":"sidaw","log":"(:q \"red sq size 4\")"} -{"time":"2017-01-15T23:22:45.751","id":"sidaw","log":"(:context [[0,0,0,\\\"Fake\\\",[\\\"S\\\"]]])"} -{"time":"2017-01-15T23:22:45.773","id":"sidaw","log":"(:q \"repeat 4 [{red stick size 4}]\")"} -{"time":"2017-01-15T23:22:49.522","id":"sidaw","log":"(:context [[0,0,0,\\\"Fake\\\",[\\\"S\\\"]]])"} -{"time":"2017-01-15T23:22:49.540","id":"sidaw","log":"(:q \"repeat 4 [{red stick size 4}; select left]\")"} -{"time":"2017-01-15T23:22:50.572","id":"sidaw","log":"(:accept \"repeat 4 [{red stick size 4}; select left]\" \"(:loop (number 4) (:s (:blk (:loop (number 4) (:s (: add red here) (:for (call adj top) (: select))))) (:for (call adj left) (: select))))\")"} -{"time":"2017-01-15T23:22:50.594","id":"sidaw","log":"(:autocomplete \"\")"} -{"time":"2017-01-15T23:22:52.181","id":"sidaw","log":"(:def_ret \"red sq size 4\" \"[[\\\"repeat 4 [{red stick size 4}; select left]\\\",\\\"(:loop (number 4) (:s (:blk (:loop (number 4) (:s (: add red here) (:for (call adj top) (: select))))) (:for (call adj left) (: select))))\\\"]]\")"} -{"time":"2017-01-15T23:24:11.450","id":"sidaw","log":"(:context [[0,0,0,\\\"Fake\\\",[\\\"S\\\"]]])"} -{"time":"2017-01-15T23:24:11.465","id":"sidaw","log":"(:q \"red sq size 4\")"} -{"time":"2017-01-15T23:24:12.270","id":"sidaw","log":"(:accept \"red sq size 4\" \"(:loop (number 4) (:s (:blk (:loop (number 4) (:s (: add red here) (:for (call adj top) (: select))))) (:for (call adj left) (: select))))\")"} -{"time":"2017-01-15T23:24:12.281","id":"sidaw","log":"(:autocomplete \"\")"} -{"time":"2017-01-15T23:24:52.169","id":"sidaw","log":"(:context [[0,4,0,\\\"Fake\\\",[\\\"S\\\"]],[0,3,0,\\\"Red\\\",[]],[0,2,0,\\\"Red\\\",[]],[0,1,0,\\\"Red\\\",[]],[0,0,0,\\\"Red\\\",[]],[0,3,1,\\\"Red\\\",[]],[0,2,1,\\\"Red\\\",[]],[0,1,1,\\\"Red\\\",[]],[0,0,1,\\\"Red\\\",[]],[0,3,2,\\\"Red\\\",[]],[0,2,2,\\\"Red\\\",[]],[0,1,2,\\\"Red\\\",[]],[0,0,2,\\\"Red\\\",[]],[0,3,3,\\\"Red\\\",[]],[0,2,3,\\\"Red\\\",[]],[0,1,3,\\\"Red\\\",[]],[0,0,3,\\\"Red\\\",[]]])"} -{"time":"2017-01-15T23:24:52.177","id":"sidaw","log":"(:q \"add red top\")"} -{"time":"2017-01-15T23:24:52.666","id":"sidaw","log":"(:accept \"add red top\" \"(: add red top)\")"} -{"time":"2017-01-15T23:24:52.677","id":"sidaw","log":"(:autocomplete \"\")"} -{"time":"2017-01-15T23:35:07.925","id":"sidaw","log":"(:context [[0,0,0,\\\"Fake\\\",[\\\"S\\\"]]])"} -{"time":"2017-01-15T23:35:07.950","id":"sidaw","log":"(:q \"add red top 3 times\")"} diff --git a/shrdlurn/commandInputs/sidaw.log.json b/shrdlurn/commandInputs/sidaw.log.json new file mode 100644 index 0000000..5696ce2 --- /dev/null +++ b/shrdlurn/commandInputs/sidaw.log.json @@ -0,0 +1,238 @@ +{"time":"2017-01-16T20:18:42.275","id":"sidaw","log":"(:context [[0,0,0,\\\"Fake\\\",[\\\"S\\\"]]])"} +{"time":"2017-01-16T20:18:42.304","id":"sidaw","log":"(:q \"add red top 3 times\")"} +{"time":"2017-01-16T20:19:41.490","id":"sidaw","log":"(:context [[0,0,0,\\\"Fake\\\",[\\\"S\\\"]]])"} +{"time":"2017-01-16T20:19:41.563","id":"sidaw","log":"(:q \"add red top\")"} +{"time":"2017-01-16T20:19:42.279","id":"sidaw","log":"(:accept \"add red top\" \"(: add red top)\")"} +{"time":"2017-01-16T20:20:17.464","id":"sidaw","log":"(:context [[0,0,0,\\\"Fake\\\",[\\\"S\\\"]],[0,0,1,\\\"Red\\\",[]]])"} +{"time":"2017-01-16T20:20:17.485","id":"sidaw","log":"(:q \"add red top 3 times\")"} +{"time":"2017-01-16T20:20:24.574","id":"sidaw","log":"(:context [[0,0,0,\\\"Fake\\\",[\\\"S\\\"]],[0,0,1,\\\"Red\\\",[]]])"} +{"time":"2017-01-16T20:20:24.584","id":"sidaw","log":"(:q \"repeat 3 [add red top]\")"} +{"time":"2017-01-16T20:20:25.807","id":"sidaw","log":"(:accept \"repeat 3 [add red top]\" \"(:loop (number 3) (: add red top))\")"} +{"time":"2017-01-16T20:20:27.553","id":"sidaw","log":"(:def_ret \"add red top 3 times\" \"[[\\\"repeat 3 [add red top]\\\",\\\"(:loop (number 3) (: add red top))\\\"]]\")"} +{"time":"2017-01-16T20:20:47.587","id":"sidaw","log":"(:context [[0,0,0,\\\"Fake\\\",[\\\"S\\\"]],[0,0,1,\\\"Red\\\",[]],[0,0,2,\\\"Red\\\",[]],[0,0,3,\\\"Red\\\",[]],[0,0,4,\\\"Red\\\",[]]])"} +{"time":"2017-01-16T20:20:47.596","id":"sidaw","log":"(:q \"add cardinal\")"} +{"time":"2017-01-16T20:20:50.938","id":"sidaw","log":"(:context [[0,0,0,\\\"Fake\\\",[\\\"S\\\"]],[0,0,1,\\\"Red\\\",[]],[0,0,2,\\\"Red\\\",[]],[0,0,3,\\\"Red\\\",[]],[0,0,4,\\\"Red\\\",[]]])"} +{"time":"2017-01-16T20:20:50.957","id":"sidaw","log":"(:q \"add red\")"} +{"time":"2017-01-16T20:20:51.834","id":"sidaw","log":"(:accept \"add red\" \"(: add red here)\")"} +{"time":"2017-01-16T20:20:52.964","id":"sidaw","log":"(:def_ret \"add cardinal\" \"[[\\\"add red\\\",\\\"(: add red here)\\\"]]\")"} +{"time":"2017-01-16T20:21:29.720","id":"sidaw","log":"(:context [[0,0,0,\\\"Red\\\",[\\\"S\\\"]],[0,0,1,\\\"Red\\\",[]],[0,0,2,\\\"Red\\\",[]],[0,0,3,\\\"Red\\\",[]],[0,0,4,\\\"Red\\\",[]]])"} +{"time":"2017-01-16T20:21:29.739","id":"sidaw","log":"(:q \"yellow stick size 5\")"} +{"time":"2017-01-16T20:21:36.790","id":"sidaw","log":"(:context [[0,0,0,\\\"Red\\\",[\\\"S\\\"]],[0,0,1,\\\"Red\\\",[]],[0,0,2,\\\"Red\\\",[]],[0,0,3,\\\"Red\\\",[]],[0,0,4,\\\"Red\\\",[]]])"} +{"time":"2017-01-16T20:21:36.804","id":"sidaw","log":"(:q \"repeat 5 [ add yellow; select top]\")"} +{"time":"2017-01-16T20:21:38.040","id":"sidaw","log":"(:accept \"repeat 5 [ add yellow; select top]\" \"(:loop (number 5) (:s (: add yellow here) (: select (call adj top))))\")"} +{"time":"2017-01-16T20:21:39.297","id":"sidaw","log":"(:def_ret \"yellow stick size 5\" \"[[\\\"repeat 5 [ add yellow; select top]\\\",\\\"(:loop (number 5) (:s (: add yellow here) (: select (call adj top))))\\\"]]\")"} +{"time":"2017-01-16T20:21:50.459","id":"sidaw","log":"(:context [[0,0,0,\\\"Yellow\\\",[]],[0,0,1,\\\"Yellow\\\",[]],[0,0,2,\\\"Yellow\\\",[]],[0,0,3,\\\"Yellow\\\",[]],[0,0,4,\\\"Yellow\\\",[]],[0,0,5,\\\"Fake\\\",[\\\"S\\\"]]])"} +{"time":"2017-01-16T20:21:50.477","id":"sidaw","log":"(:q \"yellow beam left 5\")"} +{"time":"2017-01-16T20:22:00.712","id":"sidaw","log":"(:context [[0,0,0,\\\"Yellow\\\",[]],[0,0,1,\\\"Yellow\\\",[]],[0,0,2,\\\"Yellow\\\",[]],[0,0,3,\\\"Yellow\\\",[]],[0,0,4,\\\"Yellow\\\",[]],[0,0,5,\\\"Fake\\\",[\\\"S\\\"]]])"} +{"time":"2017-01-16T20:22:00.726","id":"sidaw","log":"(:q \"{repeat 5 [ add yellow; select left]}\")"} +{"time":"2017-01-16T20:22:01.403","id":"sidaw","log":"(:accept \"{repeat 5 [ add yellow; select left]}\" \"(:blk (:loop (number 5) (:s (: add yellow here) (: select (call adj left)))))\")"} +{"time":"2017-01-16T20:22:07.368","id":"sidaw","log":"(:def_ret \"yellow beam left 5\" \"[[\\\"{repeat 5 [ add yellow; select left]}\\\",\\\"(:blk (:loop (number 5) (:s (: add yellow here) (: select (call adj left)))))\\\"]]\")"} +{"time":"2017-01-16T20:22:39.747","id":"sidaw","log":"(:context [[0,0,0,\\\"Yellow\\\",[]],[0,0,1,\\\"Yellow\\\",[]],[0,0,2,\\\"Yellow\\\",[]],[0,0,3,\\\"Yellow\\\",[]],[0,0,4,\\\"Yellow\\\",[]],[0,4,5,\\\"Yellow\\\",[]],[0,3,5,\\\"Yellow\\\",[]],[0,2,5,\\\"Yellow\\\",[]],[0,1,5,\\\"Yellow\\\",[]],[0,0,5,\\\"Yellow\\\",[\\\"S\\\"]]])"} +{"time":"2017-01-16T20:22:39.756","id":"sidaw","log":"(:q \"move down\")"} +{"time":"2017-01-16T20:22:42.497","id":"sidaw","log":"(:context [[0,0,0,\\\"Yellow\\\",[]],[0,0,1,\\\"Yellow\\\",[]],[0,0,2,\\\"Yellow\\\",[]],[0,0,3,\\\"Yellow\\\",[]],[0,0,4,\\\"Yellow\\\",[]],[0,4,5,\\\"Yellow\\\",[]],[0,3,5,\\\"Yellow\\\",[]],[0,2,5,\\\"Yellow\\\",[]],[0,1,5,\\\"Yellow\\\",[]],[0,0,5,\\\"Yellow\\\",[\\\"S\\\"]]])"} +{"time":"2017-01-16T20:22:42.515","id":"sidaw","log":"(:q \"move bot\")"} +{"time":"2017-01-16T20:22:52.058","id":"sidaw","log":"(:context [[0,0,0,\\\"Yellow\\\",[]],[0,0,1,\\\"Yellow\\\",[]],[0,0,2,\\\"Yellow\\\",[]],[0,0,3,\\\"Yellow\\\",[]],[0,0,4,\\\"Yellow\\\",[]],[0,4,5,\\\"Yellow\\\",[]],[0,3,5,\\\"Yellow\\\",[]],[0,2,5,\\\"Yellow\\\",[]],[0,1,5,\\\"Yellow\\\",[]],[0,0,5,\\\"Yellow\\\",[\\\"S\\\"]]])"} +{"time":"2017-01-16T20:22:52.081","id":"sidaw","log":"(:q \"select bot\")"} +{"time":"2017-01-16T20:22:52.784","id":"sidaw","log":"(:accept \"select bot\" \"(: select (call adj bot))\")"} +{"time":"2017-01-16T20:22:53.888","id":"sidaw","log":"(:def_ret \"move down\" \"[[\\\"select bot\\\",\\\"(: select (call adj bot))\\\"]]\")"} +{"time":"2017-01-16T20:22:57.219","id":"sidaw","log":"(:context [[0,0,0,\\\"Yellow\\\",[]],[0,0,1,\\\"Yellow\\\",[]],[0,0,2,\\\"Yellow\\\",[]],[0,0,3,\\\"Yellow\\\",[]],[0,0,4,\\\"Yellow\\\",[\\\"S\\\"]],[0,4,5,\\\"Yellow\\\",[]],[0,3,5,\\\"Yellow\\\",[]],[0,2,5,\\\"Yellow\\\",[]],[0,1,5,\\\"Yellow\\\",[]],[0,0,5,\\\"Yellow\\\",[]]])"} +{"time":"2017-01-16T20:22:57.238","id":"sidaw","log":"(:q \"move down\")"} +{"time":"2017-01-16T20:23:00.601","id":"sidaw","log":"(:context [[0,0,0,\\\"Yellow\\\",[]],[0,0,1,\\\"Yellow\\\",[]],[0,0,2,\\\"Yellow\\\",[]],[0,0,3,\\\"Yellow\\\",[]],[0,0,4,\\\"Yellow\\\",[\\\"S\\\"]],[0,4,5,\\\"Yellow\\\",[]],[0,3,5,\\\"Yellow\\\",[]],[0,2,5,\\\"Yellow\\\",[]],[0,1,5,\\\"Yellow\\\",[]],[0,0,5,\\\"Yellow\\\",[]]])"} +{"time":"2017-01-16T20:23:00.610","id":"sidaw","log":"(:q \"move bot\")"} +{"time":"2017-01-16T20:23:07.227","id":"sidaw","log":"(:context [[0,0,0,\\\"Yellow\\\",[]],[0,0,1,\\\"Yellow\\\",[]],[0,0,2,\\\"Yellow\\\",[]],[0,0,3,\\\"Yellow\\\",[]],[0,0,4,\\\"Yellow\\\",[\\\"S\\\"]],[0,4,5,\\\"Yellow\\\",[]],[0,3,5,\\\"Yellow\\\",[]],[0,2,5,\\\"Yellow\\\",[]],[0,1,5,\\\"Yellow\\\",[]],[0,0,5,\\\"Yellow\\\",[]]])"} +{"time":"2017-01-16T20:23:07.236","id":"sidaw","log":"(:q \"move right\")"} +{"time":"2017-01-16T20:23:31.328","id":"sidaw","log":"(:accept \"move right\" \"(: move right)\")"} +{"time":"2017-01-16T20:23:32.791","id":"sidaw","log":"(:context [[0,0,0,\\\"Yellow\\\",[]],[0,0,1,\\\"Yellow\\\",[]],[0,0,2,\\\"Yellow\\\",[]],[0,0,3,\\\"Yellow\\\",[]],[0,-1,4,\\\"Yellow\\\",[\\\"S\\\"]],[0,4,5,\\\"Yellow\\\",[]],[0,3,5,\\\"Yellow\\\",[]],[0,2,5,\\\"Yellow\\\",[]],[0,1,5,\\\"Yellow\\\",[]],[0,0,5,\\\"Yellow\\\",[]]])"} +{"time":"2017-01-16T20:23:32.810","id":"sidaw","log":"(:q \"move up\")"} +{"time":"2017-01-16T20:23:35.859","id":"sidaw","log":"(:context [[0,0,0,\\\"Yellow\\\",[]],[0,0,1,\\\"Yellow\\\",[]],[0,0,2,\\\"Yellow\\\",[]],[0,0,3,\\\"Yellow\\\",[]],[0,-1,4,\\\"Yellow\\\",[\\\"S\\\"]],[0,4,5,\\\"Yellow\\\",[]],[0,3,5,\\\"Yellow\\\",[]],[0,2,5,\\\"Yellow\\\",[]],[0,1,5,\\\"Yellow\\\",[]],[0,0,5,\\\"Yellow\\\",[]]])"} +{"time":"2017-01-16T20:23:35.872","id":"sidaw","log":"(:q \"move top\")"} +{"time":"2017-01-16T20:23:37.986","id":"sidaw","log":"(:accept \"move top\" \"(: move top)\")"} +{"time":"2017-01-16T20:23:38.638","id":"sidaw","log":"(:def_ret \"move up\" \"[[\\\"move top\\\",\\\"(: move top)\\\"]]\")"} +{"time":"2017-01-16T20:23:40.728","id":"sidaw","log":"(:context [[0,0,0,\\\"Yellow\\\",[]],[0,0,1,\\\"Yellow\\\",[]],[0,0,2,\\\"Yellow\\\",[]],[0,0,3,\\\"Yellow\\\",[]],[0,4,5,\\\"Yellow\\\",[]],[0,3,5,\\\"Yellow\\\",[]],[0,2,5,\\\"Yellow\\\",[]],[0,1,5,\\\"Yellow\\\",[]],[0,0,5,\\\"Yellow\\\",[]],[0,-1,5,\\\"Yellow\\\",[\\\"S\\\"]]])"} +{"time":"2017-01-16T20:23:40.752","id":"sidaw","log":"(:q \"move up\")"} +{"time":"2017-01-16T20:23:42.136","id":"sidaw","log":"(:accept \"move up\" \"(: move top)\")"} +{"time":"2017-01-16T20:23:45.099","id":"sidaw","log":"(:accept \"move up\" \"(not *)\")"} +{"time":"2017-01-16T20:23:47.149","id":"sidaw","log":"(:context [[0,0,0,\\\"Yellow\\\",[]],[0,0,1,\\\"Yellow\\\",[]],[0,0,2,\\\"Yellow\\\",[]],[0,0,3,\\\"Yellow\\\",[]],[0,4,5,\\\"Yellow\\\",[]],[0,3,5,\\\"Yellow\\\",[]],[0,2,5,\\\"Yellow\\\",[]],[0,1,5,\\\"Yellow\\\",[]],[0,0,5,\\\"Yellow\\\",[]],[0,-1,6,\\\"Yellow\\\",[\\\"S\\\"]]])"} +{"time":"2017-01-16T20:23:47.172","id":"sidaw","log":"(:q \"select top\")"} +{"time":"2017-01-16T20:23:47.967","id":"sidaw","log":"(:accept \"select top\" \"(: select (call adj top))\")"} +{"time":"2017-01-16T20:23:49.312","id":"sidaw","log":"(:def_ret \"move up\" \"[[\\\"select top\\\",\\\"(: select (call adj top))\\\"]]\")"} +{"time":"2017-01-16T20:23:50.602","id":"sidaw","log":"(:context [[0,0,0,\\\"Yellow\\\",[]],[0,0,1,\\\"Yellow\\\",[]],[0,0,2,\\\"Yellow\\\",[]],[0,0,3,\\\"Yellow\\\",[]],[0,4,5,\\\"Yellow\\\",[]],[0,3,5,\\\"Yellow\\\",[]],[0,2,5,\\\"Yellow\\\",[]],[0,1,5,\\\"Yellow\\\",[]],[0,0,5,\\\"Yellow\\\",[]],[0,-1,6,\\\"Yellow\\\",[]],[0,-1,7,\\\"Fake\\\",[\\\"S\\\"]]])"} +{"time":"2017-01-16T20:23:50.610","id":"sidaw","log":"(:q \"move up\")"} +{"time":"2017-01-16T20:23:58.975","id":"sidaw","log":"(:context [[0,0,0,\\\"Yellow\\\",[]],[0,0,1,\\\"Yellow\\\",[]],[0,0,2,\\\"Yellow\\\",[]],[0,0,3,\\\"Yellow\\\",[]],[0,4,5,\\\"Yellow\\\",[]],[0,3,5,\\\"Yellow\\\",[]],[0,2,5,\\\"Yellow\\\",[]],[0,1,5,\\\"Yellow\\\",[]],[0,0,5,\\\"Yellow\\\",[]],[0,-1,6,\\\"Yellow\\\",[]],[0,-1,7,\\\"Fake\\\",[\\\"S\\\"]]])"} +{"time":"2017-01-16T20:23:58.984","id":"sidaw","log":"(:q \"select yellow\")"} +{"time":"2017-01-16T20:24:03.679","id":"sidaw","log":"(:context [[0,0,0,\\\"Yellow\\\",[]],[0,0,1,\\\"Yellow\\\",[]],[0,0,2,\\\"Yellow\\\",[]],[0,0,3,\\\"Yellow\\\",[]],[0,4,5,\\\"Yellow\\\",[]],[0,3,5,\\\"Yellow\\\",[]],[0,2,5,\\\"Yellow\\\",[]],[0,1,5,\\\"Yellow\\\",[]],[0,0,5,\\\"Yellow\\\",[]],[0,-1,6,\\\"Yellow\\\",[]],[0,-1,7,\\\"Fake\\\",[\\\"S\\\"]]])"} +{"time":"2017-01-16T20:24:03.689","id":"sidaw","log":"(:q \"select has color yellow\")"} +{"time":"2017-01-16T20:24:06.546","id":"sidaw","log":"(:accept \"select has color yellow\" \"(: select (color yellow))\")"} +{"time":"2017-01-16T20:24:07.339","id":"sidaw","log":"(:def_ret \"select yellow\" \"[[\\\"select has color yellow\\\",\\\"(: select (color yellow))\\\"]]\")"} +{"time":"2017-01-16T20:24:11.430","id":"sidaw","log":"(:context [[0,0,0,\\\"Yellow\\\",[\\\"S\\\"]],[0,0,1,\\\"Yellow\\\",[\\\"S\\\"]],[0,0,2,\\\"Yellow\\\",[\\\"S\\\"]],[0,0,3,\\\"Yellow\\\",[\\\"S\\\"]],[0,4,5,\\\"Yellow\\\",[\\\"S\\\"]],[0,3,5,\\\"Yellow\\\",[\\\"S\\\"]],[0,2,5,\\\"Yellow\\\",[\\\"S\\\"]],[0,1,5,\\\"Yellow\\\",[\\\"S\\\"]],[0,0,5,\\\"Yellow\\\",[\\\"S\\\"]],[0,-1,6,\\\"Yellow\\\",[\\\"S\\\"]]])"} +{"time":"2017-01-16T20:24:11.448","id":"sidaw","log":"(:q \"update color red\")"} +{"time":"2017-01-16T20:24:11.934","id":"sidaw","log":"(:accept \"update color red\" \"(: update color red)\")"} +{"time":"2017-01-16T20:24:15.004","id":"sidaw","log":"(:context [[0,0,0,\\\"Red\\\",[\\\"S\\\"]],[0,0,1,\\\"Red\\\",[\\\"S\\\"]],[0,0,2,\\\"Red\\\",[\\\"S\\\"]],[0,0,3,\\\"Red\\\",[\\\"S\\\"]],[0,4,5,\\\"Red\\\",[\\\"S\\\"]],[0,3,5,\\\"Red\\\",[\\\"S\\\"]],[0,2,5,\\\"Red\\\",[\\\"S\\\"]],[0,1,5,\\\"Red\\\",[\\\"S\\\"]],[0,0,5,\\\"Red\\\",[\\\"S\\\"]],[0,-1,6,\\\"Red\\\",[\\\"S\\\"]]])"} +{"time":"2017-01-16T20:24:15.018","id":"sidaw","log":"(:q \"select origin\")"} +{"time":"2017-01-16T20:24:15.486","id":"sidaw","log":"(:accept \"select origin\" \"(: select (call origin))\")"} +{"time":"2017-01-16T20:24:17.301","id":"sidaw","log":"(:context [[0,0,0,\\\"Red\\\",[\\\"S\\\"]],[0,0,1,\\\"Red\\\",[]],[0,0,2,\\\"Red\\\",[]],[0,0,3,\\\"Red\\\",[]],[0,4,5,\\\"Red\\\",[]],[0,3,5,\\\"Red\\\",[]],[0,2,5,\\\"Red\\\",[]],[0,1,5,\\\"Red\\\",[]],[0,0,5,\\\"Red\\\",[]],[0,-1,6,\\\"Red\\\",[]]])"} +{"time":"2017-01-16T20:24:17.325","id":"sidaw","log":"(:q \"select red\")"} +{"time":"2017-01-16T20:24:17.815","id":"sidaw","log":"(:accept \"select red\" \"(: select (color red))\")"} +{"time":"2017-01-16T20:24:29.797","id":"sidaw","log":"(:context [[0,0,0,\\\"Red\\\",[\\\"S\\\"]],[0,0,1,\\\"Red\\\",[\\\"S\\\"]],[0,0,2,\\\"Red\\\",[\\\"S\\\"]],[0,0,3,\\\"Red\\\",[\\\"S\\\"]],[0,4,5,\\\"Red\\\",[\\\"S\\\"]],[0,3,5,\\\"Red\\\",[\\\"S\\\"]],[0,2,5,\\\"Red\\\",[\\\"S\\\"]],[0,1,5,\\\"Red\\\",[\\\"S\\\"]],[0,0,5,\\\"Red\\\",[\\\"S\\\"]],[0,-1,6,\\\"Red\\\",[\\\"S\\\"]]])"} +{"time":"2017-01-16T20:24:29.820","id":"sidaw","log":"(:q \"foreach red [move right]\")"} +{"time":"2017-01-16T20:24:38.318","id":"sidaw","log":"(:context [[0,0,0,\\\"Red\\\",[\\\"S\\\"]],[0,0,1,\\\"Red\\\",[\\\"S\\\"]],[0,0,2,\\\"Red\\\",[\\\"S\\\"]],[0,0,3,\\\"Red\\\",[\\\"S\\\"]],[0,4,5,\\\"Red\\\",[\\\"S\\\"]],[0,3,5,\\\"Red\\\",[\\\"S\\\"]],[0,2,5,\\\"Red\\\",[\\\"S\\\"]],[0,1,5,\\\"Red\\\",[\\\"S\\\"]],[0,0,5,\\\"Red\\\",[\\\"S\\\"]],[0,-1,6,\\\"Red\\\",[\\\"S\\\"]]])"} +{"time":"2017-01-16T20:24:38.331","id":"sidaw","log":"(:q \"foreach has color red [move right]\")"} +{"time":"2017-01-16T20:24:39.135","id":"sidaw","log":"(:accept \"foreach has color red [move right]\" \"(:foreach (color red) (: move right))\")"} +{"time":"2017-01-16T20:24:40.765","id":"sidaw","log":"(:def_ret \"foreach red [move right]\" \"[[\\\"foreach has color red [move right]\\\",\\\"(:foreach (color red) (: move right))\\\"]]\")"} +{"time":"2017-01-16T20:24:46.654","id":"sidaw","log":"(:context [[0,-1,0,\\\"Red\\\",[\\\"S\\\"]],[0,-1,1,\\\"Red\\\",[\\\"S\\\"]],[0,-1,2,\\\"Red\\\",[\\\"S\\\"]],[0,-1,3,\\\"Red\\\",[\\\"S\\\"]],[0,3,5,\\\"Red\\\",[\\\"S\\\"]],[0,2,5,\\\"Red\\\",[\\\"S\\\"]],[0,1,5,\\\"Fake\\\",[\\\"S\\\"]],[0,0,5,\\\"Red\\\",[\\\"S\\\"]],[0,-1,5,\\\"Fake\\\",[\\\"S\\\"]],[0,-2,6,\\\"Red\\\",[\\\"S\\\"]]])"} +{"time":"2017-01-16T20:24:46.674","id":"sidaw","log":"(:q \"remove red\")"} +{"time":"2017-01-16T20:24:55.624","id":"sidaw","log":"(:context [[0,-1,0,\\\"Red\\\",[\\\"S\\\"]],[0,-1,1,\\\"Red\\\",[\\\"S\\\"]],[0,-1,2,\\\"Red\\\",[\\\"S\\\"]],[0,-1,3,\\\"Red\\\",[\\\"S\\\"]],[0,3,5,\\\"Red\\\",[\\\"S\\\"]],[0,2,5,\\\"Red\\\",[\\\"S\\\"]],[0,1,5,\\\"Fake\\\",[\\\"S\\\"]],[0,0,5,\\\"Red\\\",[\\\"S\\\"]],[0,-1,5,\\\"Fake\\\",[\\\"S\\\"]],[0,-2,6,\\\"Red\\\",[\\\"S\\\"]]])"} +{"time":"2017-01-16T20:24:55.642","id":"sidaw","log":"(:q \"remove has color red\")"} +{"time":"2017-01-16T20:24:56.278","id":"sidaw","log":"(:accept \"remove has color red\" \"(: remove (color red))\")"} +{"time":"2017-01-16T20:24:57.878","id":"sidaw","log":"(:def_ret \"remove red\" \"[[\\\"remove has color red\\\",\\\"(: remove (color red))\\\"]]\")"} +{"time":"2017-01-16T20:25:02.374","id":"sidaw","log":"(:context [[0,-1,0,\\\"Fake\\\",[\\\"S\\\"]],[0,-1,1,\\\"Fake\\\",[\\\"S\\\"]],[0,-1,2,\\\"Fake\\\",[\\\"S\\\"]],[0,-1,3,\\\"Fake\\\",[\\\"S\\\"]],[0,3,5,\\\"Fake\\\",[\\\"S\\\"]],[0,2,5,\\\"Fake\\\",[\\\"S\\\"]],[0,1,5,\\\"Fake\\\",[\\\"S\\\"]],[0,0,5,\\\"Fake\\\",[\\\"S\\\"]],[0,-1,5,\\\"Fake\\\",[\\\"S\\\"]],[0,-2,6,\\\"Fake\\\",[\\\"S\\\"]]])"} +{"time":"2017-01-16T20:25:02.382","id":"sidaw","log":"(:q \"select none\")"} +{"time":"2017-01-16T20:25:03.227","id":"sidaw","log":"(:accept \"select none\" \"(: select nothing)\")"} +{"time":"2017-01-16T20:25:05.653","id":"sidaw","log":"(:context [])"} +{"time":"2017-01-16T20:25:05.667","id":"sidaw","log":"(:q \"select origin\")"} +{"time":"2017-01-16T20:25:06.102","id":"sidaw","log":"(:accept \"select origin\" \"(: select (call origin))\")"} +{"time":"2017-01-16T20:25:17.839","id":"sidaw","log":"(:context [[0,0,0,\\\"Fake\\\",[\\\"S\\\"]]])"} +{"time":"2017-01-16T20:25:17.862","id":"sidaw","log":"(:q \"yellow sq size 3\")"} +{"time":"2017-01-16T20:25:26.022","id":"sidaw","log":"(:context [[0,0,0,\\\"Fake\\\",[\\\"S\\\"]]])"} +{"time":"2017-01-16T20:25:26.040","id":"sidaw","log":"(:q \"yellow beam back 3\")"} +{"time":"2017-01-16T20:25:36.996","id":"sidaw","log":"(:context [[0,0,0,\\\"Fake\\\",[\\\"S\\\"]]])"} +{"time":"2017-01-16T20:25:37.018","id":"sidaw","log":"(:q \"repeat 3 [yellow beam back 3; select left]\")"} +{"time":"2017-01-16T20:25:38.275","id":"sidaw","log":"(:accept \"repeat 3 [yellow beam back 3; select left]\" \"(:loop (number 3) (:s (:blk (:loop (number 3) (:s (: add yellow here) (: select (call adj back))))) (: select (call adj left))))\")"} +{"time":"2017-01-16T20:25:45.362","id":"sidaw","log":"(:context [[2,2,0,\\\"Yellow\\\",[]],[2,1,0,\\\"Yellow\\\",[]],[2,0,0,\\\"Yellow\\\",[]],[1,2,0,\\\"Yellow\\\",[]],[1,1,0,\\\"Yellow\\\",[]],[1,0,0,\\\"Yellow\\\",[]],[0,3,0,\\\"Fake\\\",[\\\"S\\\"]],[0,2,0,\\\"Yellow\\\",[]],[0,1,0,\\\"Yellow\\\",[]],[0,0,0,\\\"Yellow\\\",[]]])"} +{"time":"2017-01-16T20:25:45.384","id":"sidaw","log":"(:q \"select front\")"} +{"time":"2017-01-16T20:25:45.849","id":"sidaw","log":"(:accept \"select front\" \"(: select (call adj front))\")"} +{"time":"2017-01-16T20:25:47.057","id":"sidaw","log":"(:def \"yellow sq size 3\" \"[[\\\"repeat 3 [yellow beam back 3; select left]\\\",\\\"(:loop (number 3) (:s (:blk (:loop (number 3) (:s (: add yellow here) (: select (call adj back))))) (: select (call adj left))))\\\"],[\\\"select front\\\",\\\"(: select (call adj front))\\\"]]\")"} +{"time":"2017-01-16T20:25:52.227","id":"sidaw","log":"(:context [[2,2,0,\\\"Yellow\\\",[]],[2,1,0,\\\"Yellow\\\",[]],[2,0,0,\\\"Yellow\\\",[]],[1,2,0,\\\"Yellow\\\",[]],[1,1,0,\\\"Yellow\\\",[]],[1,0,0,\\\"Yellow\\\",[]],[0,2,0,\\\"Yellow\\\",[]],[0,1,0,\\\"Yellow\\\",[]],[0,0,0,\\\"Yellow\\\",[]],[-1,3,0,\\\"Fake\\\",[\\\"S\\\"]]])"} +{"time":"2017-01-16T20:25:52.239","id":"sidaw","log":"(:q \"yellow sq size 3\")"} +{"time":"2017-01-16T20:25:52.884","id":"sidaw","log":"(:accept \"yellow sq size 3\" \"(:blk (:loop (number 3) (:s (:blk (:loop (number 3) (:s (: add yellow here) (: select (call adj back))))) (: select (call adj left)))) (: select (call adj front)))\")"} +{"time":"2017-01-16T20:25:56.491","id":"sidaw","log":"(:context [[2,2,0,\\\"Yellow\\\",[]],[2,1,0,\\\"Yellow\\\",[]],[2,0,0,\\\"Yellow\\\",[]],[1,5,0,\\\"Yellow\\\",[]],[1,4,0,\\\"Yellow\\\",[]],[1,3,0,\\\"Yellow\\\",[]],[1,2,0,\\\"Yellow\\\",[]],[1,1,0,\\\"Yellow\\\",[]],[1,0,0,\\\"Yellow\\\",[]],[0,5,0,\\\"Yellow\\\",[]],[0,4,0,\\\"Yellow\\\",[]],[0,3,0,\\\"Yellow\\\",[]],[0,2,0,\\\"Yellow\\\",[]],[0,1,0,\\\"Yellow\\\",[]],[0,0,0,\\\"Yellow\\\",[]],[-1,5,0,\\\"Yellow\\\",[]],[-1,4,0,\\\"Yellow\\\",[]],[-1,3,0,\\\"Yellow\\\",[\\\"S\\\"]]])"} +{"time":"2017-01-16T20:25:56.509","id":"sidaw","log":"(:q \"select origin\")"} +{"time":"2017-01-16T20:25:56.975","id":"sidaw","log":"(:accept \"select origin\" \"(: select (call origin))\")"} +{"time":"2017-01-16T20:26:00.158","id":"sidaw","log":"(:context [[2,2,0,\\\"Yellow\\\",[]],[2,1,0,\\\"Yellow\\\",[]],[2,0,0,\\\"Yellow\\\",[]],[1,5,0,\\\"Yellow\\\",[]],[1,4,0,\\\"Yellow\\\",[]],[1,3,0,\\\"Yellow\\\",[]],[1,2,0,\\\"Yellow\\\",[]],[1,1,0,\\\"Yellow\\\",[]],[1,0,0,\\\"Yellow\\\",[]],[0,5,0,\\\"Yellow\\\",[]],[0,4,0,\\\"Yellow\\\",[]],[0,3,0,\\\"Yellow\\\",[]],[0,2,0,\\\"Yellow\\\",[]],[0,1,0,\\\"Yellow\\\",[]],[0,0,0,\\\"Yellow\\\",[\\\"S\\\"]],[-1,5,0,\\\"Yellow\\\",[]],[-1,4,0,\\\"Yellow\\\",[]],[-1,3,0,\\\"Yellow\\\",[]]])"} +{"time":"2017-01-16T20:26:00.171","id":"sidaw","log":"(:q \"red sq size 4\")"} +{"time":"2017-01-16T20:26:00.643","id":"sidaw","log":"(:accept \"red sq size 4\" \"(:blk (:loop (number 4) (:s (:blk (:loop (number 4) (:s (: add red here) (: select (call adj back))))) (: select (call adj left)))) (: select (call adj front)))\")"} +{"time":"2017-01-16T20:26:05.177","id":"sidaw","log":"(:context [[3,3,0,\\\"Red\\\",[]],[3,2,0,\\\"Red\\\",[]],[3,1,0,\\\"Red\\\",[]],[3,0,0,\\\"Red\\\",[]],[2,3,0,\\\"Red\\\",[]],[2,2,0,\\\"Red\\\",[]],[2,1,0,\\\"Red\\\",[]],[2,0,0,\\\"Red\\\",[]],[1,5,0,\\\"Yellow\\\",[]],[1,4,0,\\\"Yellow\\\",[]],[1,3,0,\\\"Red\\\",[]],[1,2,0,\\\"Red\\\",[]],[1,1,0,\\\"Red\\\",[]],[1,0,0,\\\"Red\\\",[]],[0,5,0,\\\"Yellow\\\",[]],[0,4,0,\\\"Yellow\\\",[]],[0,3,0,\\\"Red\\\",[]],[0,2,0,\\\"Red\\\",[]],[0,1,0,\\\"Red\\\",[]],[0,0,0,\\\"Red\\\",[\\\"S\\\"]],[-1,5,0,\\\"Yellow\\\",[]],[-1,4,0,\\\"Yellow\\\",[]],[-1,3,0,\\\"Yellow\\\",[]]])"} +{"time":"2017-01-16T20:26:05.185","id":"sidaw","log":"(:q \"red cube size 4\")"} +{"time":"2017-01-16T20:26:16.123","id":"sidaw","log":"(:context [[3,3,0,\\\"Red\\\",[]],[3,2,0,\\\"Red\\\",[]],[3,1,0,\\\"Red\\\",[]],[3,0,0,\\\"Red\\\",[]],[2,3,0,\\\"Red\\\",[]],[2,2,0,\\\"Red\\\",[]],[2,1,0,\\\"Red\\\",[]],[2,0,0,\\\"Red\\\",[]],[1,5,0,\\\"Yellow\\\",[]],[1,4,0,\\\"Yellow\\\",[]],[1,3,0,\\\"Red\\\",[]],[1,2,0,\\\"Red\\\",[]],[1,1,0,\\\"Red\\\",[]],[1,0,0,\\\"Red\\\",[]],[0,5,0,\\\"Yellow\\\",[]],[0,4,0,\\\"Yellow\\\",[]],[0,3,0,\\\"Red\\\",[]],[0,2,0,\\\"Red\\\",[]],[0,1,0,\\\"Red\\\",[]],[0,0,0,\\\"Red\\\",[\\\"S\\\"]],[-1,5,0,\\\"Yellow\\\",[]],[-1,4,0,\\\"Yellow\\\",[]],[-1,3,0,\\\"Yellow\\\",[]]])"} +{"time":"2017-01-16T20:26:16.131","id":"sidaw","log":"(:q \"red sq size 4\")"} +{"time":"2017-01-16T20:26:17.563","id":"sidaw","log":"(:accept \"red sq size 4\" \"(:blk (:loop (number 4) (:s (:blk (:loop (number 4) (:s (: add red here) (: select (call adj back))))) (: select (call adj left)))) (: select (call adj front)))\")"} +{"time":"2017-01-16T20:26:28.045","id":"sidaw","log":"(:context [[3,3,0,\\\"Red\\\",[]],[3,2,0,\\\"Red\\\",[]],[3,1,0,\\\"Red\\\",[]],[3,0,0,\\\"Red\\\",[]],[2,3,0,\\\"Red\\\",[]],[2,2,0,\\\"Red\\\",[]],[2,1,0,\\\"Red\\\",[]],[2,0,0,\\\"Red\\\",[]],[1,5,0,\\\"Yellow\\\",[]],[1,4,0,\\\"Yellow\\\",[]],[1,3,0,\\\"Red\\\",[]],[1,2,0,\\\"Red\\\",[]],[1,1,0,\\\"Red\\\",[]],[1,0,0,\\\"Red\\\",[]],[0,5,0,\\\"Yellow\\\",[]],[0,4,0,\\\"Yellow\\\",[]],[0,3,0,\\\"Red\\\",[]],[0,2,0,\\\"Red\\\",[]],[0,1,0,\\\"Red\\\",[]],[0,0,0,\\\"Red\\\",[\\\"S\\\"]],[-1,5,0,\\\"Yellow\\\",[]],[-1,4,0,\\\"Yellow\\\",[]],[-1,3,0,\\\"Yellow\\\",[]]])"} +{"time":"2017-01-16T20:26:28.058","id":"sidaw","log":"(:q \"repeat 4-1 [select top; red sq size 4]\")"} +{"time":"2017-01-16T20:26:29.394","id":"sidaw","log":"(:accept \"repeat 4-1 [select top; red sq size 4]\" \"(:loop (- (number 4) (number 1)) (:s (: select (call adj top)) (:blk (:loop (number 4) (:s (:blk (:loop (number 4) (:s (: add red here) (: select (call adj back))))) (: select (call adj left)))) (: select (call adj front)))))\")"} +{"time":"2017-01-16T20:26:31.841","id":"sidaw","log":"(:def \"red cube size 4\" \"[[\\\"red sq size 4\\\",\\\"(:blk (:loop (number 4) (:s (:blk (:loop (number 4) (:s (: add red here) (: select (call adj back))))) (: select (call adj left)))) (: select (call adj front)))\\\"],[\\\"repeat 4-1 [select top; red sq size 4]\\\",\\\"(:loop (- (number 4) (number 1)) (:s (: select (call adj top)) (:blk (:loop (number 4) (:s (:blk (:loop (number 4) (:s (: add red here) (: select (call adj back))))) (: select (call adj left)))) (: select (call adj front)))))\\\"]]\")"} +{"time":"2017-01-16T20:26:37.066","id":"sidaw","log":"(:context [[3,3,0,\\\"Red\\\",[]],[3,2,0,\\\"Red\\\",[]],[3,1,0,\\\"Red\\\",[]],[3,0,0,\\\"Red\\\",[]],[2,3,0,\\\"Red\\\",[]],[2,2,0,\\\"Red\\\",[]],[2,1,0,\\\"Red\\\",[]],[2,0,0,\\\"Red\\\",[]],[1,5,0,\\\"Yellow\\\",[]],[1,4,0,\\\"Yellow\\\",[]],[1,3,0,\\\"Red\\\",[]],[1,2,0,\\\"Red\\\",[]],[1,1,0,\\\"Red\\\",[]],[1,0,0,\\\"Red\\\",[]],[0,5,0,\\\"Yellow\\\",[]],[0,4,0,\\\"Yellow\\\",[]],[0,3,0,\\\"Red\\\",[]],[0,2,0,\\\"Red\\\",[]],[0,1,0,\\\"Red\\\",[]],[0,0,0,\\\"Red\\\",[]],[-1,5,0,\\\"Yellow\\\",[]],[-1,4,0,\\\"Yellow\\\",[]],[-1,3,0,\\\"Yellow\\\",[]],[3,3,1,\\\"Red\\\",[]],[3,2,1,\\\"Red\\\",[]],[3,1,1,\\\"Red\\\",[]],[3,0,1,\\\"Red\\\",[]],[2,3,1,\\\"Red\\\",[]],[2,2,1,\\\"Red\\\",[]],[2,1,1,\\\"Red\\\",[]],[2,0,1,\\\"Red\\\",[]],[1,3,1,\\\"Red\\\",[]],[1,2,1,\\\"Red\\\",[]],[1,1,1,\\\"Red\\\",[]],[1,0,1,\\\"Red\\\",[]],[0,3,1,\\\"Red\\\",[]],[0,2,1,\\\"Red\\\",[]],[0,1,1,\\\"Red\\\",[]],[0,0,1,\\\"Red\\\",[]],[3,3,2,\\\"Red\\\",[]],[3,2,2,\\\"Red\\\",[]],[3,1,2,\\\"Red\\\",[]],[3,0,2,\\\"Red\\\",[]],[2,3,2,\\\"Red\\\",[]],[2,2,2,\\\"Red\\\",[]],[2,1,2,\\\"Red\\\",[]],[2,0,2,\\\"Red\\\",[]],[1,3,2,\\\"Red\\\",[]],[1,2,2,\\\"Red\\\",[]],[1,1,2,\\\"Red\\\",[]],[1,0,2,\\\"Red\\\",[]],[0,3,2,\\\"Red\\\",[]],[0,2,2,\\\"Red\\\",[]],[0,1,2,\\\"Red\\\",[]],[0,0,2,\\\"Red\\\",[]],[3,3,3,\\\"Red\\\",[]],[3,2,3,\\\"Red\\\",[]],[3,1,3,\\\"Red\\\",[]],[3,0,3,\\\"Red\\\",[]],[2,3,3,\\\"Red\\\",[]],[2,2,3,\\\"Red\\\",[]],[2,1,3,\\\"Red\\\",[]],[2,0,3,\\\"Red\\\",[]],[1,3,3,\\\"Red\\\",[]],[1,2,3,\\\"Red\\\",[]],[1,1,3,\\\"Red\\\",[]],[1,0,3,\\\"Red\\\",[]],[0,3,3,\\\"Red\\\",[]],[0,2,3,\\\"Red\\\",[]],[0,1,3,\\\"Red\\\",[]],[0,0,3,\\\"Red\\\",[\\\"S\\\"]]])"} +{"time":"2017-01-16T20:26:37.075","id":"sidaw","log":"(:q \"brown cube size 4\")"} +{"time":"2017-01-16T20:26:38.813","id":"sidaw","log":"(:context [[3,3,0,\\\"Red\\\",[]],[3,2,0,\\\"Red\\\",[]],[3,1,0,\\\"Red\\\",[]],[3,0,0,\\\"Red\\\",[]],[2,3,0,\\\"Red\\\",[]],[2,2,0,\\\"Red\\\",[]],[2,1,0,\\\"Red\\\",[]],[2,0,0,\\\"Red\\\",[]],[1,5,0,\\\"Yellow\\\",[]],[1,4,0,\\\"Yellow\\\",[]],[1,3,0,\\\"Red\\\",[]],[1,2,0,\\\"Red\\\",[]],[1,1,0,\\\"Red\\\",[]],[1,0,0,\\\"Red\\\",[]],[0,5,0,\\\"Yellow\\\",[]],[0,4,0,\\\"Yellow\\\",[]],[0,3,0,\\\"Red\\\",[]],[0,2,0,\\\"Red\\\",[]],[0,1,0,\\\"Red\\\",[]],[0,0,0,\\\"Red\\\",[]],[-1,5,0,\\\"Yellow\\\",[]],[-1,4,0,\\\"Yellow\\\",[]],[-1,3,0,\\\"Yellow\\\",[]],[3,3,1,\\\"Red\\\",[]],[3,2,1,\\\"Red\\\",[]],[3,1,1,\\\"Red\\\",[]],[3,0,1,\\\"Red\\\",[]],[2,3,1,\\\"Red\\\",[]],[2,2,1,\\\"Red\\\",[]],[2,1,1,\\\"Red\\\",[]],[2,0,1,\\\"Red\\\",[]],[1,3,1,\\\"Red\\\",[]],[1,2,1,\\\"Red\\\",[]],[1,1,1,\\\"Red\\\",[]],[1,0,1,\\\"Red\\\",[]],[0,3,1,\\\"Red\\\",[]],[0,2,1,\\\"Red\\\",[]],[0,1,1,\\\"Red\\\",[]],[0,0,1,\\\"Red\\\",[]],[3,3,2,\\\"Red\\\",[]],[3,2,2,\\\"Red\\\",[]],[3,1,2,\\\"Red\\\",[]],[3,0,2,\\\"Red\\\",[]],[2,3,2,\\\"Red\\\",[]],[2,2,2,\\\"Red\\\",[]],[2,1,2,\\\"Red\\\",[]],[2,0,2,\\\"Red\\\",[]],[1,3,2,\\\"Red\\\",[]],[1,2,2,\\\"Red\\\",[]],[1,1,2,\\\"Red\\\",[]],[1,0,2,\\\"Red\\\",[]],[0,3,2,\\\"Red\\\",[]],[0,2,2,\\\"Red\\\",[]],[0,1,2,\\\"Red\\\",[]],[0,0,2,\\\"Red\\\",[]],[3,3,3,\\\"Red\\\",[]],[3,2,3,\\\"Red\\\",[]],[3,1,3,\\\"Red\\\",[]],[3,0,3,\\\"Red\\\",[]],[2,3,3,\\\"Red\\\",[]],[2,2,3,\\\"Red\\\",[]],[2,1,3,\\\"Red\\\",[]],[2,0,3,\\\"Red\\\",[]],[1,3,3,\\\"Red\\\",[]],[1,2,3,\\\"Red\\\",[]],[1,1,3,\\\"Red\\\",[]],[1,0,3,\\\"Red\\\",[]],[0,3,3,\\\"Red\\\",[]],[0,2,3,\\\"Red\\\",[]],[0,1,3,\\\"Red\\\",[]],[0,0,3,\\\"Red\\\",[\\\"S\\\"]]])"} +{"time":"2017-01-16T20:26:38.826","id":"sidaw","log":"(:q \"brown cube size 5\")"} +{"time":"2017-01-16T20:26:51.672","id":"sidaw","log":"(:context [[3,3,0,\\\"Red\\\",[]],[3,2,0,\\\"Red\\\",[]],[3,1,0,\\\"Red\\\",[]],[3,0,0,\\\"Red\\\",[]],[2,3,0,\\\"Red\\\",[]],[2,2,0,\\\"Red\\\",[]],[2,1,0,\\\"Red\\\",[]],[2,0,0,\\\"Red\\\",[]],[1,5,0,\\\"Yellow\\\",[]],[1,4,0,\\\"Yellow\\\",[]],[1,3,0,\\\"Red\\\",[]],[1,2,0,\\\"Red\\\",[]],[1,1,0,\\\"Red\\\",[]],[1,0,0,\\\"Red\\\",[]],[0,5,0,\\\"Yellow\\\",[]],[0,4,0,\\\"Yellow\\\",[]],[0,3,0,\\\"Red\\\",[]],[0,2,0,\\\"Red\\\",[]],[0,1,0,\\\"Red\\\",[]],[0,0,0,\\\"Red\\\",[]],[-1,5,0,\\\"Yellow\\\",[]],[-1,4,0,\\\"Yellow\\\",[]],[-1,3,0,\\\"Yellow\\\",[]],[3,3,1,\\\"Red\\\",[]],[3,2,1,\\\"Red\\\",[]],[3,1,1,\\\"Red\\\",[]],[3,0,1,\\\"Red\\\",[]],[2,3,1,\\\"Red\\\",[]],[2,2,1,\\\"Red\\\",[]],[2,1,1,\\\"Red\\\",[]],[2,0,1,\\\"Red\\\",[]],[1,3,1,\\\"Red\\\",[]],[1,2,1,\\\"Red\\\",[]],[1,1,1,\\\"Red\\\",[]],[1,0,1,\\\"Red\\\",[]],[0,3,1,\\\"Red\\\",[]],[0,2,1,\\\"Red\\\",[]],[0,1,1,\\\"Red\\\",[]],[0,0,1,\\\"Red\\\",[]],[3,3,2,\\\"Red\\\",[]],[3,2,2,\\\"Red\\\",[]],[3,1,2,\\\"Red\\\",[]],[3,0,2,\\\"Red\\\",[]],[2,3,2,\\\"Red\\\",[]],[2,2,2,\\\"Red\\\",[]],[2,1,2,\\\"Red\\\",[]],[2,0,2,\\\"Red\\\",[]],[1,3,2,\\\"Red\\\",[]],[1,2,2,\\\"Red\\\",[]],[1,1,2,\\\"Red\\\",[]],[1,0,2,\\\"Red\\\",[]],[0,3,2,\\\"Red\\\",[]],[0,2,2,\\\"Red\\\",[]],[0,1,2,\\\"Red\\\",[]],[0,0,2,\\\"Red\\\",[]],[3,3,3,\\\"Red\\\",[]],[3,2,3,\\\"Red\\\",[]],[3,1,3,\\\"Red\\\",[]],[3,0,3,\\\"Red\\\",[]],[2,3,3,\\\"Red\\\",[]],[2,2,3,\\\"Red\\\",[]],[2,1,3,\\\"Red\\\",[]],[2,0,3,\\\"Red\\\",[]],[1,3,3,\\\"Red\\\",[]],[1,2,3,\\\"Red\\\",[]],[1,1,3,\\\"Red\\\",[]],[1,0,3,\\\"Red\\\",[]],[0,3,3,\\\"Red\\\",[]],[0,2,3,\\\"Red\\\",[]],[0,1,3,\\\"Red\\\",[]],[0,0,3,\\\"Red\\\",[\\\"S\\\"]]])"} +{"time":"2017-01-16T20:26:51.685","id":"sidaw","log":"(:q \"move back\")"} +{"time":"2017-01-16T20:26:58.249","id":"sidaw","log":"(:accept \"move back\" \"(: move back)\")"} +{"time":"2017-01-16T20:27:16.419","id":"sidaw","log":"(:context [[3,3,0,\\\"Red\\\",[]],[3,2,0,\\\"Red\\\",[]],[3,1,0,\\\"Red\\\",[]],[3,0,0,\\\"Red\\\",[]],[2,3,0,\\\"Red\\\",[]],[2,2,0,\\\"Red\\\",[]],[2,1,0,\\\"Red\\\",[]],[2,0,0,\\\"Red\\\",[]],[1,5,0,\\\"Yellow\\\",[]],[1,4,0,\\\"Yellow\\\",[]],[1,3,0,\\\"Red\\\",[]],[1,2,0,\\\"Red\\\",[]],[1,1,0,\\\"Red\\\",[]],[1,0,0,\\\"Red\\\",[]],[0,5,0,\\\"Yellow\\\",[]],[0,4,0,\\\"Yellow\\\",[]],[0,3,0,\\\"Red\\\",[]],[0,2,0,\\\"Red\\\",[]],[0,1,0,\\\"Red\\\",[]],[0,0,0,\\\"Red\\\",[]],[-1,5,0,\\\"Yellow\\\",[]],[-1,4,0,\\\"Yellow\\\",[]],[-1,3,0,\\\"Yellow\\\",[]],[3,3,1,\\\"Red\\\",[]],[3,2,1,\\\"Red\\\",[]],[3,1,1,\\\"Red\\\",[]],[3,0,1,\\\"Red\\\",[]],[2,3,1,\\\"Red\\\",[]],[2,2,1,\\\"Red\\\",[]],[2,1,1,\\\"Red\\\",[]],[2,0,1,\\\"Red\\\",[]],[1,3,1,\\\"Red\\\",[]],[1,2,1,\\\"Red\\\",[]],[1,1,1,\\\"Red\\\",[]],[1,0,1,\\\"Red\\\",[]],[0,3,1,\\\"Red\\\",[]],[0,2,1,\\\"Red\\\",[]],[0,1,1,\\\"Red\\\",[]],[0,0,1,\\\"Red\\\",[]],[3,3,2,\\\"Red\\\",[]],[3,2,2,\\\"Red\\\",[]],[3,1,2,\\\"Red\\\",[]],[3,0,2,\\\"Red\\\",[]],[2,3,2,\\\"Red\\\",[]],[2,2,2,\\\"Red\\\",[]],[2,1,2,\\\"Red\\\",[]],[2,0,2,\\\"Red\\\",[]],[1,3,2,\\\"Red\\\",[]],[1,2,2,\\\"Red\\\",[]],[1,1,2,\\\"Red\\\",[]],[1,0,2,\\\"Red\\\",[]],[0,3,2,\\\"Red\\\",[]],[0,2,2,\\\"Red\\\",[]],[0,1,2,\\\"Red\\\",[]],[0,0,2,\\\"Red\\\",[]],[3,3,3,\\\"Red\\\",[]],[3,2,3,\\\"Red\\\",[]],[3,1,3,\\\"Red\\\",[]],[3,0,3,\\\"Red\\\",[]],[2,3,3,\\\"Red\\\",[]],[2,2,3,\\\"Red\\\",[]],[2,1,3,\\\"Red\\\",[]],[2,0,3,\\\"Red\\\",[]],[1,3,3,\\\"Red\\\",[]],[1,2,3,\\\"Red\\\",[]],[1,1,3,\\\"Red\\\",[]],[1,0,3,\\\"Red\\\",[\\\"S\\\"]],[0,3,3,\\\"Red\\\",[]],[0,2,3,\\\"Red\\\",[]],[0,1,3,\\\"Red\\\",[]]])"} +{"time":"2017-01-16T20:27:16.442","id":"sidaw","log":"(:q \"select very back of very top of red\")"} +{"time":"2017-01-16T20:27:24.064","id":"sidaw","log":"(:context [[3,3,0,\\\"Red\\\",[]],[3,2,0,\\\"Red\\\",[]],[3,1,0,\\\"Red\\\",[]],[3,0,0,\\\"Red\\\",[]],[2,3,0,\\\"Red\\\",[]],[2,2,0,\\\"Red\\\",[]],[2,1,0,\\\"Red\\\",[]],[2,0,0,\\\"Red\\\",[]],[1,5,0,\\\"Yellow\\\",[]],[1,4,0,\\\"Yellow\\\",[]],[1,3,0,\\\"Red\\\",[]],[1,2,0,\\\"Red\\\",[]],[1,1,0,\\\"Red\\\",[]],[1,0,0,\\\"Red\\\",[]],[0,5,0,\\\"Yellow\\\",[]],[0,4,0,\\\"Yellow\\\",[]],[0,3,0,\\\"Red\\\",[]],[0,2,0,\\\"Red\\\",[]],[0,1,0,\\\"Red\\\",[]],[0,0,0,\\\"Red\\\",[]],[-1,5,0,\\\"Yellow\\\",[]],[-1,4,0,\\\"Yellow\\\",[]],[-1,3,0,\\\"Yellow\\\",[]],[3,3,1,\\\"Red\\\",[]],[3,2,1,\\\"Red\\\",[]],[3,1,1,\\\"Red\\\",[]],[3,0,1,\\\"Red\\\",[]],[2,3,1,\\\"Red\\\",[]],[2,2,1,\\\"Red\\\",[]],[2,1,1,\\\"Red\\\",[]],[2,0,1,\\\"Red\\\",[]],[1,3,1,\\\"Red\\\",[]],[1,2,1,\\\"Red\\\",[]],[1,1,1,\\\"Red\\\",[]],[1,0,1,\\\"Red\\\",[]],[0,3,1,\\\"Red\\\",[]],[0,2,1,\\\"Red\\\",[]],[0,1,1,\\\"Red\\\",[]],[0,0,1,\\\"Red\\\",[]],[3,3,2,\\\"Red\\\",[]],[3,2,2,\\\"Red\\\",[]],[3,1,2,\\\"Red\\\",[]],[3,0,2,\\\"Red\\\",[]],[2,3,2,\\\"Red\\\",[]],[2,2,2,\\\"Red\\\",[]],[2,1,2,\\\"Red\\\",[]],[2,0,2,\\\"Red\\\",[]],[1,3,2,\\\"Red\\\",[]],[1,2,2,\\\"Red\\\",[]],[1,1,2,\\\"Red\\\",[]],[1,0,2,\\\"Red\\\",[]],[0,3,2,\\\"Red\\\",[]],[0,2,2,\\\"Red\\\",[]],[0,1,2,\\\"Red\\\",[]],[0,0,2,\\\"Red\\\",[]],[3,3,3,\\\"Red\\\",[]],[3,2,3,\\\"Red\\\",[]],[3,1,3,\\\"Red\\\",[]],[3,0,3,\\\"Red\\\",[]],[2,3,3,\\\"Red\\\",[]],[2,2,3,\\\"Red\\\",[]],[2,1,3,\\\"Red\\\",[]],[2,0,3,\\\"Red\\\",[]],[1,3,3,\\\"Red\\\",[]],[1,2,3,\\\"Red\\\",[]],[1,1,3,\\\"Red\\\",[]],[1,0,3,\\\"Red\\\",[\\\"S\\\"]],[0,3,3,\\\"Red\\\",[]],[0,2,3,\\\"Red\\\",[]],[0,1,3,\\\"Red\\\",[]]])"} +{"time":"2017-01-16T20:27:24.088","id":"sidaw","log":"(:q \"select very back of very top of has color red\")"} +{"time":"2017-01-16T20:27:24.927","id":"sidaw","log":"(:accept \"select very back of very top of has color red\" \"(: select (call veryx back (call veryx top (color red))))\")"} +{"time":"2017-01-16T20:27:30.189","id":"sidaw","log":"(:context [[3,3,0,\\\"Red\\\",[]],[3,2,0,\\\"Red\\\",[]],[3,1,0,\\\"Red\\\",[]],[3,0,0,\\\"Red\\\",[]],[2,3,0,\\\"Red\\\",[]],[2,2,0,\\\"Red\\\",[]],[2,1,0,\\\"Red\\\",[]],[2,0,0,\\\"Red\\\",[]],[1,5,0,\\\"Yellow\\\",[]],[1,4,0,\\\"Yellow\\\",[]],[1,3,0,\\\"Red\\\",[]],[1,2,0,\\\"Red\\\",[]],[1,1,0,\\\"Red\\\",[]],[1,0,0,\\\"Red\\\",[]],[0,5,0,\\\"Yellow\\\",[]],[0,4,0,\\\"Yellow\\\",[]],[0,3,0,\\\"Red\\\",[]],[0,2,0,\\\"Red\\\",[]],[0,1,0,\\\"Red\\\",[]],[0,0,0,\\\"Red\\\",[]],[-1,5,0,\\\"Yellow\\\",[]],[-1,4,0,\\\"Yellow\\\",[]],[-1,3,0,\\\"Yellow\\\",[]],[3,3,1,\\\"Red\\\",[]],[3,2,1,\\\"Red\\\",[]],[3,1,1,\\\"Red\\\",[]],[3,0,1,\\\"Red\\\",[]],[2,3,1,\\\"Red\\\",[]],[2,2,1,\\\"Red\\\",[]],[2,1,1,\\\"Red\\\",[]],[2,0,1,\\\"Red\\\",[]],[1,3,1,\\\"Red\\\",[]],[1,2,1,\\\"Red\\\",[]],[1,1,1,\\\"Red\\\",[]],[1,0,1,\\\"Red\\\",[]],[0,3,1,\\\"Red\\\",[]],[0,2,1,\\\"Red\\\",[]],[0,1,1,\\\"Red\\\",[]],[0,0,1,\\\"Red\\\",[]],[3,3,2,\\\"Red\\\",[]],[3,2,2,\\\"Red\\\",[]],[3,1,2,\\\"Red\\\",[]],[3,0,2,\\\"Red\\\",[]],[2,3,2,\\\"Red\\\",[]],[2,2,2,\\\"Red\\\",[]],[2,1,2,\\\"Red\\\",[]],[2,0,2,\\\"Red\\\",[]],[1,3,2,\\\"Red\\\",[]],[1,2,2,\\\"Red\\\",[]],[1,1,2,\\\"Red\\\",[]],[1,0,2,\\\"Red\\\",[]],[0,3,2,\\\"Red\\\",[]],[0,2,2,\\\"Red\\\",[]],[0,1,2,\\\"Red\\\",[]],[0,0,2,\\\"Red\\\",[]],[3,3,3,\\\"Red\\\",[\\\"S\\\"]],[3,2,3,\\\"Red\\\",[\\\"S\\\"]],[3,1,3,\\\"Red\\\",[\\\"S\\\"]],[3,0,3,\\\"Red\\\",[\\\"S\\\"]],[2,3,3,\\\"Red\\\",[]],[2,2,3,\\\"Red\\\",[]],[2,1,3,\\\"Red\\\",[]],[2,0,3,\\\"Red\\\",[]],[1,3,3,\\\"Red\\\",[]],[1,2,3,\\\"Red\\\",[]],[1,1,3,\\\"Red\\\",[]],[1,0,3,\\\"Red\\\",[]],[0,3,3,\\\"Red\\\",[]],[0,2,3,\\\"Red\\\",[]],[0,1,3,\\\"Red\\\",[]]])"} +{"time":"2017-01-16T20:27:30.212","id":"sidaw","log":"(:q \"add blue top\")"} +{"time":"2017-01-16T20:27:30.799","id":"sidaw","log":"(:accept \"add blue top\" \"(: add blue top)\")"} +{"time":"2017-01-16T20:27:37.070","id":"sidaw","log":"(:context [[3,3,0,\\\"Red\\\",[]],[3,2,0,\\\"Red\\\",[]],[3,1,0,\\\"Red\\\",[]],[3,0,0,\\\"Red\\\",[]],[2,3,0,\\\"Red\\\",[]],[2,2,0,\\\"Red\\\",[]],[2,1,0,\\\"Red\\\",[]],[2,0,0,\\\"Red\\\",[]],[1,5,0,\\\"Yellow\\\",[]],[1,4,0,\\\"Yellow\\\",[]],[1,3,0,\\\"Red\\\",[]],[1,2,0,\\\"Red\\\",[]],[1,1,0,\\\"Red\\\",[]],[1,0,0,\\\"Red\\\",[]],[0,5,0,\\\"Yellow\\\",[]],[0,4,0,\\\"Yellow\\\",[]],[0,3,0,\\\"Red\\\",[]],[0,2,0,\\\"Red\\\",[]],[0,1,0,\\\"Red\\\",[]],[0,0,0,\\\"Red\\\",[]],[-1,5,0,\\\"Yellow\\\",[]],[-1,4,0,\\\"Yellow\\\",[]],[-1,3,0,\\\"Yellow\\\",[]],[3,3,1,\\\"Red\\\",[]],[3,2,1,\\\"Red\\\",[]],[3,1,1,\\\"Red\\\",[]],[3,0,1,\\\"Red\\\",[]],[2,3,1,\\\"Red\\\",[]],[2,2,1,\\\"Red\\\",[]],[2,1,1,\\\"Red\\\",[]],[2,0,1,\\\"Red\\\",[]],[1,3,1,\\\"Red\\\",[]],[1,2,1,\\\"Red\\\",[]],[1,1,1,\\\"Red\\\",[]],[1,0,1,\\\"Red\\\",[]],[0,3,1,\\\"Red\\\",[]],[0,2,1,\\\"Red\\\",[]],[0,1,1,\\\"Red\\\",[]],[0,0,1,\\\"Red\\\",[]],[3,3,2,\\\"Red\\\",[]],[3,2,2,\\\"Red\\\",[]],[3,1,2,\\\"Red\\\",[]],[3,0,2,\\\"Red\\\",[]],[2,3,2,\\\"Red\\\",[]],[2,2,2,\\\"Red\\\",[]],[2,1,2,\\\"Red\\\",[]],[2,0,2,\\\"Red\\\",[]],[1,3,2,\\\"Red\\\",[]],[1,2,2,\\\"Red\\\",[]],[1,1,2,\\\"Red\\\",[]],[1,0,2,\\\"Red\\\",[]],[0,3,2,\\\"Red\\\",[]],[0,2,2,\\\"Red\\\",[]],[0,1,2,\\\"Red\\\",[]],[0,0,2,\\\"Red\\\",[]],[3,3,3,\\\"Red\\\",[\\\"S\\\"]],[3,2,3,\\\"Red\\\",[\\\"S\\\"]],[3,1,3,\\\"Red\\\",[\\\"S\\\"]],[3,0,3,\\\"Red\\\",[\\\"S\\\"]],[2,3,3,\\\"Red\\\",[]],[2,2,3,\\\"Red\\\",[]],[2,1,3,\\\"Red\\\",[]],[2,0,3,\\\"Red\\\",[]],[1,3,3,\\\"Red\\\",[]],[1,2,3,\\\"Red\\\",[]],[1,1,3,\\\"Red\\\",[]],[1,0,3,\\\"Red\\\",[]],[0,3,3,\\\"Red\\\",[]],[0,2,3,\\\"Red\\\",[]],[0,1,3,\\\"Red\\\",[]],[3,3,4,\\\"Blue\\\",[]],[3,2,4,\\\"Blue\\\",[]],[3,1,4,\\\"Blue\\\",[]],[3,0,4,\\\"Blue\\\",[]]])"} +{"time":"2017-01-16T20:27:37.093","id":"sidaw","log":"(:q \"select blue\")"} +{"time":"2017-01-16T20:27:37.651","id":"sidaw","log":"(:accept \"select blue\" \"(: select (color blue))\")"} +{"time":"2017-01-16T20:28:01.561","id":"sidaw","log":"(:context [[3,3,0,\\\"Red\\\",[]],[3,2,0,\\\"Red\\\",[]],[3,1,0,\\\"Red\\\",[]],[3,0,0,\\\"Red\\\",[]],[2,3,0,\\\"Red\\\",[]],[2,2,0,\\\"Red\\\",[]],[2,1,0,\\\"Red\\\",[]],[2,0,0,\\\"Red\\\",[]],[1,5,0,\\\"Yellow\\\",[]],[1,4,0,\\\"Yellow\\\",[]],[1,3,0,\\\"Red\\\",[]],[1,2,0,\\\"Red\\\",[]],[1,1,0,\\\"Red\\\",[]],[1,0,0,\\\"Red\\\",[]],[0,5,0,\\\"Yellow\\\",[]],[0,4,0,\\\"Yellow\\\",[]],[0,3,0,\\\"Red\\\",[]],[0,2,0,\\\"Red\\\",[]],[0,1,0,\\\"Red\\\",[]],[0,0,0,\\\"Red\\\",[]],[-1,5,0,\\\"Yellow\\\",[]],[-1,4,0,\\\"Yellow\\\",[]],[-1,3,0,\\\"Yellow\\\",[]],[3,3,1,\\\"Red\\\",[]],[3,2,1,\\\"Red\\\",[]],[3,1,1,\\\"Red\\\",[]],[3,0,1,\\\"Red\\\",[]],[2,3,1,\\\"Red\\\",[]],[2,2,1,\\\"Red\\\",[]],[2,1,1,\\\"Red\\\",[]],[2,0,1,\\\"Red\\\",[]],[1,3,1,\\\"Red\\\",[]],[1,2,1,\\\"Red\\\",[]],[1,1,1,\\\"Red\\\",[]],[1,0,1,\\\"Red\\\",[]],[0,3,1,\\\"Red\\\",[]],[0,2,1,\\\"Red\\\",[]],[0,1,1,\\\"Red\\\",[]],[0,0,1,\\\"Red\\\",[]],[3,3,2,\\\"Red\\\",[]],[3,2,2,\\\"Red\\\",[]],[3,1,2,\\\"Red\\\",[]],[3,0,2,\\\"Red\\\",[]],[2,3,2,\\\"Red\\\",[]],[2,2,2,\\\"Red\\\",[]],[2,1,2,\\\"Red\\\",[]],[2,0,2,\\\"Red\\\",[]],[1,3,2,\\\"Red\\\",[]],[1,2,2,\\\"Red\\\",[]],[1,1,2,\\\"Red\\\",[]],[1,0,2,\\\"Red\\\",[]],[0,3,2,\\\"Red\\\",[]],[0,2,2,\\\"Red\\\",[]],[0,1,2,\\\"Red\\\",[]],[0,0,2,\\\"Red\\\",[]],[3,3,3,\\\"Red\\\",[]],[3,2,3,\\\"Red\\\",[]],[3,1,3,\\\"Red\\\",[]],[3,0,3,\\\"Red\\\",[]],[2,3,3,\\\"Red\\\",[]],[2,2,3,\\\"Red\\\",[]],[2,1,3,\\\"Red\\\",[]],[2,0,3,\\\"Red\\\",[]],[1,3,3,\\\"Red\\\",[]],[1,2,3,\\\"Red\\\",[]],[1,1,3,\\\"Red\\\",[]],[1,0,3,\\\"Red\\\",[]],[0,3,3,\\\"Red\\\",[]],[0,2,3,\\\"Red\\\",[]],[0,1,3,\\\"Red\\\",[]],[3,3,4,\\\"Blue\\\",[\\\"S\\\"]],[3,2,4,\\\"Blue\\\",[\\\"S\\\"]],[3,1,4,\\\"Blue\\\",[\\\"S\\\"]],[3,0,4,\\\"Blue\\\",[\\\"S\\\"]]])"} +{"time":"2017-01-16T20:28:01.569","id":"sidaw","log":"(:q \"select this and not very left and not very right\")"} +{"time":"2017-01-16T20:28:03.554","id":"sidaw","log":"(:accept \"select this and not very left and not very right\" \"(: select (and (and this (not (call veryx left))) (not (call veryx right))))\")"} +{"time":"2017-01-16T20:28:06.983","id":"sidaw","log":"(:context [[3,3,0,\\\"Red\\\",[]],[3,2,0,\\\"Red\\\",[]],[3,1,0,\\\"Red\\\",[]],[3,0,0,\\\"Red\\\",[]],[2,3,0,\\\"Red\\\",[]],[2,2,0,\\\"Red\\\",[]],[2,1,0,\\\"Red\\\",[]],[2,0,0,\\\"Red\\\",[]],[1,5,0,\\\"Yellow\\\",[]],[1,4,0,\\\"Yellow\\\",[]],[1,3,0,\\\"Red\\\",[]],[1,2,0,\\\"Red\\\",[]],[1,1,0,\\\"Red\\\",[]],[1,0,0,\\\"Red\\\",[]],[0,5,0,\\\"Yellow\\\",[]],[0,4,0,\\\"Yellow\\\",[]],[0,3,0,\\\"Red\\\",[]],[0,2,0,\\\"Red\\\",[]],[0,1,0,\\\"Red\\\",[]],[0,0,0,\\\"Red\\\",[]],[-1,5,0,\\\"Yellow\\\",[]],[-1,4,0,\\\"Yellow\\\",[]],[-1,3,0,\\\"Yellow\\\",[]],[3,3,1,\\\"Red\\\",[]],[3,2,1,\\\"Red\\\",[]],[3,1,1,\\\"Red\\\",[]],[3,0,1,\\\"Red\\\",[]],[2,3,1,\\\"Red\\\",[]],[2,2,1,\\\"Red\\\",[]],[2,1,1,\\\"Red\\\",[]],[2,0,1,\\\"Red\\\",[]],[1,3,1,\\\"Red\\\",[]],[1,2,1,\\\"Red\\\",[]],[1,1,1,\\\"Red\\\",[]],[1,0,1,\\\"Red\\\",[]],[0,3,1,\\\"Red\\\",[]],[0,2,1,\\\"Red\\\",[]],[0,1,1,\\\"Red\\\",[]],[0,0,1,\\\"Red\\\",[]],[3,3,2,\\\"Red\\\",[]],[3,2,2,\\\"Red\\\",[]],[3,1,2,\\\"Red\\\",[]],[3,0,2,\\\"Red\\\",[]],[2,3,2,\\\"Red\\\",[]],[2,2,2,\\\"Red\\\",[]],[2,1,2,\\\"Red\\\",[]],[2,0,2,\\\"Red\\\",[]],[1,3,2,\\\"Red\\\",[]],[1,2,2,\\\"Red\\\",[]],[1,1,2,\\\"Red\\\",[]],[1,0,2,\\\"Red\\\",[]],[0,3,2,\\\"Red\\\",[]],[0,2,2,\\\"Red\\\",[]],[0,1,2,\\\"Red\\\",[]],[0,0,2,\\\"Red\\\",[]],[3,3,3,\\\"Red\\\",[]],[3,2,3,\\\"Red\\\",[]],[3,1,3,\\\"Red\\\",[]],[3,0,3,\\\"Red\\\",[]],[2,3,3,\\\"Red\\\",[]],[2,2,3,\\\"Red\\\",[]],[2,1,3,\\\"Red\\\",[]],[2,0,3,\\\"Red\\\",[]],[1,3,3,\\\"Red\\\",[]],[1,2,3,\\\"Red\\\",[]],[1,1,3,\\\"Red\\\",[]],[1,0,3,\\\"Red\\\",[]],[0,3,3,\\\"Red\\\",[]],[0,2,3,\\\"Red\\\",[]],[0,1,3,\\\"Red\\\",[]],[3,3,4,\\\"Blue\\\",[]],[3,2,4,\\\"Blue\\\",[\\\"S\\\"]],[3,1,4,\\\"Blue\\\",[\\\"S\\\"]],[3,0,4,\\\"Blue\\\",[]]])"} +{"time":"2017-01-16T20:28:07.006","id":"sidaw","log":"(:q \"add yellow top\")"} +{"time":"2017-01-16T20:28:07.517","id":"sidaw","log":"(:accept \"add yellow top\" \"(: add yellow top)\")"} +{"time":"2017-01-16T20:28:43.048","id":"sidaw","log":"(:context [[0,0,0,\\\"Fake\\\",[\\\"S\\\"]]])"} +{"time":"2017-01-16T20:28:43.071","id":"sidaw","log":"(:q \"brown beam top 5\")"} +{"time":"2017-01-16T20:28:44.801","id":"sidaw","log":"(:context [[0,0,0,\\\"Fake\\\",[\\\"S\\\"]]])"} +{"time":"2017-01-16T20:28:44.809","id":"sidaw","log":"(:q \"brown beam top 10\")"} +{"time":"2017-01-16T20:28:46.788","id":"sidaw","log":"(:context [[0,0,0,\\\"Fake\\\",[\\\"S\\\"]]])"} +{"time":"2017-01-16T20:28:46.811","id":"sidaw","log":"(:q \"brown beam top 12\")"} +{"time":"2017-01-16T20:28:54.718","id":"sidaw","log":"(:context [[0,0,0,\\\"Fake\\\",[\\\"S\\\"]]])"} +{"time":"2017-01-16T20:28:54.726","id":"sidaw","log":"(:q \"brown beam top 9\")"} +{"time":"2017-01-16T20:28:57.036","id":"sidaw","log":"(:context [[0,0,0,\\\"Fake\\\",[\\\"S\\\"]]])"} +{"time":"2017-01-16T20:28:57.049","id":"sidaw","log":"(:q \"brown beam top 10\")"} +{"time":"2017-01-16T20:28:57.414","id":"sidaw","log":"(:accept \"brown beam top 10\" \"(:blk (:loop (number 10) (:s (: add brown here) (: select (call adj top)))))\")"} +{"time":"2017-01-16T20:29:07.992","id":"sidaw","log":"(:context [[0,0,0,\\\"Brown\\\",[\\\"S\\\"]],[0,0,1,\\\"Brown\\\",[]],[0,0,2,\\\"Brown\\\",[]],[0,0,3,\\\"Brown\\\",[]],[0,0,4,\\\"Brown\\\",[]],[0,0,5,\\\"Brown\\\",[]],[0,0,6,\\\"Brown\\\",[]],[0,0,7,\\\"Brown\\\",[]],[0,0,8,\\\"Brown\\\",[]],[0,0,9,\\\"Brown\\\",[]]])"} +{"time":"2017-01-16T20:29:08.004","id":"sidaw","log":"(:q \"green branch 3\")"} +{"time":"2017-01-16T20:29:23.596","id":"sidaw","log":"(:context [[0,0,0,\\\"Brown\\\",[\\\"S\\\"]],[0,0,1,\\\"Brown\\\",[]],[0,0,2,\\\"Brown\\\",[]],[0,0,3,\\\"Brown\\\",[]],[0,0,4,\\\"Brown\\\",[]],[0,0,5,\\\"Brown\\\",[]],[0,0,6,\\\"Brown\\\",[]],[0,0,7,\\\"Brown\\\",[]],[0,0,8,\\\"Brown\\\",[]],[0,0,9,\\\"Brown\\\",[]]])"} +{"time":"2017-01-16T20:29:23.618","id":"sidaw","log":"(:q \"repeat 3 [add green left; add green right; add green front; add green back]\")"} +{"time":"2017-01-16T20:29:24.983","id":"sidaw","log":"(:accept \"repeat 3 [add green left; add green right; add green front; add green back]\" \"(:loop (number 3) (:s (:s (:s (: add green left) (: add green right)) (: add green front)) (: add green back)))\")"} +{"time":"2017-01-16T20:29:26.228","id":"sidaw","log":"(:def_ret \"green branch 3\" \"[[\\\"repeat 3 [add green left; add green right; add green front; add green back]\\\",\\\"(:loop (number 3) (:s (:s (:s (: add green left) (: add green right)) (: add green front)) (: add green back)))\\\"]]\")"} +{"time":"2017-01-16T20:29:33.013","id":"sidaw","log":"(:context [[0,0,0,\\\"Brown\\\",[\\\"S\\\"]],[0,0,1,\\\"Brown\\\",[]],[0,0,2,\\\"Brown\\\",[]],[0,0,3,\\\"Brown\\\",[]],[0,0,4,\\\"Brown\\\",[]],[0,0,5,\\\"Brown\\\",[]],[0,0,6,\\\"Brown\\\",[]],[0,0,7,\\\"Brown\\\",[]],[0,0,8,\\\"Brown\\\",[]],[0,0,9,\\\"Brown\\\",[]]])"} +{"time":"2017-01-16T20:29:33.035","id":"sidaw","log":"(:q \"select top\")"} +{"time":"2017-01-16T20:29:33.408","id":"sidaw","log":"(:accept \"select top\" \"(: select (call adj top))\")"} +{"time":"2017-01-16T20:29:37.301","id":"sidaw","log":"(:context [[0,0,0,\\\"Brown\\\",[]],[0,0,1,\\\"Brown\\\",[\\\"S\\\"]],[0,0,2,\\\"Brown\\\",[]],[0,0,3,\\\"Brown\\\",[]],[0,0,4,\\\"Brown\\\",[]],[0,0,5,\\\"Brown\\\",[]],[0,0,6,\\\"Brown\\\",[]],[0,0,7,\\\"Brown\\\",[]],[0,0,8,\\\"Brown\\\",[]],[0,0,9,\\\"Brown\\\",[]]])"} +{"time":"2017-01-16T20:29:37.323","id":"sidaw","log":"(:q \"green branch 3\")"} +{"time":"2017-01-16T20:29:38.826","id":"sidaw","log":"(:context [[0,0,0,\\\"Brown\\\",[]],[0,0,1,\\\"Brown\\\",[\\\"S\\\"]],[0,0,2,\\\"Brown\\\",[]],[0,0,3,\\\"Brown\\\",[]],[0,0,4,\\\"Brown\\\",[]],[0,0,5,\\\"Brown\\\",[]],[0,0,6,\\\"Brown\\\",[]],[0,0,7,\\\"Brown\\\",[]],[0,0,8,\\\"Brown\\\",[]],[0,0,9,\\\"Brown\\\",[]]])"} +{"time":"2017-01-16T20:29:38.839","id":"sidaw","log":"(:q \"green branch 4\")"} +{"time":"2017-01-16T20:29:40.267","id":"sidaw","log":"(:accept \"green branch 4\" \"(:loop (number 4) (:s (:s (:s (: add green left) (: add green right)) (: add green front)) (: add green back)))\")"} +{"time":"2017-01-16T20:29:42.986","id":"sidaw","log":"(:context [[0,0,0,\\\"Brown\\\",[]],[4,0,1,\\\"Green\\\",[]],[3,0,1,\\\"Green\\\",[]],[2,0,1,\\\"Green\\\",[]],[1,0,1,\\\"Green\\\",[]],[0,4,1,\\\"Green\\\",[]],[0,3,1,\\\"Green\\\",[]],[0,2,1,\\\"Green\\\",[]],[0,1,1,\\\"Green\\\",[]],[0,0,1,\\\"Brown\\\",[\\\"S\\\"]],[0,-1,1,\\\"Green\\\",[]],[0,-2,1,\\\"Green\\\",[]],[0,-3,1,\\\"Green\\\",[]],[0,-4,1,\\\"Green\\\",[]],[-1,0,1,\\\"Green\\\",[]],[-2,0,1,\\\"Green\\\",[]],[-3,0,1,\\\"Green\\\",[]],[-4,0,1,\\\"Green\\\",[]],[0,0,2,\\\"Brown\\\",[]],[0,0,3,\\\"Brown\\\",[]],[0,0,4,\\\"Brown\\\",[]],[0,0,5,\\\"Brown\\\",[]],[0,0,6,\\\"Brown\\\",[]],[0,0,7,\\\"Brown\\\",[]],[0,0,8,\\\"Brown\\\",[]],[0,0,9,\\\"Brown\\\",[]]])"} +{"time":"2017-01-16T20:29:43","id":"sidaw","log":"(:q \"select top of top\")"} +{"time":"2017-01-16T20:29:43.446","id":"sidaw","log":"(:accept \"select top of top\" \"(: select (call adj top (call adj top)))\")"} +{"time":"2017-01-16T20:29:48.719","id":"sidaw","log":"(:context [[0,0,0,\\\"Brown\\\",[]],[4,0,1,\\\"Green\\\",[]],[3,0,1,\\\"Green\\\",[]],[2,0,1,\\\"Green\\\",[]],[1,0,1,\\\"Green\\\",[]],[0,4,1,\\\"Green\\\",[]],[0,3,1,\\\"Green\\\",[]],[0,2,1,\\\"Green\\\",[]],[0,1,1,\\\"Green\\\",[]],[0,0,1,\\\"Brown\\\",[]],[0,-1,1,\\\"Green\\\",[]],[0,-2,1,\\\"Green\\\",[]],[0,-3,1,\\\"Green\\\",[]],[0,-4,1,\\\"Green\\\",[]],[-1,0,1,\\\"Green\\\",[]],[-2,0,1,\\\"Green\\\",[]],[-3,0,1,\\\"Green\\\",[]],[-4,0,1,\\\"Green\\\",[]],[0,0,2,\\\"Brown\\\",[]],[0,0,3,\\\"Brown\\\",[\\\"S\\\"]],[0,0,4,\\\"Brown\\\",[]],[0,0,5,\\\"Brown\\\",[]],[0,0,6,\\\"Brown\\\",[]],[0,0,7,\\\"Brown\\\",[]],[0,0,8,\\\"Brown\\\",[]],[0,0,9,\\\"Brown\\\",[]]])"} +{"time":"2017-01-16T20:29:48.741","id":"sidaw","log":"(:q \"yellow branch 5\")"} +{"time":"2017-01-16T20:29:53.436","id":"sidaw","log":"(:context [[0,0,0,\\\"Brown\\\",[]],[4,0,1,\\\"Green\\\",[]],[3,0,1,\\\"Green\\\",[]],[2,0,1,\\\"Green\\\",[]],[1,0,1,\\\"Green\\\",[]],[0,4,1,\\\"Green\\\",[]],[0,3,1,\\\"Green\\\",[]],[0,2,1,\\\"Green\\\",[]],[0,1,1,\\\"Green\\\",[]],[0,0,1,\\\"Brown\\\",[]],[0,-1,1,\\\"Green\\\",[]],[0,-2,1,\\\"Green\\\",[]],[0,-3,1,\\\"Green\\\",[]],[0,-4,1,\\\"Green\\\",[]],[-1,0,1,\\\"Green\\\",[]],[-2,0,1,\\\"Green\\\",[]],[-3,0,1,\\\"Green\\\",[]],[-4,0,1,\\\"Green\\\",[]],[0,0,2,\\\"Brown\\\",[]],[0,0,3,\\\"Brown\\\",[\\\"S\\\"]],[0,0,4,\\\"Brown\\\",[]],[0,0,5,\\\"Brown\\\",[]],[0,0,6,\\\"Brown\\\",[]],[0,0,7,\\\"Brown\\\",[]],[0,0,8,\\\"Brown\\\",[]],[0,0,9,\\\"Brown\\\",[]]])"} +{"time":"2017-01-16T20:29:53.458","id":"sidaw","log":"(:q \"green branch 5\")"} +{"time":"2017-01-16T20:29:54.990","id":"sidaw","log":"(:accept \"green branch 5\" \"(:loop (number 5) (:s (:s (:s (: add green left) (: add green right)) (: add green front)) (: add green back)))\")"} +{"time":"2017-01-16T20:29:58.690","id":"sidaw","log":"(:context [[0,0,0,\\\"Brown\\\",[]],[4,0,1,\\\"Green\\\",[]],[3,0,1,\\\"Green\\\",[]],[2,0,1,\\\"Green\\\",[]],[1,0,1,\\\"Green\\\",[]],[0,4,1,\\\"Green\\\",[]],[0,3,1,\\\"Green\\\",[]],[0,2,1,\\\"Green\\\",[]],[0,1,1,\\\"Green\\\",[]],[0,0,1,\\\"Brown\\\",[]],[0,-1,1,\\\"Green\\\",[]],[0,-2,1,\\\"Green\\\",[]],[0,-3,1,\\\"Green\\\",[]],[0,-4,1,\\\"Green\\\",[]],[-1,0,1,\\\"Green\\\",[]],[-2,0,1,\\\"Green\\\",[]],[-3,0,1,\\\"Green\\\",[]],[-4,0,1,\\\"Green\\\",[]],[0,0,2,\\\"Brown\\\",[]],[5,0,3,\\\"Green\\\",[]],[4,0,3,\\\"Green\\\",[]],[3,0,3,\\\"Green\\\",[]],[2,0,3,\\\"Green\\\",[]],[1,0,3,\\\"Green\\\",[]],[0,5,3,\\\"Green\\\",[]],[0,4,3,\\\"Green\\\",[]],[0,3,3,\\\"Green\\\",[]],[0,2,3,\\\"Green\\\",[]],[0,1,3,\\\"Green\\\",[]],[0,0,3,\\\"Brown\\\",[\\\"S\\\"]],[0,-1,3,\\\"Green\\\",[]],[0,-2,3,\\\"Green\\\",[]],[0,-3,3,\\\"Green\\\",[]],[0,-4,3,\\\"Green\\\",[]],[0,-5,3,\\\"Green\\\",[]],[-1,0,3,\\\"Green\\\",[]],[-2,0,3,\\\"Green\\\",[]],[-3,0,3,\\\"Green\\\",[]],[-4,0,3,\\\"Green\\\",[]],[-5,0,3,\\\"Green\\\",[]],[0,0,4,\\\"Brown\\\",[]],[0,0,5,\\\"Brown\\\",[]],[0,0,6,\\\"Brown\\\",[]],[0,0,7,\\\"Brown\\\",[]],[0,0,8,\\\"Brown\\\",[]],[0,0,9,\\\"Brown\\\",[]]])"} +{"time":"2017-01-16T20:29:58.698","id":"sidaw","log":"(:q \"select top\")"} +{"time":"2017-01-16T20:29:59.064","id":"sidaw","log":"(:accept \"select top\" \"(: select (call adj top))\")"} +{"time":"2017-01-16T20:30:02.154","id":"sidaw","log":"(:context [[0,0,0,\\\"Brown\\\",[]],[4,0,1,\\\"Green\\\",[]],[3,0,1,\\\"Green\\\",[]],[2,0,1,\\\"Green\\\",[]],[1,0,1,\\\"Green\\\",[]],[0,4,1,\\\"Green\\\",[]],[0,3,1,\\\"Green\\\",[]],[0,2,1,\\\"Green\\\",[]],[0,1,1,\\\"Green\\\",[]],[0,0,1,\\\"Brown\\\",[]],[0,-1,1,\\\"Green\\\",[]],[0,-2,1,\\\"Green\\\",[]],[0,-3,1,\\\"Green\\\",[]],[0,-4,1,\\\"Green\\\",[]],[-1,0,1,\\\"Green\\\",[]],[-2,0,1,\\\"Green\\\",[]],[-3,0,1,\\\"Green\\\",[]],[-4,0,1,\\\"Green\\\",[]],[0,0,2,\\\"Brown\\\",[]],[5,0,3,\\\"Green\\\",[]],[4,0,3,\\\"Green\\\",[]],[3,0,3,\\\"Green\\\",[]],[2,0,3,\\\"Green\\\",[]],[1,0,3,\\\"Green\\\",[]],[0,5,3,\\\"Green\\\",[]],[0,4,3,\\\"Green\\\",[]],[0,3,3,\\\"Green\\\",[]],[0,2,3,\\\"Green\\\",[]],[0,1,3,\\\"Green\\\",[]],[0,0,3,\\\"Brown\\\",[]],[0,-1,3,\\\"Green\\\",[]],[0,-2,3,\\\"Green\\\",[]],[0,-3,3,\\\"Green\\\",[]],[0,-4,3,\\\"Green\\\",[]],[0,-5,3,\\\"Green\\\",[]],[-1,0,3,\\\"Green\\\",[]],[-2,0,3,\\\"Green\\\",[]],[-3,0,3,\\\"Green\\\",[]],[-4,0,3,\\\"Green\\\",[]],[-5,0,3,\\\"Green\\\",[]],[0,0,4,\\\"Brown\\\",[\\\"S\\\"]],[0,0,5,\\\"Brown\\\",[]],[0,0,6,\\\"Brown\\\",[]],[0,0,7,\\\"Brown\\\",[]],[0,0,8,\\\"Brown\\\",[]],[0,0,9,\\\"Brown\\\",[]]])"} +{"time":"2017-01-16T20:30:02.162","id":"sidaw","log":"(:q \"green branch 3\")"} +{"time":"2017-01-16T20:30:02.973","id":"sidaw","log":"(:accept \"green branch 3\" \"(:loop (number 3) (:s (:s (:s (: add green left) (: add green right)) (: add green front)) (: add green back)))\")"} +{"time":"2017-01-16T20:30:06.304","id":"sidaw","log":"(:context [[0,0,0,\\\"Brown\\\",[]],[4,0,1,\\\"Green\\\",[]],[3,0,1,\\\"Green\\\",[]],[2,0,1,\\\"Green\\\",[]],[1,0,1,\\\"Green\\\",[]],[0,4,1,\\\"Green\\\",[]],[0,3,1,\\\"Green\\\",[]],[0,2,1,\\\"Green\\\",[]],[0,1,1,\\\"Green\\\",[]],[0,0,1,\\\"Brown\\\",[]],[0,-1,1,\\\"Green\\\",[]],[0,-2,1,\\\"Green\\\",[]],[0,-3,1,\\\"Green\\\",[]],[0,-4,1,\\\"Green\\\",[]],[-1,0,1,\\\"Green\\\",[]],[-2,0,1,\\\"Green\\\",[]],[-3,0,1,\\\"Green\\\",[]],[-4,0,1,\\\"Green\\\",[]],[0,0,2,\\\"Brown\\\",[]],[5,0,3,\\\"Green\\\",[]],[4,0,3,\\\"Green\\\",[]],[3,0,3,\\\"Green\\\",[]],[2,0,3,\\\"Green\\\",[]],[1,0,3,\\\"Green\\\",[]],[0,5,3,\\\"Green\\\",[]],[0,4,3,\\\"Green\\\",[]],[0,3,3,\\\"Green\\\",[]],[0,2,3,\\\"Green\\\",[]],[0,1,3,\\\"Green\\\",[]],[0,0,3,\\\"Brown\\\",[]],[0,-1,3,\\\"Green\\\",[]],[0,-2,3,\\\"Green\\\",[]],[0,-3,3,\\\"Green\\\",[]],[0,-4,3,\\\"Green\\\",[]],[0,-5,3,\\\"Green\\\",[]],[-1,0,3,\\\"Green\\\",[]],[-2,0,3,\\\"Green\\\",[]],[-3,0,3,\\\"Green\\\",[]],[-4,0,3,\\\"Green\\\",[]],[-5,0,3,\\\"Green\\\",[]],[3,0,4,\\\"Green\\\",[]],[2,0,4,\\\"Green\\\",[]],[1,0,4,\\\"Green\\\",[]],[0,3,4,\\\"Green\\\",[]],[0,2,4,\\\"Green\\\",[]],[0,1,4,\\\"Green\\\",[]],[0,0,4,\\\"Brown\\\",[\\\"S\\\"]],[0,-1,4,\\\"Green\\\",[]],[0,-2,4,\\\"Green\\\",[]],[0,-3,4,\\\"Green\\\",[]],[-1,0,4,\\\"Green\\\",[]],[-2,0,4,\\\"Green\\\",[]],[-3,0,4,\\\"Green\\\",[]],[0,0,5,\\\"Brown\\\",[]],[0,0,6,\\\"Brown\\\",[]],[0,0,7,\\\"Brown\\\",[]],[0,0,8,\\\"Brown\\\",[]],[0,0,9,\\\"Brown\\\",[]]])"} +{"time":"2017-01-16T20:30:06.312","id":"sidaw","log":"(:q \"select top of top\")"} +{"time":"2017-01-16T20:30:06.711","id":"sidaw","log":"(:accept \"select top of top\" \"(: select (call adj top (call adj top)))\")"} +{"time":"2017-01-16T20:30:09.165","id":"sidaw","log":"(:context [[0,0,0,\\\"Brown\\\",[]],[4,0,1,\\\"Green\\\",[]],[3,0,1,\\\"Green\\\",[]],[2,0,1,\\\"Green\\\",[]],[1,0,1,\\\"Green\\\",[]],[0,4,1,\\\"Green\\\",[]],[0,3,1,\\\"Green\\\",[]],[0,2,1,\\\"Green\\\",[]],[0,1,1,\\\"Green\\\",[]],[0,0,1,\\\"Brown\\\",[]],[0,-1,1,\\\"Green\\\",[]],[0,-2,1,\\\"Green\\\",[]],[0,-3,1,\\\"Green\\\",[]],[0,-4,1,\\\"Green\\\",[]],[-1,0,1,\\\"Green\\\",[]],[-2,0,1,\\\"Green\\\",[]],[-3,0,1,\\\"Green\\\",[]],[-4,0,1,\\\"Green\\\",[]],[0,0,2,\\\"Brown\\\",[]],[5,0,3,\\\"Green\\\",[]],[4,0,3,\\\"Green\\\",[]],[3,0,3,\\\"Green\\\",[]],[2,0,3,\\\"Green\\\",[]],[1,0,3,\\\"Green\\\",[]],[0,5,3,\\\"Green\\\",[]],[0,4,3,\\\"Green\\\",[]],[0,3,3,\\\"Green\\\",[]],[0,2,3,\\\"Green\\\",[]],[0,1,3,\\\"Green\\\",[]],[0,0,3,\\\"Brown\\\",[]],[0,-1,3,\\\"Green\\\",[]],[0,-2,3,\\\"Green\\\",[]],[0,-3,3,\\\"Green\\\",[]],[0,-4,3,\\\"Green\\\",[]],[0,-5,3,\\\"Green\\\",[]],[-1,0,3,\\\"Green\\\",[]],[-2,0,3,\\\"Green\\\",[]],[-3,0,3,\\\"Green\\\",[]],[-4,0,3,\\\"Green\\\",[]],[-5,0,3,\\\"Green\\\",[]],[3,0,4,\\\"Green\\\",[]],[2,0,4,\\\"Green\\\",[]],[1,0,4,\\\"Green\\\",[]],[0,3,4,\\\"Green\\\",[]],[0,2,4,\\\"Green\\\",[]],[0,1,4,\\\"Green\\\",[]],[0,0,4,\\\"Brown\\\",[]],[0,-1,4,\\\"Green\\\",[]],[0,-2,4,\\\"Green\\\",[]],[0,-3,4,\\\"Green\\\",[]],[-1,0,4,\\\"Green\\\",[]],[-2,0,4,\\\"Green\\\",[]],[-3,0,4,\\\"Green\\\",[]],[0,0,5,\\\"Brown\\\",[]],[0,0,6,\\\"Brown\\\",[\\\"S\\\"]],[0,0,7,\\\"Brown\\\",[]],[0,0,8,\\\"Brown\\\",[]],[0,0,9,\\\"Brown\\\",[]]])"} +{"time":"2017-01-16T20:30:09.187","id":"sidaw","log":"(:q \"green branch 2\")"} +{"time":"2017-01-16T20:30:09.580","id":"sidaw","log":"(:accept \"green branch 2\" \"(:loop (number 2) (:s (:s (:s (: add green left) (: add green right)) (: add green front)) (: add green back)))\")"} +{"time":"2017-01-16T20:30:12.155","id":"sidaw","log":"(:context [[0,0,0,\\\"Brown\\\",[]],[4,0,1,\\\"Green\\\",[]],[3,0,1,\\\"Green\\\",[]],[2,0,1,\\\"Green\\\",[]],[1,0,1,\\\"Green\\\",[]],[0,4,1,\\\"Green\\\",[]],[0,3,1,\\\"Green\\\",[]],[0,2,1,\\\"Green\\\",[]],[0,1,1,\\\"Green\\\",[]],[0,0,1,\\\"Brown\\\",[]],[0,-1,1,\\\"Green\\\",[]],[0,-2,1,\\\"Green\\\",[]],[0,-3,1,\\\"Green\\\",[]],[0,-4,1,\\\"Green\\\",[]],[-1,0,1,\\\"Green\\\",[]],[-2,0,1,\\\"Green\\\",[]],[-3,0,1,\\\"Green\\\",[]],[-4,0,1,\\\"Green\\\",[]],[0,0,2,\\\"Brown\\\",[]],[5,0,3,\\\"Green\\\",[]],[4,0,3,\\\"Green\\\",[]],[3,0,3,\\\"Green\\\",[]],[2,0,3,\\\"Green\\\",[]],[1,0,3,\\\"Green\\\",[]],[0,5,3,\\\"Green\\\",[]],[0,4,3,\\\"Green\\\",[]],[0,3,3,\\\"Green\\\",[]],[0,2,3,\\\"Green\\\",[]],[0,1,3,\\\"Green\\\",[]],[0,0,3,\\\"Brown\\\",[]],[0,-1,3,\\\"Green\\\",[]],[0,-2,3,\\\"Green\\\",[]],[0,-3,3,\\\"Green\\\",[]],[0,-4,3,\\\"Green\\\",[]],[0,-5,3,\\\"Green\\\",[]],[-1,0,3,\\\"Green\\\",[]],[-2,0,3,\\\"Green\\\",[]],[-3,0,3,\\\"Green\\\",[]],[-4,0,3,\\\"Green\\\",[]],[-5,0,3,\\\"Green\\\",[]],[3,0,4,\\\"Green\\\",[]],[2,0,4,\\\"Green\\\",[]],[1,0,4,\\\"Green\\\",[]],[0,3,4,\\\"Green\\\",[]],[0,2,4,\\\"Green\\\",[]],[0,1,4,\\\"Green\\\",[]],[0,0,4,\\\"Brown\\\",[]],[0,-1,4,\\\"Green\\\",[]],[0,-2,4,\\\"Green\\\",[]],[0,-3,4,\\\"Green\\\",[]],[-1,0,4,\\\"Green\\\",[]],[-2,0,4,\\\"Green\\\",[]],[-3,0,4,\\\"Green\\\",[]],[0,0,5,\\\"Brown\\\",[]],[2,0,6,\\\"Green\\\",[]],[1,0,6,\\\"Green\\\",[]],[0,2,6,\\\"Green\\\",[]],[0,1,6,\\\"Green\\\",[]],[0,0,6,\\\"Brown\\\",[\\\"S\\\"]],[0,-1,6,\\\"Green\\\",[]],[0,-2,6,\\\"Green\\\",[]],[-1,0,6,\\\"Green\\\",[]],[-2,0,6,\\\"Green\\\",[]],[0,0,7,\\\"Brown\\\",[]],[0,0,8,\\\"Brown\\\",[]],[0,0,9,\\\"Brown\\\",[]]])"} +{"time":"2017-01-16T20:30:12.178","id":"sidaw","log":"(:q \"select top of top\")"} +{"time":"2017-01-16T20:30:12.509","id":"sidaw","log":"(:accept \"select top of top\" \"(: select (call adj top (call adj top)))\")"} +{"time":"2017-01-16T20:30:14.684","id":"sidaw","log":"(:context [[0,0,0,\\\"Brown\\\",[]],[4,0,1,\\\"Green\\\",[]],[3,0,1,\\\"Green\\\",[]],[2,0,1,\\\"Green\\\",[]],[1,0,1,\\\"Green\\\",[]],[0,4,1,\\\"Green\\\",[]],[0,3,1,\\\"Green\\\",[]],[0,2,1,\\\"Green\\\",[]],[0,1,1,\\\"Green\\\",[]],[0,0,1,\\\"Brown\\\",[]],[0,-1,1,\\\"Green\\\",[]],[0,-2,1,\\\"Green\\\",[]],[0,-3,1,\\\"Green\\\",[]],[0,-4,1,\\\"Green\\\",[]],[-1,0,1,\\\"Green\\\",[]],[-2,0,1,\\\"Green\\\",[]],[-3,0,1,\\\"Green\\\",[]],[-4,0,1,\\\"Green\\\",[]],[0,0,2,\\\"Brown\\\",[]],[5,0,3,\\\"Green\\\",[]],[4,0,3,\\\"Green\\\",[]],[3,0,3,\\\"Green\\\",[]],[2,0,3,\\\"Green\\\",[]],[1,0,3,\\\"Green\\\",[]],[0,5,3,\\\"Green\\\",[]],[0,4,3,\\\"Green\\\",[]],[0,3,3,\\\"Green\\\",[]],[0,2,3,\\\"Green\\\",[]],[0,1,3,\\\"Green\\\",[]],[0,0,3,\\\"Brown\\\",[]],[0,-1,3,\\\"Green\\\",[]],[0,-2,3,\\\"Green\\\",[]],[0,-3,3,\\\"Green\\\",[]],[0,-4,3,\\\"Green\\\",[]],[0,-5,3,\\\"Green\\\",[]],[-1,0,3,\\\"Green\\\",[]],[-2,0,3,\\\"Green\\\",[]],[-3,0,3,\\\"Green\\\",[]],[-4,0,3,\\\"Green\\\",[]],[-5,0,3,\\\"Green\\\",[]],[3,0,4,\\\"Green\\\",[]],[2,0,4,\\\"Green\\\",[]],[1,0,4,\\\"Green\\\",[]],[0,3,4,\\\"Green\\\",[]],[0,2,4,\\\"Green\\\",[]],[0,1,4,\\\"Green\\\",[]],[0,0,4,\\\"Brown\\\",[]],[0,-1,4,\\\"Green\\\",[]],[0,-2,4,\\\"Green\\\",[]],[0,-3,4,\\\"Green\\\",[]],[-1,0,4,\\\"Green\\\",[]],[-2,0,4,\\\"Green\\\",[]],[-3,0,4,\\\"Green\\\",[]],[0,0,5,\\\"Brown\\\",[]],[2,0,6,\\\"Green\\\",[]],[1,0,6,\\\"Green\\\",[]],[0,2,6,\\\"Green\\\",[]],[0,1,6,\\\"Green\\\",[]],[0,0,6,\\\"Brown\\\",[]],[0,-1,6,\\\"Green\\\",[]],[0,-2,6,\\\"Green\\\",[]],[-1,0,6,\\\"Green\\\",[]],[-2,0,6,\\\"Green\\\",[]],[0,0,7,\\\"Brown\\\",[]],[0,0,8,\\\"Brown\\\",[\\\"S\\\"]],[0,0,9,\\\"Brown\\\",[]]])"} +{"time":"2017-01-16T20:30:14.692","id":"sidaw","log":"(:q \"green branch\")"} +{"time":"2017-01-16T20:30:19.130","id":"sidaw","log":"(:context [[0,0,0,\\\"Brown\\\",[]],[4,0,1,\\\"Green\\\",[]],[3,0,1,\\\"Green\\\",[]],[2,0,1,\\\"Green\\\",[]],[1,0,1,\\\"Green\\\",[]],[0,4,1,\\\"Green\\\",[]],[0,3,1,\\\"Green\\\",[]],[0,2,1,\\\"Green\\\",[]],[0,1,1,\\\"Green\\\",[]],[0,0,1,\\\"Brown\\\",[]],[0,-1,1,\\\"Green\\\",[]],[0,-2,1,\\\"Green\\\",[]],[0,-3,1,\\\"Green\\\",[]],[0,-4,1,\\\"Green\\\",[]],[-1,0,1,\\\"Green\\\",[]],[-2,0,1,\\\"Green\\\",[]],[-3,0,1,\\\"Green\\\",[]],[-4,0,1,\\\"Green\\\",[]],[0,0,2,\\\"Brown\\\",[]],[5,0,3,\\\"Green\\\",[]],[4,0,3,\\\"Green\\\",[]],[3,0,3,\\\"Green\\\",[]],[2,0,3,\\\"Green\\\",[]],[1,0,3,\\\"Green\\\",[]],[0,5,3,\\\"Green\\\",[]],[0,4,3,\\\"Green\\\",[]],[0,3,3,\\\"Green\\\",[]],[0,2,3,\\\"Green\\\",[]],[0,1,3,\\\"Green\\\",[]],[0,0,3,\\\"Brown\\\",[]],[0,-1,3,\\\"Green\\\",[]],[0,-2,3,\\\"Green\\\",[]],[0,-3,3,\\\"Green\\\",[]],[0,-4,3,\\\"Green\\\",[]],[0,-5,3,\\\"Green\\\",[]],[-1,0,3,\\\"Green\\\",[]],[-2,0,3,\\\"Green\\\",[]],[-3,0,3,\\\"Green\\\",[]],[-4,0,3,\\\"Green\\\",[]],[-5,0,3,\\\"Green\\\",[]],[3,0,4,\\\"Green\\\",[]],[2,0,4,\\\"Green\\\",[]],[1,0,4,\\\"Green\\\",[]],[0,3,4,\\\"Green\\\",[]],[0,2,4,\\\"Green\\\",[]],[0,1,4,\\\"Green\\\",[]],[0,0,4,\\\"Brown\\\",[]],[0,-1,4,\\\"Green\\\",[]],[0,-2,4,\\\"Green\\\",[]],[0,-3,4,\\\"Green\\\",[]],[-1,0,4,\\\"Green\\\",[]],[-2,0,4,\\\"Green\\\",[]],[-3,0,4,\\\"Green\\\",[]],[0,0,5,\\\"Brown\\\",[]],[2,0,6,\\\"Green\\\",[]],[1,0,6,\\\"Green\\\",[]],[0,2,6,\\\"Green\\\",[]],[0,1,6,\\\"Green\\\",[]],[0,0,6,\\\"Brown\\\",[]],[0,-1,6,\\\"Green\\\",[]],[0,-2,6,\\\"Green\\\",[]],[-1,0,6,\\\"Green\\\",[]],[-2,0,6,\\\"Green\\\",[]],[0,0,7,\\\"Brown\\\",[]],[0,0,8,\\\"Brown\\\",[\\\"S\\\"]],[0,0,9,\\\"Brown\\\",[]]])"} +{"time":"2017-01-16T20:30:19.148","id":"sidaw","log":"(:q \"green branch 1\")"} +{"time":"2017-01-16T20:30:19.559","id":"sidaw","log":"(:accept \"green branch 1\" \"(:loop (number 1) (:s (:s (:s (: add green left) (: add green right)) (: add green front)) (: add green back)))\")"} +{"time":"2017-01-16T20:30:54.187","id":"sidaw","log":"(:context [[0,0,0,\\\"Fake\\\",[\\\"S\\\"]]])"} +{"time":"2017-01-16T20:30:54.205","id":"sidaw","log":"(:q \"brown beam top 10\")"} +{"time":"2017-01-16T20:30:54.726","id":"sidaw","log":"(:accept \"brown beam top 10\" \"(:blk (:loop (number 10) (:s (: add brown here) (: select (call adj top)))))\")"} +{"time":"2017-01-16T20:31:03.001","id":"sidaw","log":"(:context [[0,0,0,\\\"Brown\\\",[\\\"S\\\"]],[0,0,1,\\\"Brown\\\",[]],[0,0,2,\\\"Brown\\\",[]],[0,0,3,\\\"Brown\\\",[]],[0,0,4,\\\"Brown\\\",[]],[0,0,5,\\\"Brown\\\",[]],[0,0,6,\\\"Brown\\\",[]],[0,0,7,\\\"Brown\\\",[]],[0,0,8,\\\"Brown\\\",[]],[0,0,9,\\\"Brown\\\",[]]])"} +{"time":"2017-01-16T20:31:03.019","id":"sidaw","log":"(:q \"green branch 1; select top\")"} +{"time":"2017-01-16T20:31:05.185","id":"sidaw","log":"(:accept \"green branch 1; select top\" \"(:s (:loop (number 1) (:s (:s (:s (: add green left) (: add green right)) (: add green front)) (: add green back))) (: select (call adj top)))\")"} +{"time":"2017-01-16T20:31:13.792","id":"sidaw","log":"(:context [[1,0,0,\\\"Green\\\",[]],[0,1,0,\\\"Green\\\",[]],[0,0,0,\\\"Brown\\\",[]],[0,-1,0,\\\"Green\\\",[]],[-1,0,0,\\\"Green\\\",[]],[0,0,1,\\\"Brown\\\",[\\\"S\\\"]],[0,0,2,\\\"Brown\\\",[]],[0,0,3,\\\"Brown\\\",[]],[0,0,4,\\\"Brown\\\",[]],[0,0,5,\\\"Brown\\\",[]],[0,0,6,\\\"Brown\\\",[]],[0,0,7,\\\"Brown\\\",[]],[0,0,8,\\\"Brown\\\",[]],[0,0,9,\\\"Brown\\\",[]]])"} +{"time":"2017-01-16T20:31:13.805","id":"sidaw","log":"(:q \"green branch 2; select top\")"} +{"time":"2017-01-16T20:31:14.381","id":"sidaw","log":"(:accept \"green branch 2; select top\" \"(:s (:loop (number 2) (:s (:s (:s (: add green left) (: add green right)) (: add green front)) (: add green back))) (: select (call adj top)))\")"} +{"time":"2017-01-16T20:31:23.649","id":"sidaw","log":"(:context [[0,0,0,\\\"Brown\\\",[\\\"S\\\"]],[0,0,1,\\\"Brown\\\",[]],[0,0,2,\\\"Brown\\\",[]],[0,0,3,\\\"Brown\\\",[]],[0,0,4,\\\"Brown\\\",[]],[0,0,5,\\\"Brown\\\",[]],[0,0,6,\\\"Brown\\\",[]],[0,0,7,\\\"Brown\\\",[]],[0,0,8,\\\"Brown\\\",[]],[0,0,9,\\\"Brown\\\",[]]])"} +{"time":"2017-01-16T20:31:23.657","id":"sidaw","log":"(:q \"green branch 5; select top\")"} +{"time":"2017-01-16T20:31:24.451","id":"sidaw","log":"(:accept \"green branch 5; select top\" \"(:s (:loop (number 5) (:s (:s (:s (: add green left) (: add green right)) (: add green front)) (: add green back))) (: select (call adj top)))\")"} +{"time":"2017-01-16T20:31:27.450","id":"sidaw","log":"(:context [[5,0,0,\\\"Green\\\",[]],[4,0,0,\\\"Green\\\",[]],[3,0,0,\\\"Green\\\",[]],[2,0,0,\\\"Green\\\",[]],[1,0,0,\\\"Green\\\",[]],[0,5,0,\\\"Green\\\",[]],[0,4,0,\\\"Green\\\",[]],[0,3,0,\\\"Green\\\",[]],[0,2,0,\\\"Green\\\",[]],[0,1,0,\\\"Green\\\",[]],[0,0,0,\\\"Brown\\\",[]],[0,-1,0,\\\"Green\\\",[]],[0,-2,0,\\\"Green\\\",[]],[0,-3,0,\\\"Green\\\",[]],[0,-4,0,\\\"Green\\\",[]],[0,-5,0,\\\"Green\\\",[]],[-1,0,0,\\\"Green\\\",[]],[-2,0,0,\\\"Green\\\",[]],[-3,0,0,\\\"Green\\\",[]],[-4,0,0,\\\"Green\\\",[]],[-5,0,0,\\\"Green\\\",[]],[0,0,1,\\\"Brown\\\",[\\\"S\\\"]],[0,0,2,\\\"Brown\\\",[]],[0,0,3,\\\"Brown\\\",[]],[0,0,4,\\\"Brown\\\",[]],[0,0,5,\\\"Brown\\\",[]],[0,0,6,\\\"Brown\\\",[]],[0,0,7,\\\"Brown\\\",[]],[0,0,8,\\\"Brown\\\",[]],[0,0,9,\\\"Brown\\\",[]]])"} +{"time":"2017-01-16T20:31:27.473","id":"sidaw","log":"(:q \"green branch 4; select top\")"} +{"time":"2017-01-16T20:31:27.827","id":"sidaw","log":"(:accept \"green branch 4; select top\" \"(:s (:loop (number 4) (:s (:s (:s (: add green left) (: add green right)) (: add green front)) (: add green back))) (: select (call adj top)))\")"} +{"time":"2017-01-16T20:31:30.530","id":"sidaw","log":"(:context [[5,0,0,\\\"Green\\\",[]],[4,0,0,\\\"Green\\\",[]],[3,0,0,\\\"Green\\\",[]],[2,0,0,\\\"Green\\\",[]],[1,0,0,\\\"Green\\\",[]],[0,5,0,\\\"Green\\\",[]],[0,4,0,\\\"Green\\\",[]],[0,3,0,\\\"Green\\\",[]],[0,2,0,\\\"Green\\\",[]],[0,1,0,\\\"Green\\\",[]],[0,0,0,\\\"Brown\\\",[]],[0,-1,0,\\\"Green\\\",[]],[0,-2,0,\\\"Green\\\",[]],[0,-3,0,\\\"Green\\\",[]],[0,-4,0,\\\"Green\\\",[]],[0,-5,0,\\\"Green\\\",[]],[-1,0,0,\\\"Green\\\",[]],[-2,0,0,\\\"Green\\\",[]],[-3,0,0,\\\"Green\\\",[]],[-4,0,0,\\\"Green\\\",[]],[-5,0,0,\\\"Green\\\",[]],[4,0,1,\\\"Green\\\",[]],[3,0,1,\\\"Green\\\",[]],[2,0,1,\\\"Green\\\",[]],[1,0,1,\\\"Green\\\",[]],[0,4,1,\\\"Green\\\",[]],[0,3,1,\\\"Green\\\",[]],[0,2,1,\\\"Green\\\",[]],[0,1,1,\\\"Green\\\",[]],[0,0,1,\\\"Brown\\\",[]],[0,-1,1,\\\"Green\\\",[]],[0,-2,1,\\\"Green\\\",[]],[0,-3,1,\\\"Green\\\",[]],[0,-4,1,\\\"Green\\\",[]],[-1,0,1,\\\"Green\\\",[]],[-2,0,1,\\\"Green\\\",[]],[-3,0,1,\\\"Green\\\",[]],[-4,0,1,\\\"Green\\\",[]],[0,0,2,\\\"Brown\\\",[\\\"S\\\"]],[0,0,3,\\\"Brown\\\",[]],[0,0,4,\\\"Brown\\\",[]],[0,0,5,\\\"Brown\\\",[]],[0,0,6,\\\"Brown\\\",[]],[0,0,7,\\\"Brown\\\",[]],[0,0,8,\\\"Brown\\\",[]],[0,0,9,\\\"Brown\\\",[]]])"} +{"time":"2017-01-16T20:31:30.538","id":"sidaw","log":"(:q \"green branch 3; select top\")"} +{"time":"2017-01-16T20:31:30.802","id":"sidaw","log":"(:accept \"green branch 3; select top\" \"(:s (:loop (number 3) (:s (:s (:s (: add green left) (: add green right)) (: add green front)) (: add green back))) (: select (call adj top)))\")"} +{"time":"2017-01-16T20:31:33.369","id":"sidaw","log":"(:context [[5,0,0,\\\"Green\\\",[]],[4,0,0,\\\"Green\\\",[]],[3,0,0,\\\"Green\\\",[]],[2,0,0,\\\"Green\\\",[]],[1,0,0,\\\"Green\\\",[]],[0,5,0,\\\"Green\\\",[]],[0,4,0,\\\"Green\\\",[]],[0,3,0,\\\"Green\\\",[]],[0,2,0,\\\"Green\\\",[]],[0,1,0,\\\"Green\\\",[]],[0,0,0,\\\"Brown\\\",[]],[0,-1,0,\\\"Green\\\",[]],[0,-2,0,\\\"Green\\\",[]],[0,-3,0,\\\"Green\\\",[]],[0,-4,0,\\\"Green\\\",[]],[0,-5,0,\\\"Green\\\",[]],[-1,0,0,\\\"Green\\\",[]],[-2,0,0,\\\"Green\\\",[]],[-3,0,0,\\\"Green\\\",[]],[-4,0,0,\\\"Green\\\",[]],[-5,0,0,\\\"Green\\\",[]],[4,0,1,\\\"Green\\\",[]],[3,0,1,\\\"Green\\\",[]],[2,0,1,\\\"Green\\\",[]],[1,0,1,\\\"Green\\\",[]],[0,4,1,\\\"Green\\\",[]],[0,3,1,\\\"Green\\\",[]],[0,2,1,\\\"Green\\\",[]],[0,1,1,\\\"Green\\\",[]],[0,0,1,\\\"Brown\\\",[]],[0,-1,1,\\\"Green\\\",[]],[0,-2,1,\\\"Green\\\",[]],[0,-3,1,\\\"Green\\\",[]],[0,-4,1,\\\"Green\\\",[]],[-1,0,1,\\\"Green\\\",[]],[-2,0,1,\\\"Green\\\",[]],[-3,0,1,\\\"Green\\\",[]],[-4,0,1,\\\"Green\\\",[]],[3,0,2,\\\"Green\\\",[]],[2,0,2,\\\"Green\\\",[]],[1,0,2,\\\"Green\\\",[]],[0,3,2,\\\"Green\\\",[]],[0,2,2,\\\"Green\\\",[]],[0,1,2,\\\"Green\\\",[]],[0,0,2,\\\"Brown\\\",[]],[0,-1,2,\\\"Green\\\",[]],[0,-2,2,\\\"Green\\\",[]],[0,-3,2,\\\"Green\\\",[]],[-1,0,2,\\\"Green\\\",[]],[-2,0,2,\\\"Green\\\",[]],[-3,0,2,\\\"Green\\\",[]],[0,0,3,\\\"Brown\\\",[\\\"S\\\"]],[0,0,4,\\\"Brown\\\",[]],[0,0,5,\\\"Brown\\\",[]],[0,0,6,\\\"Brown\\\",[]],[0,0,7,\\\"Brown\\\",[]],[0,0,8,\\\"Brown\\\",[]],[0,0,9,\\\"Brown\\\",[]]])"} +{"time":"2017-01-16T20:31:33.387","id":"sidaw","log":"(:q \"green branch 2; select top\")"} +{"time":"2017-01-16T20:31:33.756","id":"sidaw","log":"(:accept \"green branch 2; select top\" \"(:s (:loop (number 2) (:s (:s (:s (: add green left) (: add green right)) (: add green front)) (: add green back))) (: select (call adj top)))\")"} +{"time":"2017-01-16T20:31:37.071","id":"sidaw","log":"(:context [[5,0,0,\\\"Green\\\",[]],[4,0,0,\\\"Green\\\",[]],[3,0,0,\\\"Green\\\",[]],[2,0,0,\\\"Green\\\",[]],[1,0,0,\\\"Green\\\",[]],[0,5,0,\\\"Green\\\",[]],[0,4,0,\\\"Green\\\",[]],[0,3,0,\\\"Green\\\",[]],[0,2,0,\\\"Green\\\",[]],[0,1,0,\\\"Green\\\",[]],[0,0,0,\\\"Brown\\\",[]],[0,-1,0,\\\"Green\\\",[]],[0,-2,0,\\\"Green\\\",[]],[0,-3,0,\\\"Green\\\",[]],[0,-4,0,\\\"Green\\\",[]],[0,-5,0,\\\"Green\\\",[]],[-1,0,0,\\\"Green\\\",[]],[-2,0,0,\\\"Green\\\",[]],[-3,0,0,\\\"Green\\\",[]],[-4,0,0,\\\"Green\\\",[]],[-5,0,0,\\\"Green\\\",[]],[4,0,1,\\\"Green\\\",[]],[3,0,1,\\\"Green\\\",[]],[2,0,1,\\\"Green\\\",[]],[1,0,1,\\\"Green\\\",[]],[0,4,1,\\\"Green\\\",[]],[0,3,1,\\\"Green\\\",[]],[0,2,1,\\\"Green\\\",[]],[0,1,1,\\\"Green\\\",[]],[0,0,1,\\\"Brown\\\",[]],[0,-1,1,\\\"Green\\\",[]],[0,-2,1,\\\"Green\\\",[]],[0,-3,1,\\\"Green\\\",[]],[0,-4,1,\\\"Green\\\",[]],[-1,0,1,\\\"Green\\\",[]],[-2,0,1,\\\"Green\\\",[]],[-3,0,1,\\\"Green\\\",[]],[-4,0,1,\\\"Green\\\",[]],[3,0,2,\\\"Green\\\",[]],[2,0,2,\\\"Green\\\",[]],[1,0,2,\\\"Green\\\",[]],[0,3,2,\\\"Green\\\",[]],[0,2,2,\\\"Green\\\",[]],[0,1,2,\\\"Green\\\",[]],[0,0,2,\\\"Brown\\\",[]],[0,-1,2,\\\"Green\\\",[]],[0,-2,2,\\\"Green\\\",[]],[0,-3,2,\\\"Green\\\",[]],[-1,0,2,\\\"Green\\\",[]],[-2,0,2,\\\"Green\\\",[]],[-3,0,2,\\\"Green\\\",[]],[2,0,3,\\\"Green\\\",[]],[1,0,3,\\\"Green\\\",[]],[0,2,3,\\\"Green\\\",[]],[0,1,3,\\\"Green\\\",[]],[0,0,3,\\\"Brown\\\",[]],[0,-1,3,\\\"Green\\\",[]],[0,-2,3,\\\"Green\\\",[]],[-1,0,3,\\\"Green\\\",[]],[-2,0,3,\\\"Green\\\",[]],[0,0,4,\\\"Brown\\\",[\\\"S\\\"]],[0,0,5,\\\"Brown\\\",[]],[0,0,6,\\\"Brown\\\",[]],[0,0,7,\\\"Brown\\\",[]],[0,0,8,\\\"Brown\\\",[]],[0,0,9,\\\"Brown\\\",[]]])"} +{"time":"2017-01-16T20:31:37.079","id":"sidaw","log":"(:q \"green branch 1; select top\")"} +{"time":"2017-01-16T20:31:37.591","id":"sidaw","log":"(:accept \"green branch 1; select top\" \"(:s (:loop (number 1) (:s (:s (:s (: add green left) (: add green right)) (: add green front)) (: add green back))) (: select (call adj top)))\")"} +{"time":"2017-01-16T20:31:54.423","id":"sidaw","log":"(:context [[5,0,0,\\\"Green\\\",[]],[4,0,0,\\\"Green\\\",[]],[3,0,0,\\\"Green\\\",[]],[2,0,0,\\\"Green\\\",[]],[1,0,0,\\\"Green\\\",[]],[0,5,0,\\\"Green\\\",[]],[0,4,0,\\\"Green\\\",[]],[0,3,0,\\\"Green\\\",[]],[0,2,0,\\\"Green\\\",[]],[0,1,0,\\\"Green\\\",[]],[0,0,0,\\\"Brown\\\",[]],[0,-1,0,\\\"Green\\\",[]],[0,-2,0,\\\"Green\\\",[]],[0,-3,0,\\\"Green\\\",[]],[0,-4,0,\\\"Green\\\",[]],[0,-5,0,\\\"Green\\\",[]],[-1,0,0,\\\"Green\\\",[]],[-2,0,0,\\\"Green\\\",[]],[-3,0,0,\\\"Green\\\",[]],[-4,0,0,\\\"Green\\\",[]],[-5,0,0,\\\"Green\\\",[]],[4,0,1,\\\"Green\\\",[]],[3,0,1,\\\"Green\\\",[]],[2,0,1,\\\"Green\\\",[]],[1,0,1,\\\"Green\\\",[]],[0,4,1,\\\"Green\\\",[]],[0,3,1,\\\"Green\\\",[]],[0,2,1,\\\"Green\\\",[]],[0,1,1,\\\"Green\\\",[]],[0,0,1,\\\"Brown\\\",[]],[0,-1,1,\\\"Green\\\",[]],[0,-2,1,\\\"Green\\\",[]],[0,-3,1,\\\"Green\\\",[]],[0,-4,1,\\\"Green\\\",[]],[-1,0,1,\\\"Green\\\",[]],[-2,0,1,\\\"Green\\\",[]],[-3,0,1,\\\"Green\\\",[]],[-4,0,1,\\\"Green\\\",[]],[3,0,2,\\\"Green\\\",[]],[2,0,2,\\\"Green\\\",[]],[1,0,2,\\\"Green\\\",[]],[0,3,2,\\\"Green\\\",[]],[0,2,2,\\\"Green\\\",[]],[0,1,2,\\\"Green\\\",[]],[0,0,2,\\\"Brown\\\",[]],[0,-1,2,\\\"Green\\\",[]],[0,-2,2,\\\"Green\\\",[]],[0,-3,2,\\\"Green\\\",[]],[-1,0,2,\\\"Green\\\",[]],[-2,0,2,\\\"Green\\\",[]],[-3,0,2,\\\"Green\\\",[]],[2,0,3,\\\"Green\\\",[]],[1,0,3,\\\"Green\\\",[]],[0,2,3,\\\"Green\\\",[]],[0,1,3,\\\"Green\\\",[]],[0,0,3,\\\"Brown\\\",[]],[0,-1,3,\\\"Green\\\",[]],[0,-2,3,\\\"Green\\\",[]],[-1,0,3,\\\"Green\\\",[]],[-2,0,3,\\\"Green\\\",[]],[1,0,4,\\\"Green\\\",[]],[0,1,4,\\\"Green\\\",[]],[0,0,4,\\\"Brown\\\",[]],[0,-1,4,\\\"Green\\\",[]],[-1,0,4,\\\"Green\\\",[]],[0,0,5,\\\"Brown\\\",[\\\"S\\\"]],[0,0,6,\\\"Brown\\\",[]],[0,0,7,\\\"Brown\\\",[]],[0,0,8,\\\"Brown\\\",[]],[0,0,9,\\\"Brown\\\",[]]])"} +{"time":"2017-01-16T20:31:54.436","id":"sidaw","log":"(:q \"red branch 1; select top\")"} +{"time":"2017-01-16T20:31:54.945","id":"sidaw","log":"(:accept \"red branch 1; select top\" \"(:s (:loop (number 1) (:s (:s (:s (: add red left) (: add red right)) (: add red front)) (: add red back))) (: select (call adj top)))\")"} +{"time":"2017-01-16T20:31:58.263","id":"sidaw","log":"(:context [[5,0,0,\\\"Green\\\",[]],[4,0,0,\\\"Green\\\",[]],[3,0,0,\\\"Green\\\",[]],[2,0,0,\\\"Green\\\",[]],[1,0,0,\\\"Green\\\",[]],[0,5,0,\\\"Green\\\",[]],[0,4,0,\\\"Green\\\",[]],[0,3,0,\\\"Green\\\",[]],[0,2,0,\\\"Green\\\",[]],[0,1,0,\\\"Green\\\",[]],[0,0,0,\\\"Brown\\\",[]],[0,-1,0,\\\"Green\\\",[]],[0,-2,0,\\\"Green\\\",[]],[0,-3,0,\\\"Green\\\",[]],[0,-4,0,\\\"Green\\\",[]],[0,-5,0,\\\"Green\\\",[]],[-1,0,0,\\\"Green\\\",[]],[-2,0,0,\\\"Green\\\",[]],[-3,0,0,\\\"Green\\\",[]],[-4,0,0,\\\"Green\\\",[]],[-5,0,0,\\\"Green\\\",[]],[4,0,1,\\\"Green\\\",[]],[3,0,1,\\\"Green\\\",[]],[2,0,1,\\\"Green\\\",[]],[1,0,1,\\\"Green\\\",[]],[0,4,1,\\\"Green\\\",[]],[0,3,1,\\\"Green\\\",[]],[0,2,1,\\\"Green\\\",[]],[0,1,1,\\\"Green\\\",[]],[0,0,1,\\\"Brown\\\",[]],[0,-1,1,\\\"Green\\\",[]],[0,-2,1,\\\"Green\\\",[]],[0,-3,1,\\\"Green\\\",[]],[0,-4,1,\\\"Green\\\",[]],[-1,0,1,\\\"Green\\\",[]],[-2,0,1,\\\"Green\\\",[]],[-3,0,1,\\\"Green\\\",[]],[-4,0,1,\\\"Green\\\",[]],[3,0,2,\\\"Green\\\",[]],[2,0,2,\\\"Green\\\",[]],[1,0,2,\\\"Green\\\",[]],[0,3,2,\\\"Green\\\",[]],[0,2,2,\\\"Green\\\",[]],[0,1,2,\\\"Green\\\",[]],[0,0,2,\\\"Brown\\\",[]],[0,-1,2,\\\"Green\\\",[]],[0,-2,2,\\\"Green\\\",[]],[0,-3,2,\\\"Green\\\",[]],[-1,0,2,\\\"Green\\\",[]],[-2,0,2,\\\"Green\\\",[]],[-3,0,2,\\\"Green\\\",[]],[2,0,3,\\\"Green\\\",[]],[1,0,3,\\\"Green\\\",[]],[0,2,3,\\\"Green\\\",[]],[0,1,3,\\\"Green\\\",[]],[0,0,3,\\\"Brown\\\",[]],[0,-1,3,\\\"Green\\\",[]],[0,-2,3,\\\"Green\\\",[]],[-1,0,3,\\\"Green\\\",[]],[-2,0,3,\\\"Green\\\",[]],[1,0,4,\\\"Green\\\",[]],[0,1,4,\\\"Green\\\",[]],[0,0,4,\\\"Brown\\\",[]],[0,-1,4,\\\"Green\\\",[]],[-1,0,4,\\\"Green\\\",[]],[1,0,5,\\\"Red\\\",[]],[0,1,5,\\\"Red\\\",[]],[0,0,5,\\\"Brown\\\",[]],[0,-1,5,\\\"Red\\\",[]],[-1,0,5,\\\"Red\\\",[]],[0,0,6,\\\"Brown\\\",[\\\"S\\\"]],[0,0,7,\\\"Brown\\\",[]],[0,0,8,\\\"Brown\\\",[]],[0,0,9,\\\"Brown\\\",[]]])"} +{"time":"2017-01-16T20:31:58.276","id":"sidaw","log":"(:q \"red branch 2; select top\")"} +{"time":"2017-01-16T20:31:58.626","id":"sidaw","log":"(:accept \"red branch 2; select top\" \"(:s (:loop (number 2) (:s (:s (:s (: add red left) (: add red right)) (: add red front)) (: add red back))) (: select (call adj top)))\")"} +{"time":"2017-01-16T20:32:01.731","id":"sidaw","log":"(:context [[5,0,0,\\\"Green\\\",[]],[4,0,0,\\\"Green\\\",[]],[3,0,0,\\\"Green\\\",[]],[2,0,0,\\\"Green\\\",[]],[1,0,0,\\\"Green\\\",[]],[0,5,0,\\\"Green\\\",[]],[0,4,0,\\\"Green\\\",[]],[0,3,0,\\\"Green\\\",[]],[0,2,0,\\\"Green\\\",[]],[0,1,0,\\\"Green\\\",[]],[0,0,0,\\\"Brown\\\",[]],[0,-1,0,\\\"Green\\\",[]],[0,-2,0,\\\"Green\\\",[]],[0,-3,0,\\\"Green\\\",[]],[0,-4,0,\\\"Green\\\",[]],[0,-5,0,\\\"Green\\\",[]],[-1,0,0,\\\"Green\\\",[]],[-2,0,0,\\\"Green\\\",[]],[-3,0,0,\\\"Green\\\",[]],[-4,0,0,\\\"Green\\\",[]],[-5,0,0,\\\"Green\\\",[]],[4,0,1,\\\"Green\\\",[]],[3,0,1,\\\"Green\\\",[]],[2,0,1,\\\"Green\\\",[]],[1,0,1,\\\"Green\\\",[]],[0,4,1,\\\"Green\\\",[]],[0,3,1,\\\"Green\\\",[]],[0,2,1,\\\"Green\\\",[]],[0,1,1,\\\"Green\\\",[]],[0,0,1,\\\"Brown\\\",[]],[0,-1,1,\\\"Green\\\",[]],[0,-2,1,\\\"Green\\\",[]],[0,-3,1,\\\"Green\\\",[]],[0,-4,1,\\\"Green\\\",[]],[-1,0,1,\\\"Green\\\",[]],[-2,0,1,\\\"Green\\\",[]],[-3,0,1,\\\"Green\\\",[]],[-4,0,1,\\\"Green\\\",[]],[3,0,2,\\\"Green\\\",[]],[2,0,2,\\\"Green\\\",[]],[1,0,2,\\\"Green\\\",[]],[0,3,2,\\\"Green\\\",[]],[0,2,2,\\\"Green\\\",[]],[0,1,2,\\\"Green\\\",[]],[0,0,2,\\\"Brown\\\",[]],[0,-1,2,\\\"Green\\\",[]],[0,-2,2,\\\"Green\\\",[]],[0,-3,2,\\\"Green\\\",[]],[-1,0,2,\\\"Green\\\",[]],[-2,0,2,\\\"Green\\\",[]],[-3,0,2,\\\"Green\\\",[]],[2,0,3,\\\"Green\\\",[]],[1,0,3,\\\"Green\\\",[]],[0,2,3,\\\"Green\\\",[]],[0,1,3,\\\"Green\\\",[]],[0,0,3,\\\"Brown\\\",[]],[0,-1,3,\\\"Green\\\",[]],[0,-2,3,\\\"Green\\\",[]],[-1,0,3,\\\"Green\\\",[]],[-2,0,3,\\\"Green\\\",[]],[1,0,4,\\\"Green\\\",[]],[0,1,4,\\\"Green\\\",[]],[0,0,4,\\\"Brown\\\",[]],[0,-1,4,\\\"Green\\\",[]],[-1,0,4,\\\"Green\\\",[]],[1,0,5,\\\"Red\\\",[]],[0,1,5,\\\"Red\\\",[]],[0,0,5,\\\"Brown\\\",[]],[0,-1,5,\\\"Red\\\",[]],[-1,0,5,\\\"Red\\\",[]],[2,0,6,\\\"Red\\\",[]],[1,0,6,\\\"Red\\\",[]],[0,2,6,\\\"Red\\\",[]],[0,1,6,\\\"Red\\\",[]],[0,0,6,\\\"Brown\\\",[]],[0,-1,6,\\\"Red\\\",[]],[0,-2,6,\\\"Red\\\",[]],[-1,0,6,\\\"Red\\\",[]],[-2,0,6,\\\"Red\\\",[]],[0,0,7,\\\"Brown\\\",[\\\"S\\\"]],[0,0,8,\\\"Brown\\\",[]],[0,0,9,\\\"Brown\\\",[]]])"} +{"time":"2017-01-16T20:32:01.748","id":"sidaw","log":"(:q \"red branch 3; select top\")"} +{"time":"2017-01-16T20:32:02.153","id":"sidaw","log":"(:accept \"red branch 3; select top\" \"(:s (:loop (number 3) (:s (:s (:s (: add red left) (: add red right)) (: add red front)) (: add red back))) (: select (call adj top)))\")"} +{"time":"2017-01-16T20:32:04.273","id":"sidaw","log":"(:context [[5,0,0,\\\"Green\\\",[]],[4,0,0,\\\"Green\\\",[]],[3,0,0,\\\"Green\\\",[]],[2,0,0,\\\"Green\\\",[]],[1,0,0,\\\"Green\\\",[]],[0,5,0,\\\"Green\\\",[]],[0,4,0,\\\"Green\\\",[]],[0,3,0,\\\"Green\\\",[]],[0,2,0,\\\"Green\\\",[]],[0,1,0,\\\"Green\\\",[]],[0,0,0,\\\"Brown\\\",[]],[0,-1,0,\\\"Green\\\",[]],[0,-2,0,\\\"Green\\\",[]],[0,-3,0,\\\"Green\\\",[]],[0,-4,0,\\\"Green\\\",[]],[0,-5,0,\\\"Green\\\",[]],[-1,0,0,\\\"Green\\\",[]],[-2,0,0,\\\"Green\\\",[]],[-3,0,0,\\\"Green\\\",[]],[-4,0,0,\\\"Green\\\",[]],[-5,0,0,\\\"Green\\\",[]],[4,0,1,\\\"Green\\\",[]],[3,0,1,\\\"Green\\\",[]],[2,0,1,\\\"Green\\\",[]],[1,0,1,\\\"Green\\\",[]],[0,4,1,\\\"Green\\\",[]],[0,3,1,\\\"Green\\\",[]],[0,2,1,\\\"Green\\\",[]],[0,1,1,\\\"Green\\\",[]],[0,0,1,\\\"Brown\\\",[]],[0,-1,1,\\\"Green\\\",[]],[0,-2,1,\\\"Green\\\",[]],[0,-3,1,\\\"Green\\\",[]],[0,-4,1,\\\"Green\\\",[]],[-1,0,1,\\\"Green\\\",[]],[-2,0,1,\\\"Green\\\",[]],[-3,0,1,\\\"Green\\\",[]],[-4,0,1,\\\"Green\\\",[]],[3,0,2,\\\"Green\\\",[]],[2,0,2,\\\"Green\\\",[]],[1,0,2,\\\"Green\\\",[]],[0,3,2,\\\"Green\\\",[]],[0,2,2,\\\"Green\\\",[]],[0,1,2,\\\"Green\\\",[]],[0,0,2,\\\"Brown\\\",[]],[0,-1,2,\\\"Green\\\",[]],[0,-2,2,\\\"Green\\\",[]],[0,-3,2,\\\"Green\\\",[]],[-1,0,2,\\\"Green\\\",[]],[-2,0,2,\\\"Green\\\",[]],[-3,0,2,\\\"Green\\\",[]],[2,0,3,\\\"Green\\\",[]],[1,0,3,\\\"Green\\\",[]],[0,2,3,\\\"Green\\\",[]],[0,1,3,\\\"Green\\\",[]],[0,0,3,\\\"Brown\\\",[]],[0,-1,3,\\\"Green\\\",[]],[0,-2,3,\\\"Green\\\",[]],[-1,0,3,\\\"Green\\\",[]],[-2,0,3,\\\"Green\\\",[]],[1,0,4,\\\"Green\\\",[]],[0,1,4,\\\"Green\\\",[]],[0,0,4,\\\"Brown\\\",[]],[0,-1,4,\\\"Green\\\",[]],[-1,0,4,\\\"Green\\\",[]],[1,0,5,\\\"Red\\\",[]],[0,1,5,\\\"Red\\\",[]],[0,0,5,\\\"Brown\\\",[]],[0,-1,5,\\\"Red\\\",[]],[-1,0,5,\\\"Red\\\",[]],[2,0,6,\\\"Red\\\",[]],[1,0,6,\\\"Red\\\",[]],[0,2,6,\\\"Red\\\",[]],[0,1,6,\\\"Red\\\",[]],[0,0,6,\\\"Brown\\\",[]],[0,-1,6,\\\"Red\\\",[]],[0,-2,6,\\\"Red\\\",[]],[-1,0,6,\\\"Red\\\",[]],[-2,0,6,\\\"Red\\\",[]],[3,0,7,\\\"Red\\\",[]],[2,0,7,\\\"Red\\\",[]],[1,0,7,\\\"Red\\\",[]],[0,3,7,\\\"Red\\\",[]],[0,2,7,\\\"Red\\\",[]],[0,1,7,\\\"Red\\\",[]],[0,0,7,\\\"Brown\\\",[]],[0,-1,7,\\\"Red\\\",[]],[0,-2,7,\\\"Red\\\",[]],[0,-3,7,\\\"Red\\\",[]],[-1,0,7,\\\"Red\\\",[]],[-2,0,7,\\\"Red\\\",[]],[-3,0,7,\\\"Red\\\",[]],[0,0,8,\\\"Brown\\\",[\\\"S\\\"]],[0,0,9,\\\"Brown\\\",[]]])"} +{"time":"2017-01-16T20:32:04.296","id":"sidaw","log":"(:q \"red branch 4; select top\")"} +{"time":"2017-01-16T20:32:04.628","id":"sidaw","log":"(:accept \"red branch 4; select top\" \"(:s (:loop (number 4) (:s (:s (:s (: add red left) (: add red right)) (: add red front)) (: add red back))) (: select (call adj top)))\")"} +{"time":"2017-01-16T20:32:07.811","id":"sidaw","log":"(:context [[5,0,0,\\\"Green\\\",[]],[4,0,0,\\\"Green\\\",[]],[3,0,0,\\\"Green\\\",[]],[2,0,0,\\\"Green\\\",[]],[1,0,0,\\\"Green\\\",[]],[0,5,0,\\\"Green\\\",[]],[0,4,0,\\\"Green\\\",[]],[0,3,0,\\\"Green\\\",[]],[0,2,0,\\\"Green\\\",[]],[0,1,0,\\\"Green\\\",[]],[0,0,0,\\\"Brown\\\",[]],[0,-1,0,\\\"Green\\\",[]],[0,-2,0,\\\"Green\\\",[]],[0,-3,0,\\\"Green\\\",[]],[0,-4,0,\\\"Green\\\",[]],[0,-5,0,\\\"Green\\\",[]],[-1,0,0,\\\"Green\\\",[]],[-2,0,0,\\\"Green\\\",[]],[-3,0,0,\\\"Green\\\",[]],[-4,0,0,\\\"Green\\\",[]],[-5,0,0,\\\"Green\\\",[]],[4,0,1,\\\"Green\\\",[]],[3,0,1,\\\"Green\\\",[]],[2,0,1,\\\"Green\\\",[]],[1,0,1,\\\"Green\\\",[]],[0,4,1,\\\"Green\\\",[]],[0,3,1,\\\"Green\\\",[]],[0,2,1,\\\"Green\\\",[]],[0,1,1,\\\"Green\\\",[]],[0,0,1,\\\"Brown\\\",[]],[0,-1,1,\\\"Green\\\",[]],[0,-2,1,\\\"Green\\\",[]],[0,-3,1,\\\"Green\\\",[]],[0,-4,1,\\\"Green\\\",[]],[-1,0,1,\\\"Green\\\",[]],[-2,0,1,\\\"Green\\\",[]],[-3,0,1,\\\"Green\\\",[]],[-4,0,1,\\\"Green\\\",[]],[3,0,2,\\\"Green\\\",[]],[2,0,2,\\\"Green\\\",[]],[1,0,2,\\\"Green\\\",[]],[0,3,2,\\\"Green\\\",[]],[0,2,2,\\\"Green\\\",[]],[0,1,2,\\\"Green\\\",[]],[0,0,2,\\\"Brown\\\",[]],[0,-1,2,\\\"Green\\\",[]],[0,-2,2,\\\"Green\\\",[]],[0,-3,2,\\\"Green\\\",[]],[-1,0,2,\\\"Green\\\",[]],[-2,0,2,\\\"Green\\\",[]],[-3,0,2,\\\"Green\\\",[]],[2,0,3,\\\"Green\\\",[]],[1,0,3,\\\"Green\\\",[]],[0,2,3,\\\"Green\\\",[]],[0,1,3,\\\"Green\\\",[]],[0,0,3,\\\"Brown\\\",[]],[0,-1,3,\\\"Green\\\",[]],[0,-2,3,\\\"Green\\\",[]],[-1,0,3,\\\"Green\\\",[]],[-2,0,3,\\\"Green\\\",[]],[1,0,4,\\\"Green\\\",[]],[0,1,4,\\\"Green\\\",[]],[0,0,4,\\\"Brown\\\",[]],[0,-1,4,\\\"Green\\\",[]],[-1,0,4,\\\"Green\\\",[]],[1,0,5,\\\"Red\\\",[]],[0,1,5,\\\"Red\\\",[]],[0,0,5,\\\"Brown\\\",[]],[0,-1,5,\\\"Red\\\",[]],[-1,0,5,\\\"Red\\\",[]],[2,0,6,\\\"Red\\\",[]],[1,0,6,\\\"Red\\\",[]],[0,2,6,\\\"Red\\\",[]],[0,1,6,\\\"Red\\\",[]],[0,0,6,\\\"Brown\\\",[]],[0,-1,6,\\\"Red\\\",[]],[0,-2,6,\\\"Red\\\",[]],[-1,0,6,\\\"Red\\\",[]],[-2,0,6,\\\"Red\\\",[]],[3,0,7,\\\"Red\\\",[]],[2,0,7,\\\"Red\\\",[]],[1,0,7,\\\"Red\\\",[]],[0,3,7,\\\"Red\\\",[]],[0,2,7,\\\"Red\\\",[]],[0,1,7,\\\"Red\\\",[]],[0,0,7,\\\"Brown\\\",[]],[0,-1,7,\\\"Red\\\",[]],[0,-2,7,\\\"Red\\\",[]],[0,-3,7,\\\"Red\\\",[]],[-1,0,7,\\\"Red\\\",[]],[-2,0,7,\\\"Red\\\",[]],[-3,0,7,\\\"Red\\\",[]],[4,0,8,\\\"Red\\\",[]],[3,0,8,\\\"Red\\\",[]],[2,0,8,\\\"Red\\\",[]],[1,0,8,\\\"Red\\\",[]],[0,4,8,\\\"Red\\\",[]],[0,3,8,\\\"Red\\\",[]],[0,2,8,\\\"Red\\\",[]],[0,1,8,\\\"Red\\\",[]],[0,0,8,\\\"Brown\\\",[]],[0,-1,8,\\\"Red\\\",[]],[0,-2,8,\\\"Red\\\",[]],[0,-3,8,\\\"Red\\\",[]],[0,-4,8,\\\"Red\\\",[]],[-1,0,8,\\\"Red\\\",[]],[-2,0,8,\\\"Red\\\",[]],[-3,0,8,\\\"Red\\\",[]],[-4,0,8,\\\"Red\\\",[]],[0,0,9,\\\"Brown\\\",[\\\"S\\\"]]])"} +{"time":"2017-01-16T20:32:07.824","id":"sidaw","log":"(:q \"red branch 5; select top\")"} +{"time":"2017-01-16T20:32:08.259","id":"sidaw","log":"(:accept \"red branch 5; select top\" \"(:s (:loop (number 5) (:s (:s (:s (: add red left) (: add red right)) (: add red front)) (: add red back))) (: select (call adj top)))\")"} diff --git a/shrdlurn/commandInputs/turk-01-04-2017.lisp b/shrdlurn/commandInputs/turk-01-04-2017.lisp new file mode 100644 index 0000000..5c95bbe --- /dev/null +++ b/shrdlurn/commandInputs/turk-01-04-2017.lisp @@ -0,0 +1,124 @@ +(:def "build a red tower" "[[\"repeat 3 [ add red; select top of this]; repeat 3 [ select bot of this]\",\"(:s (:loop (number 3) (:s (: add red here) (:for (call adj top this) (: select)))) (:loop (number 3) (:for (call adj bot this) (: select))))\"],[\"select left of this\",\"(:for (call adj left this) (: select))\"]]") +(:def_ret "add 1 brown on top" "[[\"Adds 1 brown block on top of the current block\",\"(: add brown top)\"]]") +(:def_ret "add bar" "[[\"repeat 3 [ add red left ]; select left;\",\"(:s (:loop (number 3) (: add red left)) (:for (call adj left) (: select)))\"]]") +(:def_ret "standard_chair_leg" "[[\"repeat 3 [ add brown; select top of this ]; repeat 3 [ select bot of this ]\",\"(:s (:loop (number 3) (:s (: add brown here) (:for (call adj top this) (: select)))) (:loop (number 3) (:for (call adj bot this) (: select))))\"]]") +(:def_ret "standard_chair_leg" "[[\"standard_chair_leg\",\"(:blkr (:s (:loop (number 3) (:s (: add brown here) (:for (call adj top this) (: select)))) (:loop (number 3) (:for (call adj bot this) (: select)))))\"]]") +(:def_ret "chair_legs" "[[\"standard_chair_leg; repeat 3 [ select left of this]; standard_chair_leg; repeat 3 [select back of this]; standard_chair_leg; repeat 3 [ select right of this]; standard_chair_leg;\",\"(:s (:s (:blkr (:s (:loop (number 3) (:s (: add brown here) (:for (call adj top this) (: select)))) (:loop (number 3) (:for (call adj bot this) (: select))))) (:loop (number 3) (:for (call adj left this) (: select)))) (:s (:s (:s (:s (:blkr (:s (:loop (number 3) (:s (: add brown here) (:for (call adj top this) (: select)))) (:loop (number 3) (:for (call adj bot this) (: select))))) (:loop (number 3) (:for (call adj back this) (: select)))) (:blkr (:s (:loop (number 3) (:s (: add brown here) (:for (call adj top this) (: select)))) (:loop (number 3) (:for (call adj bot this) (: select)))))) (:loop (number 3) (:for (call adj right this) (: select)))) (:blkr (:s (:loop (number 3) (:s (: add brown here) (:for (call adj top this) (: select)))) (:loop (number 3) (:for (call adj bot this) (: select)))))))\"]]") +(:def_ret "standard_chair_leg" "[[\"repeat 4 [ add brown; select top of this]; repeat 4 [ select bot of this ]\",\"(:s (:loop (number 4) (:s (: add brown here) (:for (call adj top this) (: select)))) (:loop (number 4) (:for (call adj bot this) (: select))))\"]]") +(:def_ret "std_chair_leg" "[[\"repeat 4 [ add brown; select top of this]; repeat 4 [ select bot of this ]\",\"(:s (:loop (number 4) (:s (: add brown here) (:for (call adj top this) (: select)))) (:loop (number 4) (:for (call adj bot this) (: select))))\"]]") +(:def_ret "chair_legs" "[[\"std_chair_leg; repeat 3 [ select left of this]; std_chair_leg; repeat 3 [select back of this]; std_chair_leg; repeat 3 [ select right of this]; std_chair_leg;\",\"(:s (:s (:blkr (:s (:loop (number 4) (:s (: add brown here) (:for (call adj top this) (: select)))) (:loop (number 4) (:for (call adj bot this) (: select))))) (:loop (number 3) (:for (call adj left this) (: select)))) (:s (:s (:s (:s (:blkr (:s (:loop (number 4) (:s (: add brown here) (:for (call adj top this) (: select)))) (:loop (number 4) (:for (call adj bot this) (: select))))) (:loop (number 3) (:for (call adj back this) (: select)))) (:blkr (:s (:loop (number 4) (:s (: add brown here) (:for (call adj top this) (: select)))) (:loop (number 4) (:for (call adj bot this) (: select)))))) (:loop (number 3) (:for (call adj right this) (: select)))) (:blkr (:s (:loop (number 4) (:s (: add brown here) (:for (call adj top this) (: select)))) (:loop (number 4) (:for (call adj bot this) (: select)))))))\"]]") +(:def_ret "add yellow plank" "[[\"repeat 4 [ add yellow; select left of this]; repeat 4 [ select right of this ]\",\"(:s (:loop (number 4) (:s (: add yellow here) (:for (call adj left this) (: select)))) (:loop (number 4) (:for (call adj right this) (: select))))\"]]") +(:def_ret "yellow_chair_seat" "[[\"repeat 4 [ add yellow plank; select front of this]\",\"(:loop (number 4) (:s (:blkr (:s (:loop (number 4) (:s (: add yellow here) (:for (call adj left this) (: select)))) (:loop (number 4) (:for (call adj right this) (: select))))) (:for (call adj front this) (: select))))\"]]") +(:def_ret "hory_plank" "[[\"repeat 4 [ add yellow; select left]; repeat 4 [ select right]\",\"(:s (:loop (number 4) (:s (: add yellow here) (:for (call adj left) (: select)))) (:loop (number 4) (:for (call adj right) (: select))))\"]]") +(:def_ret "yellow_chair_back" "[[\"repeat 4 [ hory_plank; select top]\",\"(:loop (number 4) (:s (:blkr (:s (:loop (number 4) (:s (: add yellow here) (:for (call adj left) (: select)))) (:loop (number 4) (:for (call adj right) (: select))))) (:for (call adj top) (: select))))\"]]") +(:def_ret "add red beam" "[[\"repeat 4 [ add red; select right]; add red\",\"(:s (:loop (number 4) (:s (: add red here) (:for (call adj right) (: select)))) (: add red here))\"]]") +(:def_ret "add red beam" "[[\"repeat 4 [ add red; select right] add red\",\"(:s (:loop (number 4) (:s (: add red here) (:for (call adj right) (: select)))) (: add red here))\"]]") +(:def_ret "add blue column height 1" "[[\"repeat 1 [ add blue; select top of this]; repeat 1 [ select bot of this]\",\"(:s (:loop (number 1) (:s (: add blue here) (:for (call adj top this) (: select)))) (:loop (number 1) (:for (call adj bot this) (: select))))\"]]") +(:def_ret "blue_pylon" "[[\"add blue column height 1; repeat 4 [ select right]; add blue column height 1;\",\"(:s (:blkr (:s (:loop (number 1) (:s (: add blue here) (:for (call adj top this) (: select)))) (:loop (number 1) (:for (call adj bot this) (: select))))) (:s (:loop (number 4) (:for (call adj right) (: select))) (:blkr (:s (:loop (number 1) (:s (: add blue here) (:for (call adj top this) (: select)))) (:loop (number 1) (:for (call adj bot this) (: select)))))))\"]]") +(:def_ret "pylon_reset" "[[\"repeat 4 [ select left ]; repeat 2 [ select back ]\",\"(:s (:loop (number 4) (:for (call adj left) (: select))) (:loop (number 2) (:for (call adj back) (: select))))\"]]") +(:def_ret "pylr" "[[\"repeat 4 [ select left ]\",\"(:loop (number 4) (:for (call adj left) (: select)))\"]]") +(:def_ret "pyb" "[[\"repeat 2 [select back]\",\"(:loop (number 2) (:for (call adj back) (: select)))\"]]") +(:def_ret "blue_pylon height 2" "[[\"repeat 2 [ blue_pylon; pylr; select top]\",\"(:loop (number 2) (:s (:s (:blkr (:s (:blkr (:s (:loop (number 1) (:s (: add blue here) (:for (call adj top this) (: select)))) (:loop (number 1) (:for (call adj bot this) (: select))))) (:s (:loop (number 4) (:for (call adj right) (: select))) (:blkr (:s (:loop (number 1) (:s (: add blue here) (:for (call adj top this) (: select)))) (:loop (number 1) (:for (call adj bot this) (: select)))))))) (:blkr (:loop (number 4) (:for (call adj left) (: select))))) (:for (call adj top) (: select))))\"]]") +(:def_ret "blue_pylon height 2" "[[\"repeat 2 [ blue_pylon; pylr; select top]; repeat 2 [ select bot]\",\"(:s (:loop (number 2) (:s (:s (:blkr (:s (:blkr (:s (:loop (number 1) (:s (: add blue here) (:for (call adj top this) (: select)))) (:loop (number 1) (:for (call adj bot this) (: select))))) (:s (:loop (number 4) (:for (call adj right) (: select))) (:blkr (:s (:loop (number 1) (:s (: add blue here) (:for (call adj top this) (: select)))) (:loop (number 1) (:for (call adj bot this) (: select)))))))) (:blkr (:loop (number 4) (:for (call adj left) (: select))))) (:for (call adj top) (: select)))) (:loop (number 2) (:for (call adj bot) (: select))))\"]]") +(:def_ret "blpy" "[[\"add blue column height 1; repeat 4 [ select right]; add blue column height 1;\",\"(:s (:blkr (:s (:loop (number 1) (:s (: add blue here) (:for (call adj top this) (: select)))) (:loop (number 1) (:for (call adj bot this) (: select))))) (:blkr (:s (:loop (number 1) (:s (:s (:loop (number 4) (:for (call adj right) (: select))) (: add blue here)) (:for (call adj top this) (: select)))) (:loop (number 1) (:for (call adj bot this) (: select))))))\"]]") +(:def_ret "blpy height 1" "[[\"repeat 1 [ blue_pylon; pylr; select top]; repeat 1 [ select bot]\",\"(:s (:loop (number 1) (:s (:s (:blkr (:s (:blkr (:s (:loop (number 1) (:s (: add blue here) (:for (call adj top this) (: select)))) (:loop (number 1) (:for (call adj bot this) (: select))))) (:s (:loop (number 4) (:for (call adj right) (: select))) (:blkr (:s (:loop (number 1) (:s (: add blue here) (:for (call adj top this) (: select)))) (:loop (number 1) (:for (call adj bot this) (: select)))))))) (:blkr (:loop (number 4) (:for (call adj left) (: select))))) (:for (call adj top) (: select)))) (:loop (number 1) (:for (call adj bot) (: select))))\"]]") +(:def_ret "blpy height 2" "[[\"repeat 2 [ blue_pylon; pylr; select top]; repeat 2 [ select bot of this]\",\"(:s (:loop (number 2) (:s (:s (:blkr (:s (:blkr (:s (:loop (number 1) (:s (: add blue here) (:for (call adj top this) (: select)))) (:loop (number 1) (:for (call adj bot this) (: select))))) (:s (:loop (number 4) (:for (call adj right) (: select))) (:blkr (:s (:loop (number 1) (:s (: add blue here) (:for (call adj top this) (: select)))) (:loop (number 1) (:for (call adj bot this) (: select)))))))) (:blkr (:loop (number 4) (:for (call adj left) (: select))))) (:for (call adj top) (: select)))) (:loop (number 2) (:for (call adj bot this) (: select))))\"]]") +(:def_ret "bl_a" "[[\"blpy height 1\",\"(:blkr (:s (:loop (number 1) (:s (:s (:blkr (:s (:blkr (:s (:loop (number 1) (:s (: add blue here) (:for (call adj top this) (: select)))) (:loop (number 1) (:for (call adj bot this) (: select))))) (:blkr (:s (:loop (number 1) (:s (:s (:loop (number 4) (:for (call adj right) (: select))) (: add blue here)) (:for (call adj top this) (: select)))) (:loop (number 1) (:for (call adj bot this) (: select))))))) (:blkr (:loop (number 4) (:for (call adj left) (: select))))) (:for (call adj top) (: select)))) (:loop (number 1) (:for (call adj bot) (: select)))))\"]]") +(:def_ret "bl_b" "[[\"blpy height 2\",\"(:blkr (:s (:loop (number 2) (:s (:s (:blkr (:s (:blkr (:s (:loop (number 1) (:s (: add blue here) (:for (call adj top this) (: select)))) (:loop (number 1) (:for (call adj bot this) (: select))))) (:blkr (:s (:loop (number 1) (:s (:s (:loop (number 4) (:for (call adj right) (: select))) (: add blue here)) (:for (call adj top this) (: select)))) (:loop (number 1) (:for (call adj bot this) (: select))))))) (:blkr (:loop (number 4) (:for (call adj left) (: select))))) (:for (call adj top) (: select)))) (:loop (number 2) (:for (call adj bot) (: select)))))\"]]") +(:def_ret "bl_c" "[[\"blpy height 3\",\"(:blkr (:s (:loop (number 3) (:s (:s (:blkr (:s (:blkr (:s (:loop (number 1) (:s (: add blue here) (:for (call adj top this) (: select)))) (:loop (number 1) (:for (call adj bot this) (: select))))) (:blkr (:s (:loop (number 1) (:s (:s (:loop (number 4) (:for (call adj right) (: select))) (: add blue here)) (:for (call adj top this) (: select)))) (:loop (number 1) (:for (call adj bot this) (: select))))))) (:blkr (:loop (number 4) (:for (call adj left) (: select))))) (:for (call adj top) (: select)))) (:loop (number 3) (:for (call adj bot) (: select)))))\"]]") +(:def_ret "bl_d" "[[\"blpy height 4\",\"(:blkr (:s (:loop (number 4) (:s (:s (:blkr (:s (:blkr (:s (:loop (number 1) (:s (: add blue here) (:for (call adj top this) (: select)))) (:loop (number 1) (:for (call adj bot this) (: select))))) (:blkr (:s (:loop (number 1) (:s (:s (:loop (number 4) (:for (call adj right) (: select))) (: add blue here)) (:for (call adj top this) (: select)))) (:loop (number 1) (:for (call adj bot this) (: select))))))) (:blkr (:loop (number 4) (:for (call adj left) (: select))))) (:for (call adj top) (: select)))) (:loop (number 4) (:for (call adj bot) (: select)))))\"]]") +(:def_ret "rb" "[[\"add red beam\",\"(:blkr (:s (:loop (number 4) (:s (: add red here) (:for (call adj right) (: select)))) (: add red here)))\"]]") +(:def_ret "blpy nh 1" "[[\"repeat 1 [ blue_pylon; pylr; select top]; rb; repeat 1 [ select bot]\",\"(:s (:s (:loop (number 1) (:s (:s (:blkr (:s (:blkr (:s (:loop (number 1) (:s (: add blue here) (:for (call adj top this) (: select)))) (:loop (number 1) (:for (call adj bot this) (: select))))) (:s (:loop (number 4) (:for (call adj right) (: select))) (:blkr (:s (:loop (number 1) (:s (: add blue here) (:for (call adj top this) (: select)))) (:loop (number 1) (:for (call adj bot this) (: select)))))))) (:blkr (:loop (number 4) (:for (call adj left) (: select))))) (:for (call adj top) (: select)))) (:blkr (:blkr (:s (:loop (number 4) (:s (: add red here) (:for (call adj right) (: select)))) (: add red here))))) (:loop (number 1) (:for (call adj bot) (: select))))\"]]") +(:def "row_reset" "[[\"pyb\",\"(:blkr (:loop (number 2) (:for (call adj back) (: select))))\"],[\"pylr\",\"(:blkr (:loop (number 4) (:for (call adj left) (: select))))\"]]") +(:def_ret "row_reset" "[[\"pyb; pylr\",\"(:s (:blkr (:loop (number 2) (:for (call adj back) (: select)))) (:blkr (:loop (number 4) (:for (call adj left) (: select)))))\"]]") +(:def "blue_bench" "[[\"blpy nh 1\",\"(:blkr (:s (:s (:loop (number 1) (:s (:s (:blkr (:s (:blkr (:s (:loop (number 1) (:s (: add blue here) (:for (call adj top this) (: select)))) (:loop (number 1) (:for (call adj bot this) (: select))))) (:s (:loop (number 4) (:for (call adj right) (: select))) (:blkr (:s (:loop (number 1) (:s (: add blue here) (:for (call adj top this) (: select)))) (:loop (number 1) (:for (call adj bot this) (: select)))))))) (:blkr (:loop (number 4) (:for (call adj left) (: select))))) (:for (call adj top) (: select)))) (:blkr (:blkr (:s (:loop (number 4) (:s (: add red here) (:for (call adj right) (: select)))) (: add red here))))) (:loop (number 1) (:for (call adj bot) (: select)))))\"],[\"pyb\",\"(:blkr (:loop (number 2) (:for (call adj back) (: select))))\"],[\"pylr\",\"(:blkr (:loop (number 4) (:for (call adj left) (: select))))\"],[\"blpy nh 2\",\"(:blkr (:s (:s (:loop (number 2) (:s (:s (:blkr (:s (:blkr (:s (:loop (number 1) (:s (: add blue here) (:for (call adj top this) (: select)))) (:loop (number 1) (:for (call adj bot this) (: select))))) (:s (:loop (number 4) (:for (call adj right) (: select))) (:blkr (:s (:loop (number 1) (:s (: add blue here) (:for (call adj top this) (: select)))) (:loop (number 1) (:for (call adj bot this) (: select)))))))) (:blkr (:loop (number 4) (:for (call adj left) (: select))))) (:for (call adj top) (: select)))) (:blkr (:blkr (:s (:loop (number 4) (:s (: add red here) (:for (call adj right) (: select)))) (: add red here))))) (:loop (number 2) (:for (call adj bot) (: select)))))\"],[\"row_reset\",\"(:blkr (:s (:blkr (:loop (number 2) (:for (call adj back) (: select)))) (:blkr (:loop (number 4) (:for (call adj left) (: select))))))\"],[\"blpy nh 3\",\"(:blkr (:s (:s (:loop (number 3) (:s (:s (:blkr (:s (:blkr (:s (:loop (number 1) (:s (: add blue here) (:for (call adj top this) (: select)))) (:loop (number 1) (:for (call adj bot this) (: select))))) (:s (:loop (number 4) (:for (call adj right) (: select))) (:blkr (:s (:loop (number 1) (:s (: add blue here) (:for (call adj top this) (: select)))) (:loop (number 1) (:for (call adj bot this) (: select)))))))) (:blkr (:loop (number 4) (:for (call adj left) (: select))))) (:for (call adj top) (: select)))) (:blkr (:blkr (:s (:loop (number 4) (:s (: add red here) (:for (call adj right) (: select)))) (: add red here))))) (:loop (number 3) (:for (call adj bot) (: select)))))\"],[\"row_reset\",\"(:blkr (:s (:blkr (:loop (number 2) (:for (call adj back) (: select)))) (:blkr (:loop (number 4) (:for (call adj left) (: select))))))\"],[\"blpy nh 4\",\"(:blkr (:s (:s (:loop (number 4) (:s (:s (:blkr (:s (:blkr (:s (:loop (number 1) (:s (: add blue here) (:for (call adj top this) (: select)))) (:loop (number 1) (:for (call adj bot this) (: select))))) (:s (:loop (number 4) (:for (call adj right) (: select))) (:blkr (:s (:loop (number 1) (:s (: add blue here) (:for (call adj top this) (: select)))) (:loop (number 1) (:for (call adj bot this) (: select)))))))) (:blkr (:loop (number 4) (:for (call adj left) (: select))))) (:for (call adj top) (: select)))) (:blkr (:blkr (:s (:loop (number 4) (:s (: add red here) (:for (call adj right) (: select)))) (: add red here))))) (:loop (number 4) (:for (call adj bot) (: select)))))\"]]") +(:def_ret "orange_pylon" "[[\"add orange column height 1; repeat 4 [ select right]; add orange column height 1;\",\"(:s (:blkr (:s (:loop (number 1) (:s (: add orange here) (:for (call adj top this) (: select)))) (:loop (number 1) (:for (call adj bot this) (: select))))) (:blkr (:s (:loop (number 1) (:s (:s (:loop (number 4) (:for (call adj right) (: select))) (: add orange here)) (:for (call adj top this) (: select)))) (:loop (number 1) (:for (call adj bot this) (: select))))))\"]]") +(:def_ret "opy height 1" "[[\"repeat 1 [ orange_pylon; pylr; select top]; rb; repeat 1 [ select bot]\",\"(:s (:s (:loop (number 1) (:s (:s (:blkr (:s (:blkr (:s (:loop (number 1) (:s (: add orange here) (:for (call adj top this) (: select)))) (:loop (number 1) (:for (call adj bot this) (: select))))) (:blkr (:s (:loop (number 1) (:s (:s (:loop (number 4) (:for (call adj right) (: select))) (: add orange here)) (:for (call adj top this) (: select)))) (:loop (number 1) (:for (call adj bot this) (: select))))))) (:blkr (:loop (number 4) (:for (call adj left) (: select))))) (:for (call adj top) (: select)))) (:blkr (:blkr (:s (:loop (number 4) (:s (: add red here) (:for (call adj right) (: select)))) (: add red here))))) (:loop (number 1) (:for (call adj bot) (: select))))\"]]") +(:def_ret "grn height 1" "[[\"add green; add green bot; add green top\",\"(:s (:s (: add green here) (: add green bot)) (: add green top))\"]]") +(:def_ret "add green height 3" "[[\"repeat 3 [add green; select top]; repeat 3 [select bot]\",\"(:s (:loop (number 3) (:s (: add green here) (:for (call adj top) (: select)))) (:loop (number 3) (:for (call adj bot) (: select))))\"]]") +(:def_ret "add next row back" "[[\"select back; add orange; add orange left; add orange left; add orange left; add orange left; add orange left\",\"(:s (:s (:s (:s (:s (:s (:for (call adj back) (: select)) (: add orange here)) (: add orange left)) (: add orange left)) (: add orange left)) (: add orange left)) (: add orange left))\"]]") +(:def_ret "add red row back" "[[\"select back; add red; add red left; add red left; add red left;\",\"(:s (:s (:s (:s (:for (call adj back) (: select)) (: add red here)) (: add red left)) (: add red left)) (: add red left))\"]]") +(:def_ret "add yellow row" "[[\"add yellow; add yellow left; add yellow left; add yellow left\",\"(:s (:s (:s (: add yellow here) (: add yellow left)) (: add yellow left)) (: add yellow left))\"]]") +(:def_ret "add yellow row" "[[\"add yellow; add yellow left; add yellow left; add yellow left;\",\"(:s (:s (:s (: add yellow left) (: add yellow left)) (: add yellow left)) (: add yellow here))\"]]") +(:def_ret "add yrow" "[[\"add yellow; add yellow left; add yellow left; add yellow left;\",\"(:s (:s (:s (: add yellow left) (: add yellow left)) (: add yellow left)) (: add yellow here))\"]]") +(:def "add green branch 1" "[[\"add 1 green left\",\"(: add green left)\"],[\"add 1 green right\",\"(: add green right)\"]]") +(:def "add green branch 2" "[[\"repeat 2 [add green left]\",\"(:loop (number 2) (: add green left))\"],[\"repeat 2 [add green right]\",\"(:loop (number 2) (: add green right))\"]]") +(:def "create orange step height one" "[[\"repeat 1 [add orange]\",\"(:loop (number 1) (: add orange here))\"],[\"add red top\",\"(: add red top)\"],[\"select top\",\"(:for (call adj top) (: select))\"],[\"repeat 4 [add red right]\",\"(:loop (number 4) (: add red right))\"],[\"select right 4\",\"(:loop (number 4) (:for (call adj right) (: select)))\"],[\"repeat 1 [add orange bot]\",\"(:loop (number 1) (: add orange bot))\"]]") +(:def "add brown tower 4" "[[\"add brown\",\"(: add brown here)\"],[\"repeat 4-1 [add brown top]\",\"(:loop (- (number 4) (number 1)) (: add brown top))\"]]") +(:def "add brown tower height 4" "[[\"add brown\",\"(: add brown here)\"],[\"repeat 4-1 [add brown top]\",\"(:loop (- (number 4) (number 1)) (: add brown top))\"]]") +(:def "create orange step height 1" "[[\"add orange\",\"(: add orange here)\"],[\"repeat 1-1 [add orange top]\",\"(:loop (- (number 1) (number 1)) (: add orange top))\"],[\"add red top\",\"(: add red top)\"],[\"select red\",\"(:foreach (color red) (: select))\"],[\"repeat 4 [add red right]\",\"(:loop (number 4) (: add red right))\"],[\"select right 4\",\"(:loop (number 4) (:for (call adj right) (: select)))\"],[\"repeat 1 [add orange bot]\",\"(:loop (number 1) (: add orange bot))\"]]") +(:def "create orange tower 3" "[[\"add orange\",\"(: add orange here)\"],[\"repeat 3-1 [add orange top]\",\"(:loop (- (number 3) (number 1)) (: add orange top))\"]]") +(:def "add red step" "[[\"add red top\",\"(: add red top)\"],[\"select top\",\"(:for (call adj top) (: select))\"],[\"repeat 4 [add red left]\",\"(:loop (number 4) (: add red left))\"]]") +(:def_ret "add row 5 left red" "[[\"repeat 5[add red; select left of this];\",\"(:loop (number 5) (:s (: add red here) (:for (call adj left this) (: select))))\"]]") +(:def "select left and down" "[[\"select left\",\"(:for (call adj left) (: select))\"],[\"select bot\",\"(:for (call adj bot) (: select))\"]]") +(:def "select left and bot" "[[\"select bot\",\"(:for (call adj bot) (: select))\"],[\"select left\",\"(:for (call adj left) (: select))\"]]") +(:def_ret "add red row 5 left" "[[\"repeat 5 [add red; select left]; select bot\",\"(:s (:loop (number 5) (:s (: add red here) (:for (call adj left) (: select)))) (:for (call adj bot) (: select)))\"]]") +(:def "add blue up 2" "[[\"repeat 2 [add blue; select top of this]\",\"(:loop (number 2) (:s (: add blue here) (:for (call adj top this) (: select))))\"],[\"select bot\",\"(:for (call adj bot) (: select))\"],[\"select bot\",\"(:for (call adj bot) (: select))\"]]") +(:def_ret "add blue up 2" "[[\"repeat 2[add blue; select top of this]\",\"(:loop (number 2) (:s (: add blue here) (:for (call adj top this) (: select))))\"]]") +(:def_ret "select top of this" "[[\"repeat 4[select top]\",\"(:loop (number 4) (:for (call adj top) (: select)))\"]]") +(:def "select very bot 5 right" "[[\"repeat 3[select bot]\",\"(:loop (number 3) (:for (call adj bot) (: select)))\"],[\"repeat 5[select right]\",\"(:loop (number 5) (:for (call adj right) (: select)))\"]]") +(:def "select very bot 5 right" "[[\"repeat 5[select right]\",\"(:loop (number 5) (:for (call adj right) (: select)))\"],[\"repeat 3[select bot]\",\"(:loop (number 3) (:for (call adj bot) (: select)))\"]]") +(:def "select top of this" "[[\"select top\",\"(:for (call adj top) (: select))\"],[\"select top\",\"(:for (call adj top) (: select))\"],[\"add red row 5 left\",\"(:blkr (:s (:loop (number 5) (:s (: add red here) (:for (call adj left) (: select)))) (:for (call adj bot) (: select))))\"]]") +(:def "create red bench with blue legs 1 tall" "[[\"add blue\",\"(: add blue here)\"],[\"select left 4\",\"(:loop (number 4) (:for (call adj left) (: select)))\"],[\"add blue\",\"(: add blue here)\"],[\"select top of this\",\"(:for (call adj top this) (: select))\"],[\"add red row 5 right\",\"(:blkr (:s (:loop (number 5) (:s (: add red here) (:for (call adj right) (: select)))) (:for (call adj bot) (: select))))\"],[\"select left\",\"(:for (call adj left) (: select))\"]]") +(:def "create red bench with blue legs 2 tall" "[[\"repeat 2 [add blue; select top]\",\"(:loop (number 2) (:s (: add blue here) (:for (call adj top) (: select))))\"],[\"add red row 5 left\",\"(:blkr (:s (:loop (number 5) (:s (: add red here) (:for (call adj left) (: select)))) (:for (call adj bot) (: select))))\"],[\"select right\",\"(:for (call adj right) (: select))\"],[\"repeat 2[add blue; select bot]\",\"(:loop (number 2) (:s (: add blue here) (:for (call adj bot) (: select))))\"]]") +(:def "select orange right" "[[\"select orange\",\"(:foreach (color orange) (:blkr))\"],[\"repeat 4[select right]\",\"(:loop (number 4) (:for (call adj right) (: select)))\"]]") +(:def_ret "select orange right" "[[\"select orange\",\"(:foreach (color orange) (:blkr))\"]]") +(:def "select orange right" "[[\"select orange\",\"(:foreach (color orange) (:blkr))\"],[\"repeat 4[select right]\",\"(:loop (number 4) (:for (call adj right) (: select)))\"]]") +(:def_ret "add blue tower" "[[\"add blue top 3 times\",\"(:loop (number 3) (: add blue top))\"]]") +(:def_ret "add big red cube" "[]") +(:def_ret "add red line" "[[\"repeat 3 [ add red; select back of this ]\",\"(:loop (number 3) (:s (: add red here) (:for (call adj back this) (: select))))\"]]") +(:def_ret "add yellow row" "[[\"add yellow 3 times to right\",\"(:foreach (call adj right) (: add yellow here))\"]]") +(:def_ret "add brown tower" "[[\"add brown top 4 times\",\"(:loop (number 4) (: add brown top))\"]]") +(:def_ret "add brown tower" "[[\"add brown top 3 times\",\"(:loop (number 3) (: add brown top))\"]]") +(:def "add red column" "[[\"add red\",\"(: add red here)\"],[\"add red top\",\"(: add red top)\"],[\"add red top\",\"(: add red top)\"]]") +(:def_ret "add red column height 3" "[[\"repeat 3 [ add red; select top of this ]\",\"(:loop (number 3) (:s (: add red here) (:for (call adj top this) (: select))))\"]]") +(:def_ret "add red column height 3" "[[\"repeat 3 [ add red; select top of this ]; repeat 3 [select bot of this ]\",\"(:s (:loop (number 3) (:s (: add red here) (:for (call adj top this) (: select)))) (:loop (number 3) (:for (call adj bot this) (: select))))\"]]") +(:def_ret "red plate 3" "[[\"repeat 3 [ add red column height 3; select left of this ]\",\"(:loop (number 3) (:s (:blkr (:s (:loop (number 3) (:s (: add red here) (:for (call adj top this) (: select)))) (:loop (number 3) (:for (call adj bot this) (: select))))) (:for (call adj left this) (: select))))\"]]") +(:def_ret "red cube 3" "[[\"repeat 3 [ red plate 3; repeat 3 [ select right of this]; select back of this ]\",\"(:loop (number 3) (:s (:s (:blkr (:loop (number 3) (:s (:blkr (:s (:loop (number 3) (:s (: add red here) (:for (call adj top this) (: select)))) (:loop (number 3) (:for (call adj bot this) (: select))))) (:for (call adj left this) (: select))))) (:loop (number 3) (:for (call adj right this) (: select)))) (:for (call adj back this) (: select))))\"]]") +(:def_ret "add blue column 2" "[[\"add blue bot 2 times\",\"(:loop (number 2) (: add blue bot))\"]]") +(:def_ret "add red plate 5" "[[\"add red; add red right 4 times\",\"(:loop (number 4) (:s (: add red here) (: add red right)))\"]]") +(:def_ret "add brown column height 3" "[[\"repeat 3 [add brown; select top of this]\",\"(:loop (number 3) (:s (: add brown here) (:for (call adj top this) (: select))))\"]]") +(:def "build 1" "[[\"add red to top\",\"(:foreach (call adj top) (: add red here))\"],[\"add red line to left; select left; select left; select left; select left\",\"(:s (:s (:s (:s (:for (call adj left) (: select)) (:for (call adj left) (: select))) (:for (call adj left) (: select))) (:for (call adj left) (: select))) (:blk (:foreach (call adj right) (: add red here)) (:loop (number 3) (:blkr (:foreach (call adj right) (: add red here))))))\"],[\"add red; add blue bot; select right; select right; select right; select right; select bot\",\"(:s (:s (:s (:s (:s (:s (: add red here) (: add blue bot)) (:for (call adj right) (: select))) (:for (call adj right) (: select))) (:for (call adj right) (: select))) (:for (call adj right) (: select))) (:for (call adj bot) (: select)))\"]]") +(:def "2 block orange" "[[\"select right; select right; add orange; add orange top; select top\",\"(:s (:s (:s (:s (:for (call adj right) (: select)) (:for (call adj right) (: select))) (: add orange here)) (: add orange top)) (:for (call adj top) (: select)))\"],[\"add red top; select top; add red line to right; select right; select right; select right; select right; add orange bot; add orange bot\",\"(:s (:s (:s (: add red top) (:for (call adj top) (: select))) (:blk (:foreach (call adj right) (: add red here)) (:loop (number 3) (:blkr (:foreach (call adj right) (: add red here)))))) (:s (:s (:s (:s (:s (:for (call adj right) (: select)) (:for (call adj right) (: select))) (:for (call adj right) (: select))) (:for (call adj right) (: select))) (: add orange bot)) (: add orange bot)))\"],[\"select left; select left; select left; select left; select bot; select bot\",\"(:s (:s (:s (:s (:s (:for (call adj left) (: select)) (:for (call adj left) (: select))) (:for (call adj left) (: select))) (:for (call adj left) (: select))) (:for (call adj bot) (: select))) (:for (call adj bot) (: select)))\"]]") +(:def "orange 2" "[[\"select right; select right; add orange; add orange top; select top\",\"(:s (:s (:s (:s (:for (call adj right) (: select)) (:for (call adj right) (: select))) (: add orange here)) (: add orange top)) (:for (call adj top) (: select)))\"],[\"add red top; select top; add red line to right; select right; select right; select right; select right; add orange bot; add orange bot\",\"(:s (:s (:s (: add red top) (:for (call adj top) (: select))) (:blk (:foreach (call adj right) (: add red here)) (:loop (number 3) (:blkr (:foreach (call adj right) (: add red here)))))) (:s (:s (:s (:s (:s (:for (call adj right) (: select)) (:for (call adj right) (: select))) (:for (call adj right) (: select))) (:for (call adj right) (: select))) (: add orange bot)) (: add orange bot)))\"],[\"select left; select left; select left; select left; select bot; select bot\",\"(:s (:s (:s (:s (:s (:for (call adj left) (: select)) (:for (call adj left) (: select))) (:for (call adj left) (: select))) (:for (call adj left) (: select))) (:for (call adj bot) (: select))) (:for (call adj bot) (: select)))\"]]") +(:def "2 block orange" "[[\"select right; select right; add orange; add orange top; select top\",\"(:s (:s (:s (:s (:for (call adj right) (: select)) (:for (call adj right) (: select))) (: add orange here)) (: add orange top)) (:for (call adj top) (: select)))\"],[\"add red top; select top; add red line to right; select right; select right; select right; select right; add orange bot; add orange bot\",\"(:s (:s (:s (: add red top) (:for (call adj top) (: select))) (:blk (:foreach (call adj right) (: add red here)) (:loop (number 3) (:blkr (:foreach (call adj right) (: add red here)))))) (:s (:s (:s (:s (:s (:for (call adj right) (: select)) (:for (call adj right) (: select))) (:for (call adj right) (: select))) (:for (call adj right) (: select))) (: add orange bot)) (: add orange bot)))\"],[\"select left; select left; select left; select left; select bot; select bot\",\"(:s (:s (:s (:s (:s (:for (call adj left) (: select)) (:for (call adj left) (: select))) (:for (call adj left) (: select))) (:for (call adj left) (: select))) (:for (call adj bot) (: select))) (:for (call adj bot) (: select)))\"]]") +(:def "orange 2" "[[\"select right; select right; add orange; add orange top; select top\",\"(:s (:s (:s (:s (:for (call adj right) (: select)) (:for (call adj right) (: select))) (: add orange here)) (: add orange top)) (:for (call adj top) (: select)))\"],[\"add red top; select top; add red line to right; select right; select right; select right; select right; add orange bot; add orange bot\",\"(:s (:s (:s (: add red top) (:for (call adj top) (: select))) (:blk (:foreach (call adj right) (: add red here)) (:loop (number 3) (:blkr (:foreach (call adj right) (: add red here)))))) (:s (:s (:s (:s (:s (:for (call adj right) (: select)) (:for (call adj right) (: select))) (:for (call adj right) (: select))) (:for (call adj right) (: select))) (: add orange bot)) (: add orange bot)))\"],[\"select left; select left; select left; select left; select bot; select bot\",\"(:s (:s (:s (:s (:s (:for (call adj left) (: select)) (:for (call adj left) (: select))) (:for (call adj left) (: select))) (:for (call adj left) (: select))) (:for (call adj bot) (: select))) (:for (call adj bot) (: select)))\"]]") +(:def "2 block orange" "[[\"select right; select right; add orange; add orange top; select top\",\"(:s (:s (:s (:s (:for (call adj right) (: select)) (:for (call adj right) (: select))) (: add orange here)) (: add orange top)) (:for (call adj top) (: select)))\"],[\"add red top; select top; add red line to right; select right; select right; select right; select right; add orange bot; add orange bot\",\"(:s (:s (:s (: add red top) (:for (call adj top) (: select))) (:blk (:foreach (call adj right) (: add red here)) (:loop (number 3) (:blkr (:foreach (call adj right) (: add red here)))))) (:s (:s (:s (:s (:s (:for (call adj right) (: select)) (:for (call adj right) (: select))) (:for (call adj right) (: select))) (:for (call adj right) (: select))) (: add orange bot)) (: add orange bot)))\"],[\"select left; select left; select left; select left; select bot; select bot\",\"(:s (:s (:s (:s (:s (:for (call adj left) (: select)) (:for (call adj left) (: select))) (:for (call adj left) (: select))) (:for (call adj left) (: select))) (:for (call adj bot) (: select))) (:for (call adj bot) (: select)))\"]]") +(:def "orange 2" "[[\"select right; select right; add orange; add orange top; select top\",\"(:s (:s (:s (:s (:for (call adj right) (: select)) (:for (call adj right) (: select))) (: add orange here)) (: add orange top)) (:for (call adj top) (: select)))\"],[\"add red top; select top; add red line to right; select right; select right; select right; select right; add orange bot; add orange bot\",\"(:s (:s (:s (: add red top) (:for (call adj top) (: select))) (:blk (:foreach (call adj right) (: add red here)) (:loop (number 3) (:blkr (:foreach (call adj right) (: add red here)))))) (:s (:s (:s (:s (:s (:for (call adj right) (: select)) (:for (call adj right) (: select))) (:for (call adj right) (: select))) (:for (call adj right) (: select))) (: add orange bot)) (: add orange bot)))\"],[\"select left; select left; select left; select left; select bot; select bot\",\"(:s (:s (:s (:s (:s (:for (call adj left) (: select)) (:for (call adj left) (: select))) (:for (call adj left) (: select))) (:for (call adj left) (: select))) (:for (call adj bot) (: select))) (:for (call adj bot) (: select)))\"]]") +(:def "2 block orange" "[[\"select right; select right; add orange; add orange top; select top\",\"(:s (:s (:s (:s (:for (call adj right) (: select)) (:for (call adj right) (: select))) (: add orange here)) (: add orange top)) (:for (call adj top) (: select)))\"],[\"add red top; select top; add red line to right; select right; select right; select right; select right; add orange bot; add orange bot\",\"(:s (:s (:s (: add red top) (:for (call adj top) (: select))) (:blk (:foreach (call adj right) (: add red here)) (:loop (number 3) (:blkr (:foreach (call adj right) (: add red here)))))) (:s (:s (:s (:s (:s (:for (call adj right) (: select)) (:for (call adj right) (: select))) (:for (call adj right) (: select))) (:for (call adj right) (: select))) (: add orange bot)) (: add orange bot)))\"],[\"select left; select left; select left; select left; select bot; select bot\",\"(:s (:s (:s (:s (:s (:for (call adj left) (: select)) (:for (call adj left) (: select))) (:for (call adj left) (: select))) (:for (call adj left) (: select))) (:for (call adj bot) (: select))) (:for (call adj bot) (: select)))\"]]") +(:def "orange 2" "[[\"select right; select right; add orange; add orange top; select top\",\"(:s (:s (:s (:s (:for (call adj right) (: select)) (:for (call adj right) (: select))) (: add orange here)) (: add orange top)) (:for (call adj top) (: select)))\"],[\"add red top; select top; add red line to right; select right; select right; select right; select right; add orange bot; add orange bot\",\"(:s (:s (:s (: add red top) (:for (call adj top) (: select))) (:blk (:foreach (call adj right) (: add red here)) (:loop (number 3) (:blkr (:foreach (call adj right) (: add red here)))))) (:s (:s (:s (:s (:s (:for (call adj right) (: select)) (:for (call adj right) (: select))) (:for (call adj right) (: select))) (:for (call adj right) (: select))) (: add orange bot)) (: add orange bot)))\"],[\"select left; select left; select left; select left; select bot; select bot\",\"(:s (:s (:s (:s (:s (:for (call adj left) (: select)) (:for (call adj left) (: select))) (:for (call adj left) (: select))) (:for (call adj left) (: select))) (:for (call adj bot) (: select))) (:for (call adj bot) (: select)))\"]]") +(:def "2 block orange" "[[\"select right; select right; add orange; add orange top; select top\",\"(:s (:s (:s (:s (:for (call adj right) (: select)) (:for (call adj right) (: select))) (: add orange here)) (: add orange top)) (:for (call adj top) (: select)))\"],[\"add red top; select top; add red line to right; select right; select right; select right; select right; add orange bot; add orange bot\",\"(:s (:s (:s (: add red top) (:for (call adj top) (: select))) (:blk (:foreach (call adj right) (: add red here)) (:loop (number 3) (:blkr (:foreach (call adj right) (: add red here)))))) (:s (:s (:s (:s (:s (:for (call adj right) (: select)) (:for (call adj right) (: select))) (:for (call adj right) (: select))) (:for (call adj right) (: select))) (: add orange bot)) (: add orange bot)))\"],[\"select left; select left; select left; select left; select bot; select bot\",\"(:s (:s (:s (:s (:s (:for (call adj left) (: select)) (:for (call adj left) (: select))) (:for (call adj left) (: select))) (:for (call adj left) (: select))) (:for (call adj bot) (: select))) (:for (call adj bot) (: select)))\"]]") +(:def "orange 2" "[[\"select right; select right; add orange; add orange top; select top\",\"(:s (:s (:s (:s (:for (call adj right) (: select)) (:for (call adj right) (: select))) (: add orange here)) (: add orange top)) (:for (call adj top) (: select)))\"],[\"add red top; select top; add red line to right; select right; select right; select right; select right; add orange bot; add orange bot\",\"(:s (:s (:s (: add red top) (:for (call adj top) (: select))) (:blk (:foreach (call adj right) (: add red here)) (:loop (number 3) (:blkr (:foreach (call adj right) (: add red here)))))) (:s (:s (:s (:s (:s (:for (call adj right) (: select)) (:for (call adj right) (: select))) (:for (call adj right) (: select))) (:for (call adj right) (: select))) (: add orange bot)) (: add orange bot)))\"],[\"select left; select left; select left; select left; select bot; select bot\",\"(:s (:s (:s (:s (:s (:for (call adj left) (: select)) (:for (call adj left) (: select))) (:for (call adj left) (: select))) (:for (call adj left) (: select))) (:for (call adj bot) (: select))) (:for (call adj bot) (: select)))\"]]") +(:def_ret "add brown tower" "[[\"add brown top 10 times\",\"(:loop (number 10) (: add brown top))\"]]") +(:def_ret "add brown tower" "[[\"add brown top 9 times\",\"(:loop (number 9) (: add brown top))\"]]") +(:def_ret "add green to left " "[[\"add green to right\",\"(:foreach (call adj right) (: add green here))\"]]") +(:def "add green tower" "[[\"add green top 2 times\",\"(:loop (number 2) (: add green top))\"],[\"select top of this \",\"(:for (call adj top this) (: select))\"],[\"add green to right\",\"(:foreach (call adj right) (: add green here))\"],[\"select left of this\",\"(:for (call adj left this) (: select))\"],[\"select bottom of this\",\"(:foreach this (: select))\"]]") +(:def "add green tower" "[[\"add green top 6 times \",\"(:loop (number 6) (: add green top))\"],[\"add green to right\",\"(:foreach (call adj right) (: add green here))\"],[\"add green top 5 times\",\"(:loop (number 5) (: add green top))\"],[\"add green to right\",\"(:foreach (call adj right) (: add green here))\"]]") +(:def_ret "add green tower " "[[\"add green top 6 times\",\"(:loop (number 6) (: add green top))\"]]") +(:def_ret "add green tower" "[[\"add green top 6 times\",\"(:loop (number 6) (: add green top))\"]]") +(:def "add brown tower" "[[\"add brown top 9 times\",\"(:loop (number 9) (: add brown top))\"],[\"select top\",\"(:for (call adj top) (: select))\"]]") +(:def_ret "add green tower" "[[\"add green top 6 times\",\"(:loop (number 6) (: add green top))\"]]") +(:def_ret "add green tower" "[[\"add green top 5 times\",\"(:loop (number 5) (: add green top))\"]]") +(:def_ret "add green tower" "[[\"do 3 times add green top\",\"(:loop (number 3) (: add green top))\"]]") +(:def_ret "add green tower" "[[\"add green top 2 times\",\"(:loop (number 2) (: add green top))\"]]") +(:def_ret "add green to left " "[[\"add green left\",\"(: add green left)\"]]") +(:def "select left" "[[\"add green left\",\"(: add green left)\"],[\"select left\",\"(:for (call adj left) (: select))\"]]") +(:def "add green line" "[[\"add green to right\",\"(:foreach (call adj right) (: add green here))\"],[\"add green row to right; length 3\",\"(:loop (number 3) (:blkr (:foreach (call adj right) (: add green here))))\"]]") +(:def "add orange row 6 left" "[[\"repeat 6 [add orange square; select left of this;]\",\"(:s (: add orange here) (:for (call adj left this) (: select)))\"],[\"repeat 6 [add orange; select left of this;]\",\"(:loop (number 6) (:s (: add orange here) (:for (call adj left this) (: select))))\"]]") +(:def_ret "add orange row size 6 left" "[[\"repeat 6 [add orange; select left of this;]\",\"(:loop (number 6) (:s (: add orange here) (:for (call adj left this) (: select))))\"]]") +(:def_ret "add orange row 6 left;" "[[\"repeat 6 [add orange; select left of this]; repeat 6 [select right of this]\",\"(:s (:loop (number 6) (:s (: add orange here) (:for (call adj left this) (: select)))) (:loop (number 6) (:for (call adj right this) (: select))))\"]]") +(:def_ret "add orange row 6 left;" "[[\"repeat 6 [add orange; select left of this];\",\"(:loop (number 6) (:s (: add orange here) (:for (call adj left this) (: select))))\"]]") +(:def_ret "add left orange square length 6" "[[\"select front of this; repeat 6 [select back of this; add orange row 6 left;]\",\"(:s (:for (call adj front this) (: select)) (:loop (number 6) (:s (:for (call adj back this) (: select)) (:blkr (:s (:loop (number 6) (:s (: add orange here) (:for (call adj left this) (: select)))) (:loop (number 6) (:for (call adj right this) (: select))))))))\"]]") +(:def_ret "add red tower" "[[\"add red tower 2 blocks\",\"(:loop (number 2) (: add red here))\"]]") +(:def "add red tower" "[[\"add red top 2 times\",\"(:loop (number 2) (: add red top))\"],[\"add red block top\",\"(:foreach (call adj top) (: add red here))\"]]") +(:def_ret "Build Leftredbeam" "[[\"repeat 5 [add red; select left of this]; select right of this\",\"(:s (:loop (number 5) (:s (: add red here) (:for (call adj left this) (: select)))) (:for (call adj right this) (: select)))\"]]") +(:def_ret "select" "[]") +(:def_ret "build redrowleft" "[[\"repeat 5[add red; select left]; select right; select bot\",\"(:s (:s (:loop (number 5) (:s (: add red here) (:for (call adj left) (: select)))) (:for (call adj right) (: select))) (:for (call adj bot) (: select)))\"]]") +(:def_ret "build moveback" "[[\"repeat 4[select right]\",\"(:loop (number 4) (:for (call adj right) (: select)))\"]]") +(:def "build arch" "[[\"add orange\",\"(: add orange here)\"],[\"select top\",\"(:for (call adj top) (: select))\"],[\"select left\",\"(:for (call adj left) (: select))\"],[\"add red row length 5\",\"(:loop (number 5) (:blkr (:foreach (call adj right) (: add red here))))\"],[\"select bot\",\"(:for (call adj bot) (: select))\"],[\"add orange\",\"(: add orange here)\"]]") +(:def "build legs 1" "[[\"add blue\",\"(: add blue here)\"],[\"select right 4\",\"(:loop (number 4) (:for (call adj right) (: select)))\"],[\"add blue\",\"(: add blue here)\"],[\"select right 2\",\"(:loop (number 2) (:for (call adj right) (: select)))\"],[\"add orange\",\"(: add orange here)\"],[\"select right 4\",\"(:loop (number 4) (:for (call adj right) (: select)))\"],[\"add orange\",\"(: add orange here)\"]]") +(:def "build beams" "[[\"add red row length 5\",\"(:loop (number 5) (:blkr (:foreach (call adj right) (: add red here))))\"],[\"select right\",\"(:for (call adj right) (: select))\"],[\"add red row length 5\",\"(:loop (number 5) (:blkr (:foreach (call adj right) (: add red here))))\"],[\"select left 10\",\"(:loop (number 10) (:for (call adj left) (: select)))\"],[\"select bot\",\"(:for (call adj bot) (: select))\"],[\"select back 2\",\"(:loop (number 2) (:for (call adj back) (: select)))\"]]") +(:def "build resetrow" "[[\"select right\",\"(:for (call adj right) (: select))\"],[\"select right 10\",\"(:loop (number 10) (:for (call adj right) (: select)))\"],[\"select bot\",\"(:for (call adj bot) (: select))\"],[\"select back 2\",\"(:loop (number 2) (:for (call adj back) (: select)))\"]]") +(:def "build legs2" "[[\"add orange column height 2\",\"(:blkr (:s (:loop (number 2) (:s (: add orange here) (:for (call adj top this) (: select)))) (:loop (number 2) (:for (call adj bot this) (: select)))))\"],[\"select left 4\",\"(:loop (number 4) (:for (call adj left) (: select)))\"],[\"add orange column height 2\",\"(:blkr (:s (:loop (number 2) (:s (: add orange here) (:for (call adj top this) (: select)))) (:loop (number 2) (:for (call adj bot this) (: select)))))\"],[\"select left 2\",\"(:loop (number 2) (:for (call adj left) (: select)))\"],[\"add blue column height 2\",\"(:blkr (:s (:loop (number 2) (:s (: add blue here) (:for (call adj top this) (: select)))) (:loop (number 2) (:for (call adj bot this) (: select)))))\"],[\"select left 4\",\"(:loop (number 4) (:for (call adj left) (: select)))\"],[\"add blue column height 2\",\"(:blkr (:s (:loop (number 2) (:s (: add blue here) (:for (call adj top this) (: select)))) (:loop (number 2) (:for (call adj bot this) (: select)))))\"]]") +(:def "build legs 3" "[[\"add orange column height 3\",\"(:blkr (:s (:loop (number 3) (:s (: add orange here) (:for (call adj top this) (: select)))) (:loop (number 3) (:for (call adj bot this) (: select)))))\"],[\"select left 4\",\"(:loop (number 4) (:for (call adj left) (: select)))\"],[\"add orange column height 3\",\"(:blkr (:s (:loop (number 3) (:s (: add orange here) (:for (call adj top this) (: select)))) (:loop (number 3) (:for (call adj bot this) (: select)))))\"],[\"select left 2\",\"(:loop (number 2) (:for (call adj left) (: select)))\"],[\"add blue column height 3\",\"(:blkr (:s (:loop (number 3) (:s (: add blue here) (:for (call adj top this) (: select)))) (:loop (number 3) (:for (call adj bot this) (: select)))))\"],[\"select left 4\",\"(:loop (number 4) (:for (call adj left) (: select)))\"],[\"add blue column height 3\",\"(:blkr (:s (:loop (number 3) (:s (: add blue here) (:for (call adj top this) (: select)))) (:loop (number 3) (:for (call adj bot this) (: select)))))\"]]") +(:def "build legs4" "[[\"add orange column 4\",\"(:blkr (:loop (number 4) (: add orange bot)))\"],[\"select left 4\",\"(:loop (number 4) (:for (call adj left) (: select)))\"],[\"add orange column 4\",\"(:blkr (:loop (number 4) (: add orange bot)))\"],[\"select left 2\",\"(:loop (number 2) (:for (call adj left) (: select)))\"],[\"add blue column 4\",\"(:blkr (:loop (number 4) (: add blue bot)))\"],[\"select left 4\",\"(:loop (number 4) (:for (call adj left) (: select)))\"],[\"add blue column 4\",\"(:blkr (:loop (number 4) (: add blue bot)))\"],[\"select left\",\"(:for (call adj left) (: select))\"],[\"build beams\",\"(:blk (:loop (number 5) (:blkr (:foreach (call adj right) (: add red here)))) (:for (call adj right) (: select)) (:loop (number 5) (:blkr (:foreach (call adj right) (: add red here)))) (:loop (number 10) (:for (call adj left) (: select))) (:for (call adj bot) (: select)) (:loop (number 2) (:for (call adj back) (: select))))\"]]") diff --git a/shrdlurn/evenricher.grammar b/shrdlurn/evenricher.grammar deleted file mode 100644 index fe4926e..0000000 --- a/shrdlurn/evenricher.grammar +++ /dev/null @@ -1,200 +0,0 @@ -# contextful top level functions -(def @root context:root) -(def @iff iff) -# actions -(def @add add) -(def @remove remove) - -# action combinator -(def @seq seq) -(def @repeat repeat) - -# cond and their combinator - -(def @topColor top) -(def @contains has) -(def @all all) -(def @none none) - -(def @compare compare) -(def @not not) -(def @combine logic) - -# numbers and their operators -(def @get get) -(def @constant constant) -(def @negative negative) -(def @arith arith) - -(def @rect context:rect) -(def @shift context:shift) -(def @argmin context:argmin) -(def @argmax context:argmax) - -# mark -(def @mark context:mark) -(def @unmark context:unmark) -(def @marked marked) - -# This grammar should have Rule.defaultIsFloating false -# TO TEST -# (context (graph NaiveKnowledgeGraph ((string [[1,2,3,4],[4,3,1],[2,2,1],[2,2,3],[3],[]]) (name b) (name c)))) -# (set JavaExecutor.printStackTrace true) -####### Start of the actual grammar - -(rule $ROOT ($ActionSeq) (lambda a (call @root (var a))) (anchored 1)) # process for better -(rule $Action ($ActionSeq if $CondSeq) (lambda a (lambda c (call @iff (var c) (var a)))) (anchored 1)) - -# combo actions -(rule $ActionSeq ($ActionSeq then $Action) (lambda a1 (lambda a2 (call @seq (var a1) (var a2)))) (anchored 1)) -(rule $Action (repeat $ActionSeq $NumberSeq times) (lambda a (lambda n (call @repeat (var n) (var a)))) (anchored 1)) - -(rule $ActionSeq ($Action) (IdentityFn) (anchored 1)) -(rule $Action ([ $ActionSeq ]) (IdentityFn) (anchored 1)) - -# combo conditions -(for @op (or and) -(rule $CondSeq ($CondSeq @op $Cond) (lambda c1 (lambda c2 - (call @combine (string @op) (var c1) (var c2)))) (anchored 1)) -) -(rule $Cond (not $CondSeq) (lambda c (call @not (var c))) (anchored 1)) - -(rule $CondSeq ($Cond) (IdentityFn) (anchored 1)) -(rule $Cond ([ $CondSeq ]) (IdentityFn) (anchored 1)) - -(rule $Action (remove) (ConstantFn (call @remove)) (anchored 1)) -(rule $Action (add $Color) (lambda t (call @add (var t))) (anchored 1)) - -(rule $Action ( mark $CondSeq ) -(lambda c (call @mark (var c) )) (anchored 1)) -(rule $Action ( unmark $CondSeq ) -(lambda c (call @unmark (var c))) (anchored 1)) -(rule $Cond (marked) -(ConstantFn (call @marked)) (anchored 1)) - -(rule $Action ( select $CondSeq ) -(lambda c (call @mark (var c) )) (anchored 1)) -(rule $Action ( unselect $CondSeq ) -(lambda c (call @unmark (var c))) (anchored 1)) -(rule $Cond (selected) -(ConstantFn (call @marked)) (anchored 1)) - - -# basic conditions -(rule $Cond (has $Color) (lambda t - (call @contains (var t))) (anchored 1)) -(rule $Cond (top $Color) (lambda t - (call @topColor (var t))) (anchored 1)) - - -(rule $Cond (all) (ConstantFn - (call @all)) (anchored 1)) -(rule $Cond (none) (ConstantFn - (call @none)) (anchored 1)) - -########### number stuff -(for @num (0 1 2 3 4 5 6 7 8 9) -(rule $Number (@num) (ConstantFn (call @constant (number @num))) (anchored 1)) -) -(rule $Number (many) (ConstantFn (call @constant (number 10 infty))) (anchored 1)) -(for @property (col row height) - (rule $Number (@property) (ConstantFn (call @get (string @property))) (anchored 1)) -) -(for @op (+ - %) -(rule $NumberSeq ($NumberSeq @op $Number) (lambda n1 (lambda n2 -(call @arith (string @op) (var n1) (var n2)))) (anchored 1)) -) -(rule $Number ([ $NumberSeq ]) (IdentityFn) (anchored 1)) -(rule $NumberSeq ( $Number ) (IdentityFn) (anchored 1)) -(for @rel (> >= = < <=) -(rule $Cond ($NumberSeq @rel $NumberSeq) (lambda n1 (lambda n2 -(call @compare (var n1) (string @rel) (var n2)))) (anchored 1)) -) - -########### context stuff -# relative stuff -(rule $Cond (argmin \( $CondSeq , $NumberSeq \) ) (lambda c (lambda n (call @argmin (var c) (var n))) (anchored 1))) -(rule $Cond (argmax \( $CondSeq , $NumberSeq \) ) (lambda c (lambda n (call @argmax (var c) (var n))) (anchored 1))) - -(rule $Cond (inside $CondSeq ) (lambda c (call @rect (var c))) (anchored 1)) -(rule $Cond (smallest $NumberSeq in $CondSeq ) (lambda n (lambda c (call @argmin (var c) (var n)))) (anchored 1)) -(rule $Cond (largest $NumberSeq in $CondSeq ) (lambda n (lambda c (call @argmax (var c) (var n)))) (anchored 1)) -(rule $Cond (smallest $NumberSeq ) (lambda n (call @argmin (var n))) (anchored 1)) -(rule $Cond (largest $NumberSeq ) (lambda n (call @argmax (var n))) (anchored 1)) - - -(rule $Cond (shift [ $CondSeq , $NumberSeq , $NumberSeq ] ) -(lambda c (lambda n1 (lambda n2 - (call @shift (var c) (var n1) (var n2))))) (anchored 1)) -(rule $Cond (shift [ $NumberSeq , $NumberSeq ] ) - (lambda n1 (lambda n2 - (call @shift (var n1) (var n2)))) (anchored 1)) - -(rule $Cond ( leftof $CondSeq ) -(lambda c (call @shift (var c) (call @constant (number 0)) (call @constant (number 1)))) (anchored 1)) -(rule $Cond ( rightof $CondSeq ) -(lambda c (call @shift (var c) (call @constant (number 0)) (call @constant (number -1)))) (anchored 1)) -(rule $Cond ( frontof $CondSeq ) -(lambda c (call @shift (var c) (call @constant (number -1)) (call @constant (number 0)))) (anchored 1)) -(rule $Cond ( backof $CondSeq ) -(lambda c (call @shift (var c) (call @constant (number 1)) (call @constant (number 0 )))) (anchored 1)) - -(rule $Cond ( left ) - (ConstantFn (call @shift (call @constant (number 0)) (call @constant (number 1)))) (anchored 1)) -(rule $Cond ( right ) - (ConstantFn (call @shift (call @constant (number 0)) (call @constant (number -1)))) (anchored 1)) -(rule $Cond ( front ) - (ConstantFn (call @shift (call @constant (number -1)) (call @constant (number 0)))) (anchored 1)) -(rule $Cond ( back ) - (ConstantFn (call @shift (call @constant (number 1)) (call @constant (number 0 )))) (anchored 1)) - - -(rule $Color (red) (ConstantFn (number 0 COLOR)) (anchored 1)) -(rule $Color (orange) (ConstantFn (number 1 COLOR)) (anchored 1)) -(rule $Color (yellow) (ConstantFn (number 2 COLOR)) (anchored 1)) -(rule $Color (green) (ConstantFn (number 3 COLOR)) (anchored 1)) -(rule $Color (blue) (ConstantFn (number 4 COLOR)) (anchored 1)) -(rule $Color (purple) (ConstantFn (number 5 COLOR)) (anchored 1)) -(rule $Color (brown) (ConstantFn (number 6 COLOR)) (anchored 1)) -(rule $Color (cyan) (ConstantFn (number 7 COLOR)) (anchored 1)) -(rule $Color (trans) (ConstantFn (number 9 COLOR)) (anchored 1)) -(rule $Color (glass) (ConstantFn (number 9 COLOR)) (anchored 1)) -(rule $Color (mark) (ConstantFn (number 10 COLOR)) (anchored 1)) - -# keywords used for annotations -(rule $Keyword (add) (ConstantFn (string keyword))) -(rule $Keyword (remove) (ConstantFn (string keyword))) -(rule $Keyword (then) (ConstantFn (string keyword))) -(rule $Keyword (if) (ConstantFn (string keyword))) -(rule $Keyword (repeat) (ConstantFn (string keyword))) -(rule $Keyword (time) (ConstantFn (string keyword))) -(rule $Keyword (times) (ConstantFn (string keyword))) -(rule $Keyword (col) (ConstantFn (string keyword))) -(rule $Keyword (row) (ConstantFn (string keyword))) -(rule $Keyword (height) (ConstantFn (string keyword))) -(rule $Keyword (has) (ConstantFn (string keyword))) -(rule $Keyword (top) (ConstantFn (string keyword))) -(rule $Keyword (leftof) (ConstantFn (string keyword))) -(rule $Keyword (rightof) (ConstantFn (string keyword))) -(rule $Keyword (frontof) (ConstantFn (string keyword))) -(rule $Keyword (backof) (ConstantFn (string keyword))) -(rule $Keyword (of) (ConstantFn (string keyword))) -(rule $Keyword (and) (ConstantFn (string keyword))) -(rule $Keyword (or) (ConstantFn (string keyword))) -(rule $Keyword (+) (ConstantFn (string keyword))) -(rule $Keyword (-) (ConstantFn (string keyword))) -(rule $Keyword (%) (ConstantFn (string keyword))) -(rule $Keyword (=) (ConstantFn (string keyword))) -(rule $Keyword (<) (ConstantFn (string keyword))) -(rule $Keyword (>) (ConstantFn (string keyword))) -(rule $Keyword (!=) (ConstantFn (string keyword))) -(rule $Keyword (largest) (ConstantFn (string keyword))) -(rule $Keyword (smallest) (ConstantFn (string keyword))) -(rule $Keyword (%) (ConstantFn (string keyword))) -(rule $Keyword (inside) (ConstantFn (string keyword))) -(rule $Keyword (mark) (ConstantFn (string keyword))) -(rule $Keyword (unmark) (ConstantFn (string keyword))) -(rule $Keyword (marked) (ConstantFn (string keyword))) - -# hard code tutorial rules, so they can always be accepted -(rule $Action ($Action except the border) (lambda $Action0 (call iff (call logic (string and) (call logic (string and) (call logic (string and) (call filter (call get (string row)) (string >) (number 1 count)) (call filter (call get (string col)) (string >) (number 1 count))) (call filter (call get (string row)) (string <) (number 8 count))) (call filter (call get (string col)) (string <) (number 8 count))) (var $Action0)))) \ No newline at end of file diff --git a/shrdlurn/flatworld.grammar b/shrdlurn/flatworld.grammar index 00cbfeb..6fede38 100644 --- a/shrdlurn/flatworld.grammar +++ b/shrdlurn/flatworld.grammar @@ -30,8 +30,6 @@ (rule $Action (remove) (ConstantFn (: @remove)) (anchored 1)) (rule $Action (remove $Sets) (lambda s (: @remove (var s))) (anchored 1)) -# (rule $Action (remove $Sets) (lambda s (:for (var s) (: @remove))) (anchored 1)) - ############### unary sets (rule $Set (selected) this (anchored 1)) (rule $Set (previous) prev (anchored 1)) diff --git a/shrdlurn/magnetic.grammar b/shrdlurn/magnetic.grammar deleted file mode 100644 index a23b8f3..0000000 --- a/shrdlurn/magnetic.grammar +++ /dev/null @@ -1,160 +0,0 @@ -# contextful top level functions -# command: -(def @root context:root) - -# basic actions -(def @add add) -(def @remove remove) -(def @move move) -(def @name name) - -# action combinators -(def @seq seq) -(def @repeat repeat) -(def @scope scope) - -# binary set operations -(def @setop setop) -(def @filter filter) - -# get property -(def @get get) -# properties -(def @equals equals) - -# numbers on cubes -(def @compare compare) -(def @constant constant) -(def @arith arith) - -# higher order functions -(def @argmin argmin) -(def @argmax argmax) - -# select -(def @name name) -(def @named named) - -# special values -(def @sets sets) # constant sets -(def @setf setf) # set functions -(def @worlds worlds) # set functions -# sugar -(def @selected (call @filter (call @named (string s)))) - -# typed lambdas -# Action a, CubesSet s, CubePredicate p, CubeNumber n, CubeProperty r, Direction d, Color c $CubeNumberProp q - -# This grammar should have Rule.defaultIsFloating false -# (set JavaExecutor.printStackTrace true) -# utilities -(rule $ROOT (_worlds) (ConstantFn (call @worlds (string simple))) (anchored 1)) -(rule $ROOT (_contextcmd) (ConstantFn (string "(context (graph NaiveKnowledgeGraph ((string [[1,3,1,\"Green\",[]],[2,2,1,\"Blue\",[]],[1,3,2,\"Red\",[]]]) (name b) (name c))))")) (anchored 1)) - - -####### Start of the actual grammar -(rule $ROOT ($ActionSeq) (lambda a (call @root (var a))) (anchored 1)) # process for better -(rule $Action ({ $ActionSeq }) (lambda a (call @scope (var a))) (anchored 1)) # scope variables inside this - -# control flow -(rule $ActionSeq ($ActionSeq ; $Action) (lambda a1 (lambda a2 (call @seq (var a1) (var a2)))) (anchored 1)) -(rule $Action (repeat $NumberSeq [ $ActionSeq ] ) (lambda n (lambda a (call @repeat (var n) (var a)))) (anchored 1)) - -(rule $ActionSeq ($Action) (IdentityFn) (anchored 1)) -(rule $Action ([ $ActionSeq ]) (IdentityFn) (anchored 1)) - -# basic actions -(rule $Action (remove $CubesSeq) (lambda s (call @remove (var s))) (anchored 1)) - -# implicit selection -# (rule $Action (add $Color $Direction) (lambda c (lambda d (call @add (var c) (var d) (@selected))) (anchored 1))) -# (rule $Action (move $Direction) (lambda d (call @move (var d) (@selected))) (anchored 1)) - -(rule $Action (add $Color $CubesSeq) (lambda c (lambda s (call @add (var c) (string top) (var s)))) (anchored 1)) -(rule $Action (add $Color $Direction $CubesSeq) (lambda c (lambda d (lambda s (call @add (var c) (var d) (var s))))) (anchored 1)) -(rule $Action (move $CubesSeq $Direction) (lambda s (lambda d (call @move (var d) (var s)))) (anchored 1)) - -(rule $Action (select $CubesSeq) (lambda s (call @name (var s) (string s))) (anchored 1)) - - -# names -(for @varname (x y z) -(rule $Action ( let @varname = $CubesSeq ) (lambda cs (call @name (var cs) (string @varname))) (anchored 1)) -) - -(for @varname (x y z) -(rule $Cubes ( cubes @varname ) (ConstantFn (call @named (call @sets (string all)) (string @varname))) (anchored 1)) -) - -(rule $Cubes (selected) (ConstantFn (call @named (call @sets (string all)) (string s))) (anchored 1)) - - -########### basic sets -(rule $Cubes (cubes) (ConstantFn (call @sets (string all))) (anchored 1)) -(rule $Cubes (all cubes) (ConstantFn (call @sets (string all))) (anchored 1)) - - -########### basic set operations -# just use or and filter, which does and - -(for @op (or and sub) -(rule $CubesSeq ($CubesSeq @op $Cubes) (lambda s1 (lambda s2 - (call @setop (string @op) (var s1) (var s2)))) (anchored 1)) -) - -(rule $CubesSeq ($Cubes) (IdentityFn) (anchored 1)) -(rule $Cubes ([ $CubesSeq ]) (IdentityFn) (anchored 1)) - -########### unary cube operations, filtering with a predicate -(rule $Cubes ($CubesSeq where $CubePred) (lambda s (lambda p - (call @filter (var s) (var p)))) (anchored 1)) - -(rule $Cubes ($CubesSeq where $CubeNumberProp is largest) (lambda s (lambda q (call @argmax (var s) (var q)))) (anchored 1)) -(rule $Cubes ($CubesSeq where $CubeNumberProp is smallest) (lambda s (lambda q (call @argmin (var s) (var q)))) (anchored 1)) - -# generating cube predicates, note there is no logical binaries -(for @rel (> >= = < <= ==) -(rule $CubePred ($NumberSeq @rel $NumberSeq) (lambda n1 (lambda n2 -(call @compare (string @rel) (var n1) (var n2)))) (anchored 1)) -) -(rule $CubePred ($CubeProp = $CubePropVal) (lambda p (lambda s -(call @equals (var p) (var s)))) (anchored 1)) -(for @property (color name) - (rule $CubeProp (@property) (ConstantFn (call @get (string @property))) (anchored 1)) -) -(rule $CubePropVal ($Color) (IdentityFn) (anchored 1)) - -########### arithmetics and etc -(for @num (0 1 2 3 4 5 6 7 8 9) -(rule $Number (@num) (ConstantFn (number @num)) (anchored 1)) -) -(rule $Number (many) (ConstantFn (number 10 infty)) (anchored 1)) - -(for @property (col row height color name) - (rule $Number (@property) (ConstantFn (call @get (string @property))) (anchored 1)) -) - -(for @op (+ - %) -(rule $NumberSeq ($NumberSeq @op $Number) (lambda n1 (lambda n2 -(call @arith (string @op) (var n1) (var n2)))) (anchored 1)) -) -(rule $Number ([ $NumberSeq ]) (IdentityFn) (anchored 1)) -(rule $NumberSeq ( $Number ) (IdentityFn) (anchored 1)) - -(for @dir (top bot left right front back) -(rule $Direction (@dir) (ConstantFn (string @dir)) (anchored 1)) -) - -####### Constants -(rule $Color (red) (ConstantFn (string red)) (anchored 1)) -(rule $Color (orange) (ConstantFn (string orange)) (anchored 1)) -(rule $Color (yellow) (ConstantFn (string yellow)) (anchored 1)) -(rule $Color (green) (ConstantFn (string green)) (anchored 1)) -(rule $Color (blue) (ConstantFn (string blue)) (anchored 1)) -(rule $Color (purple) (ConstantFn (string purple)) (anchored 1)) -(rule $Color (brown) (ConstantFn (string brown)) (anchored 1)) -(rule $Color (cyan) (ConstantFn (string cyan)) (anchored 1)) -(rule $Color (trans) (ConstantFn (string trans)) (anchored 1)) - - - diff --git a/shrdlurn/objects.grammar b/shrdlurn/objects.grammar deleted file mode 120000 index 04e5556..0000000 --- a/shrdlurn/objects.grammar +++ /dev/null @@ -1 +0,0 @@ -../shrdlurn_output/grammar/objects.grammar \ No newline at end of file diff --git a/shrdlurn/richer.grammar b/shrdlurn/richer.grammar deleted file mode 100644 index 98d2dfe..0000000 --- a/shrdlurn/richer.grammar +++ /dev/null @@ -1,107 +0,0 @@ -# contextful top level functions -(def @rootFn context:root) -(def @iff iff) -# actions -(def @add add) -(def @remove remove) - -# action combiners -(def @serial seq) -(def @repeat repeat) - -# filters and their combiners -(def @filter filter) -(def @topColor top) -(def @contains has) -(def @not not) -(def @combine logic) - -(def @get get) - -# This grammar should have Rule.defaultIsFloating false -# TO TEST -# (context (graph NaiveKnowledgeGraph ((string [[1,2,3,4],[4,3,1],[2,2,1],[2,2,3],[3],[]]) (name b) (name c)))) -# (set JavaExecutor.printStackTrace true) -####### Start of the actual grammar - -(rule $ROOT ($ActionSeq) (lambda a (call @rootFn (var a))) (anchored 1)) # process for better -(rule $Action ($ActionSeq if $CondSeq) (lambda a (lambda c (call @iff (var c) (var a)))) (anchored 1)) - -# combo actions -(rule $ActionSeq ($ActionSeq then $Action) (lambda a1 (lambda a2 (call @serial (var a1) (var a2)))) (anchored 1)) -(rule $Action (repeat $ActionSeq $NUM time) (lambda a (lambda n (call @repeat (var n) (var a)))) (anchored 1)) -(rule $Action (repeat $ActionSeq $NUM times) (lambda a (lambda n (call @repeat (var n) (var a)))) (anchored 1)) - -(rule $ActionSeq ($Action) (IdentityFn) (anchored 1)) -(rule $Action ([ $ActionSeq ]) (IdentityFn) (anchored 1)) - -# combo conditions -(for @op (or and) -(rule $CondSeq ($CondSeq @op $Cond) (lambda c1 (lambda c2 - (call @combine (string @op) (var c1) (var c2)))) (anchored 1)) -) -(rule $Cond (not $CondSeq) (lambda c (call @not (var c))) (anchored 1)) - -(rule $CondSeq ($Cond) (IdentityFn) (anchored 1)) -(rule $Cond ([ $CondSeq ]) (IdentityFn) (anchored 1)) - -# relative stuff -# (rule $CondSeq (left $NUM of $CondSeq) (IdentityFn) (anchored 1)) - -# could remove some of these -(for @rel (> >= = < <= %2= %3= %4=) -(rule $Cond ($Getter @rel $NUM) (lambda g (lambda n -(call @filter (var g) (string @rel) (var n)))) (anchored 1)) -) - -(rule $Action (remove) (ConstantFn (call @remove)) (anchored 1)) -(rule $Action (add $Color) (lambda t (call @add (var t))) (anchored 1)) - -(for @property (col row height) - (rule $Getter (@property) (ConstantFn (call @get (string @property))) (anchored 1)) -) - -# basic conditions -(rule $Cond (has $Color) (lambda t - (call @contains (var t))) (anchored 1)) -(rule $Cond (ha $Color) (lambda t - (call @contains (var t))) (anchored 1)) -(rule $Cond (top $Color) (lambda t - (call @topColor (var t))) (anchored 1)) - -(for @num (0 1 2 3 4 5 6 7 8 9 10) -(rule $NUM (@num) (ConstantFn (number @num count)) (anchored 1)) -) -(rule $NUM (many) (ConstantFn (number 10 infinity)) (anchored 1)) - -(rule $Color (cyan) (ConstantFn (number 0 COLOR)) (anchored 1)) -(rule $Color (brown) (ConstantFn (number 1 COLOR)) (anchored 1)) -(rule $Color (red) (ConstantFn (number 2 COLOR)) (anchored 1)) -(rule $Color (orange) (ConstantFn (number 3 COLOR)) (anchored 1)) -(rule $Color (yellow) (ConstantFn (number 4 COLOR)) (anchored 1)) - -# hard code tutorial rules, so they can always be accepted -(rule $Action ($Action except the border) (cubeworld.ApplyFn (lambda $Action0 (call iff (call logic (string and) (call logic (string and) (call logic (string and) (call filter (call get (string row)) (string >) (number 1 count)) (call filter (call get (string col)) (string >) (number 1 count))) (call filter (call get (string row)) (string <) (number 8 count))) (call filter (call get (string col)) (string <) (number 8 count))) (var $Action0)))) (anchored 1)) - -(rule $Action (add $NUM $Color if $CondSeq) (cubeworld.ApplyFn (lambda $NUM0 (lambda $Color1 (lambda $CondSeq2 (call iff (var $CondSeq2) (call repeat (var $NUM0) (call add (var $Color1)))))))) (anchored 1)) - -# keywords used for annotations -(rule $Keyword (add) (ConstantFn (string keyword))) -(rule $Keyword (remove) (ConstantFn (string keyword))) -(rule $Keyword (then) (ConstantFn (string keyword))) -(rule $Keyword (if) (ConstantFn (string keyword))) -(rule $Keyword (repeat) (ConstantFn (string keyword))) -(rule $Keyword (time) (ConstantFn (string keyword))) -(rule $Keyword (times) (ConstantFn (string keyword))) -(rule $Keyword (col) (ConstantFn (string keyword))) -(rule $Keyword (row) (ConstantFn (string keyword))) -(rule $Keyword (height) (ConstantFn (string keyword))) -(rule $Keyword (has) (ConstantFn (string keyword))) -(rule $Keyword (top) (ConstantFn (string keyword))) -(rule $Keyword (left) (ConstantFn (string keyword))) -(rule $Keyword (right) (ConstantFn (string keyword))) -(rule $Keyword (front) (ConstantFn (string keyword))) -(rule $Keyword (behind) (ConstantFn (string keyword))) -(rule $Keyword (of) (ConstantFn (string keyword))) -(rule $Keyword (and) (ConstantFn (string keyword))) -(rule $Keyword (or) (ConstantFn (string keyword))) diff --git a/shrdlurn/runFloat b/shrdlurn/runFloat deleted file mode 100755 index 3ccc0f4..0000000 --- a/shrdlurn/runFloat +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh -SEMPATH=. -GRAMMAR=./shrdlurn/stacks.grammar -mkdir ./shrdlurn/logs -mkdir ./shrdlurn/examples -cd $SEMPATH - -LEARNOPTS="-Parser FloatingParser -FloatingParser.maxDepth 8 -FloatingParser.useSizeInsteadOfDepth true -Params.l1Reg lazy -Params.l1RegCoeff 0.001 -Parser.beamSize 100 -StacksWorldFeatureComputer.ngramN 2 -Params.initStepSize 0.1 -Params.adaptiveStepSize true -FeatureExtractor.featureDomains tree" - -SESSIONSTUFF="-Master.onlineLearnExamples false -Master.independentSessions true" - -PRAG="-Master.bePragmatic true -PragmaticListener.addModelProb true -PragmaticListener.smoothAlpha 1.0 -PragmaticListener.uniformWeight 0.001 -PragmaticListener.lambda 3.0 -Learner.onlineEvaluation true -Derivation.comparePragmatically true" - -OPTIONS="-Dmodules=core,cubeworld -cp libsempre/*:lib/* -ea edu.stanford.nlp.sempre.Main -execDir _OUTPATH_/runFloat -overwriteExecDir -addToView 0 -Main.interactive -JavaExecutor.convertNumberValues false -FeatureExtractor.featureComputers cubeworld.StacksWorldFeatureComputer -Params.initWeightsRandomly false -Grammar.inPaths $GRAMMAR -Parser.pruneErrorValues true -JoinFn.typeInference true -LanguageAnalyzer.lowerCaseTokens true" - -# features are tree, heads, ngram -DEBUG="-Xdebug -Xrunjdwp:server=y,transport=dt_socket,suspend=n,address=8898" - -if [ "$HOSTNAME" = "jonsson.stanford.edu" ]; then - echo "running on jonsson" - TRAIN_OUTS_SERVER="-Master.newExamplesPath /afs/cs.stanford.edu/u/sidaw/git/examples/ -Master.logPath /afs/cs.stanford.edu/u/sidaw/git/logs/ -server true" - echo rlwrap java $OPTIONS $LEARNOPTS $SESSIONSTUFF $TRAIN_OUTS_SERVER -Server.numThreads 16 "$@" - rlwrap java $OPTIONS $LEARNOPTS $SESSIONSTUFF $TRAIN_OUTS_SERVER -Server.numThreads 16 "$@" -else - echo "not running on jonsson" - TRAIN_OUTS_LOCAL="-Master.newExamplesPath ./shrdlurn/examples/ -Master.logPath ./shrdlurn/logs/ -server true" - rlwrap java $OPTIONS $LEARNOPTS $TRAIN_OUTS_LOCAL $SESSIONSTUFF $PRAG -Server.numThreads 1 "$@" -fi diff --git a/shrdlurn/runRich b/shrdlurn/runRich deleted file mode 100755 index 27956a0..0000000 --- a/shrdlurn/runRich +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/sh -# SEMPATH=../semparse -GRAMMAR=./shrdlurn/evenricher.grammar -EXAMPLEPATH=~/shrdlurn/examples/ -NEWGRAMMARPATH=~/shrdlurn/grammar/ -LOGPATH=~/shrdlurn/logs/ -# cd $SEMPATH -PARSEROPTS='-Parser.pruneErrorValues true -Parser BeamParser -Parser.trackedCats $Color $Number $NumberSeq $Cond $CondSeq $Action $ActionSeq -FloatingParser.defaultIsFloating true' - -# -FloatingParser.maxDepth 12 -FloatingParser.useSizeInsteadOfDepth true -FloatingParser.defaultIsFloating true -FloatingParser.useAnchorsOnce true" -LEARNOPTS="-Params.l1Reg lazy -Params.l1RegCoeff 0.001 -Parser.beamSize 50 -Params.initStepSize 0.1 -Params.adaptiveStepSize true -ParserState.customExpectedCounts UNIFORM" -FEATOPTS='-FeatureExtractor.featureComputers interactive.blocks.RicherStacksWorldFeatureComputer -FeatureExtractor.featureDomains rule subtree --RicherStacksWorldFeatureComputer.ngramN 2 -RicherStacksWorldFeatureComputer.parameterizeCats $Number $Color' - -OPTIONS="-Dmodules=core,interactive -cp libsempre/*:lib/* -ea edu.stanford.nlp.sempre.Main --execDir _OUTPATH_/runRichmoreparams -overwriteExecDir -addToView 0 --Main.interactive --JavaExecutor.convertNumberValues false --JavaExecutor.classPathPrefix edu.stanford.nlp.sempre.interactive.blocks.RicherStacksWorld --Params.initWeightsRandomly false --Grammar.inPaths $GRAMMAR --Grammar.binarizeRules false --Grammar.useApplyFn interactive.ApplyFn --LanguageAnalyzer.lowerCaseTokens true -LanguageAnalyzer.useLemmaTokens false" - -# features are tree, heads, ngram -DEBUG="-Xdebug -Xrunjdwp:server=y,transport=dt_socket,suspend=n,address=8898" -TRAIN_OUTS_LOCAL="-Master.newExamplesPath $EXAMPLEPATH -Master.logPath $LOGPATH -Master.newGrammarPath $NEWGRAMMARPATH" -INDEP_SESSIONS="-Master.onlineLearnExamples false -Master.independentSessions true" -SESSIONS="-Master.onlineLearnExamples true -Master.independentSessions false" - -TRAIN_IN="-Dataset.inPaths def:./shrdlurn/sidaw.lisp -Learner.maxTrainIters 1" - - -echo "not running on jonsson" -rlwrap java $OPTIONS $PARSEROPTS $LEARNOPTS $FEATOPTS $SESSIONS $TRAIN_OUTS_LOCAL $TRAIN_IN -server true -Server.numThreads 8 $@ diff --git a/shrdlurn/sidaw.lisp b/shrdlurn/sidaw.lisp deleted file mode 100644 index 67252a3..0000000 --- a/shrdlurn/sidaw.lisp +++ /dev/null @@ -1,7 +0,0 @@ -(example - (id session:sidaw) - (timeStamp 2016-05-10T11:09:58.605) - (NBestInd 5) - (utterance "give me new world") - (definition "_worlds") -) diff --git a/shrdlurn/stacks.grammar b/shrdlurn/stacks.grammar deleted file mode 100644 index 7fd3725..0000000 --- a/shrdlurn/stacks.grammar +++ /dev/null @@ -1,72 +0,0 @@ -# actions, all contexful -(def @removeAll context:edu.stanford.nlp.sempre.cubeworld.StacksWorld.removeAll) -(def @removeTop context:edu.stanford.nlp.sempre.cubeworld.StacksWorld.removeTop) -(def @stackOnTop context:edu.stanford.nlp.sempre.cubeworld.StacksWorld.stackOnTop) -(def @doubleTop context:edu.stanford.nlp.sempre.cubeworld.StacksWorld.doubleTop) - -# uncontextful binary set ops -(def @setUnion edu.stanford.nlp.sempre.cubeworld.StacksWorld.setUnion) -(def @setIntersection edu.stanford.nlp.sempre.cubeworld.StacksWorld.setIntersection) -(def @setDifference edu.stanford.nlp.sempre.cubeworld.StacksWorld.setDifference) - -# uncontextful unary set ops -(def @leftMost1 edu.stanford.nlp.sempre.cubeworld.StacksWorld.leftMost1) -(def @rightMost1 edu.stanford.nlp.sempre.cubeworld.StacksWorld.rightMost1) -(def @leftMost edu.stanford.nlp.sempre.cubeworld.StacksWorld.leftMost) -(def @rightMost edu.stanford.nlp.sempre.cubeworld.StacksWorld.rightMost) -(def @complement edu.stanford.nlp.sempre.cubeworld.StacksWorld.complement) - -# contextful first level primitives -(def @getColor context:edu.stanford.nlp.sempre.cubeworld.StacksWorld.getColor) -(def @getTopColor context:edu.stanford.nlp.sempre.cubeworld.StacksWorld.getTopColor) -(def @getAll context:edu.stanford.nlp.sempre.cubeworld.StacksWorld.getAll) -(def @getNonEmpty context:edu.stanford.nlp.sempre.cubeworld.StacksWorld.getNonEmpty) -(def @getGEQ context:edu.stanford.nlp.sempre.cubeworld.StacksWorld.getGEQ) - -# final ops -(def @wallToString edu.stanford.nlp.sempre.cubeworld.StacksWorld.wallToString) -####### Start of the actual grammar -# generates (NumColors+1) * (NumSets) = 125, 180 -# NumSets = (NumColors+1)*(1+2+2) = 25, 30 - -(rule $ROOT ($Action) (lambda a (call @wallToString (var a)) )) # excecute some action -(rule $Action ( $Set3 ) (lambda s (call @removeTop (var s) ))) -(rule $Action ( $Set3 $Color ) - (lambda s (lambda c (call @stackOnTop (var s) (var c))))) -(rule $Set3 ($Set2) (IdentityFn)) -(rule $Set3 ($Set1) (IdentityFn)) -(rule $Set3 ($Set) (IdentityFn)) -(for @x (0 1 2 3) - (rule $Color (tok) (ConstantFn (number @x COLOR))) -) -(for @x (1) - (rule $Count (tok) (ConstantFn (number @x COUNT))) -) -# (rule $Set (tok) (ConstantFn (call @getAll))) -(rule $Set (tok) (ConstantFn (call @getNonEmpty))) - -# (rule $Set ($Color) (lambda c (call @getColor (var c) ))) -(rule $Set ($Color) (lambda c (call @getTopColor (var c) ))) - -(rule $Set1 ($Set) (lambda s (call @leftMost1 (var s) ))) -(rule $Set1 ($Set) (lambda s (call @rightMost1 (var s) ))) - -(rule $Set2 ($Set) (lambda s (call @complement (var s) ))) -(rule $Set2 ($Set1) (lambda s (call @complement (var s) ))) - -#(rule $Set1 ($Set) (lambda s (call @leftMost (var s) (number 1 COUNT)))) -#(rule $Set1 ($Set) (lambda s (call @rightMost (var s) (number 1 COUNT)))) -#(rule $Set ($Set $Count) (lambda s (lambda n (call @leftMost (var s) (var n) )))) -#(rule $Set ($Set $Count) (lambda s (lambda n (call @rightMost (var s) (var n))))) -#(rule $Set ($Count) (lambda h (call @getGEQ (var h)))) - -# (rule $Set2 ($Set $Set) (lambda s1 (lambda s2 -# (call @setIntersection (var s1) (var s2))))) -# (rule $Set2 ($Set $Set) (lambda s1 (lambda s2 -# (call @setUnion (var s1) (var s2))))) -# (rule $Set2 ($Set $Set) (lambda s1 (lambda s2 -# (call @setDifference (var s1) (var s2))))) - -(when usenumbers -(rule $Count ($TOKEN) (NumberFn) (anchored 1)) -) \ No newline at end of file diff --git a/src/edu/stanford/nlp/sempre/Formulas.java b/src/edu/stanford/nlp/sempre/Formulas.java index d4d40c6..bcf3fff 100644 --- a/src/edu/stanford/nlp/sempre/Formulas.java +++ b/src/edu/stanford/nlp/sempre/Formulas.java @@ -3,7 +3,7 @@ package edu.stanford.nlp.sempre; import com.google.common.base.Function; import com.google.common.collect.Lists; -import edu.stanford.nlp.sempre.interactive.actions.ActionFormula; +import edu.stanford.nlp.sempre.interactive.ActionFormula; import fig.basic.LispTree; import java.util.HashSet; diff --git a/src/edu/stanford/nlp/sempre/ILUtils.java b/src/edu/stanford/nlp/sempre/ILUtils.java index 8c91a48..6bb5d2c 100644 --- a/src/edu/stanford/nlp/sempre/ILUtils.java +++ b/src/edu/stanford/nlp/sempre/ILUtils.java @@ -19,12 +19,12 @@ import org.testng.collections.Lists; import com.google.common.collect.ImmutableList; import edu.stanford.nlp.sempre.Master.Options; +import edu.stanford.nlp.sempre.interactive.ActionFormula; import edu.stanford.nlp.sempre.interactive.BlockFn; import edu.stanford.nlp.sempre.interactive.DefinitionAligner; +import edu.stanford.nlp.sempre.interactive.FlatWorld; import edu.stanford.nlp.sempre.interactive.DefinitionAligner.Match; import edu.stanford.nlp.sempre.interactive.GrammarInducer; -import edu.stanford.nlp.sempre.interactive.actions.ActionFormula; -import edu.stanford.nlp.sempre.interactive.actions.FlatWorld; import fig.basic.IOUtils; import fig.basic.LispTree; import fig.basic.LogInfo; @@ -41,10 +41,13 @@ public final class ILUtils { public String JSONLogPath = "./int-output/json/"; @Option(gloss = "path to store new command logs") - public String newInteractiveCommandLog; + public String commandLog; @Option(gloss = "read and run these commands on startup") - public String interactiveCommandLog; + public List commandInputs; + + @Option(gloss = "use the best formula when no match or not provided") + public boolean useBestFormula = false; } public static Options opts = new Options(); private ILUtils() { } @@ -52,9 +55,9 @@ public final class ILUtils { // dont spam my log when reading things in the beginning... public static boolean fakeLog = false; private static Consumer writer(String path) { - if (fakeLog) + if (fakeLog) { return s -> LogInfo.log(s); - else + } else return s -> { PrintWriter out = IOUtils.openOutAppendHard(path); out.write(s); @@ -114,7 +117,7 @@ public final class ILUtils { if (!found && !formula.equals("?")) LogInfo.errors("matching formula not found: %s", formula); // just making testing easier, use top derivation when we formula is not given - if (!found && (formula.equals("?") || formula==null) && ex.predDerivations.size() > 0) + if (!found && ex.predDerivations.size() > 0 && (formula.equals("?") || formula==null || opts.useBestFormula) ) allDerivs.add(stripDerivation(ex.predDerivations.get(0))); } return allDerivs; @@ -220,9 +223,8 @@ public final class ILUtils { } catch (Exception e) { jsonMap.put("exception", e.toString()); } finally { - String jsonStr = Json.prettyWriteValueAsStringHard(jsonMap) + "\n"; - writer(Paths.get(ILUtils.opts.JSONLogPath, sessionId + ".json").toString()).accept(jsonStr); + writer(Paths.get(ILUtils.opts.JSONLogPath, sessionId + ".ex.json").toString()).accept(jsonStr); } } @@ -232,10 +234,10 @@ public final class ILUtils { jsonMap.put("id", sessionId); jsonMap.put("log", log); - writer(Paths.get(ILUtils.opts.JSONLogPath, sessionId + ".log").toString()) + writer(Paths.get(ILUtils.opts.JSONLogPath, sessionId + ".log.json").toString()) .accept(Json.writeValueAsStringHard(jsonMap) + "\n"); - writer(Paths.get(ILUtils.opts.newInteractiveCommandLog).toString()) + writer(Paths.get(ILUtils.opts.commandLog).toString()) .accept(Json.writeValueAsStringHard(jsonMap) + "\n"); } diff --git a/src/edu/stanford/nlp/sempre/Master.java b/src/edu/stanford/nlp/sempre/Master.java index 76e3c5c..8d5524e 100644 --- a/src/edu/stanford/nlp/sempre/Master.java +++ b/src/edu/stanford/nlp/sempre/Master.java @@ -111,19 +111,32 @@ public class Master { this.learner = new Learner(builder.parser, builder.params, new Dataset()); // run all interactive commands logged - if (!Strings.isNullOrEmpty(ILUtils.opts.interactiveCommandLog)) { + for (String fileName : ILUtils.opts.commandInputs) { ILUtils.fakeLog = true; - Session trainer = getSession("trainer"); - try (Stream stream = Files.lines(Paths.get(ILUtils.opts.interactiveCommandLog))) { - stream.forEach(l -> { - Map json = Json.readMapHard(l); - String command = json.get("log").toString(); - handleCommand(trainer, command, new Response()); - }); + boolean useBestFormula = ILUtils.opts.useBestFormula; + ILUtils.opts.useBestFormula = true; + + try (Stream stream = Files.lines(Paths.get(fileName))) { + LogInfo.logs("Reading %s", fileName); + if (fileName.endsWith(".json")) { + stream.forEach(l -> { + Map json = Json.readMapHard(l); + String command = json.get("log").toString(); + Session trainer = getSession(json.get("id").toString()); + handleCommand(trainer, command, new Response()); + }); + } else if (fileName.endsWith(".lisp")) { + stream.forEach(l -> { + LogInfo.logs("processing %s", l); + Session trainer = getSession("default"); + handleCommand(trainer, l, new Response()); + }); + } } catch (IOException e) { e.printStackTrace(); } finally { ILUtils.fakeLog = false; + ILUtils.opts.useBestFormula = useBestFormula; } } } @@ -565,6 +578,10 @@ public class Master { } private void logJSON(String line, Response response, Session session) { + if (response == null || response.ex == null) { + LogInfo.logs("Line %s cannot be used", line); + return; + } if (response.ex.predDerivations != null && response.ex.predDerivations.size() > 0) { response.candidateIndex = 0; response.ex.setTargetFormula(response.ex.predDerivations.get(0).formula); diff --git a/src/edu/stanford/nlp/sempre/TypeInference.java b/src/edu/stanford/nlp/sempre/TypeInference.java index d120081..f1e5c1c 100644 --- a/src/edu/stanford/nlp/sempre/TypeInference.java +++ b/src/edu/stanford/nlp/sempre/TypeInference.java @@ -4,7 +4,7 @@ import fig.basic.*; import java.util.*; -import edu.stanford.nlp.sempre.interactive.actions.ActionFormula; +import edu.stanford.nlp.sempre.interactive.ActionFormula; /** * Performs type inference: given a Formula, return a SemType. diff --git a/src/edu/stanford/nlp/sempre/interactive/actions/ActionExecutor.java b/src/edu/stanford/nlp/sempre/interactive/ActionExecutor.java similarity index 98% rename from src/edu/stanford/nlp/sempre/interactive/actions/ActionExecutor.java rename to src/edu/stanford/nlp/sempre/interactive/ActionExecutor.java index b7c7d1e..5c89e2d 100644 --- a/src/edu/stanford/nlp/sempre/interactive/actions/ActionExecutor.java +++ b/src/edu/stanford/nlp/sempre/interactive/ActionExecutor.java @@ -1,22 +1,17 @@ -package edu.stanford.nlp.sempre.interactive.actions; +package edu.stanford.nlp.sempre.interactive; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.lang.reflect.Modifier; -import java.sql.Types; import java.util.Arrays; -import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Set; -import java.util.concurrent.CopyOnWriteArraySet; -import java.util.function.Function; import java.util.stream.Collectors; import com.google.common.collect.Lists; -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; import com.google.common.collect.ObjectArrays; +import com.google.common.collect.Sets; import edu.stanford.nlp.sempre.*; import fig.basic.LogInfo; diff --git a/src/edu/stanford/nlp/sempre/interactive/actions/ActionExecutorTest.java b/src/edu/stanford/nlp/sempre/interactive/ActionExecutorTest.java similarity index 99% rename from src/edu/stanford/nlp/sempre/interactive/actions/ActionExecutorTest.java rename to src/edu/stanford/nlp/sempre/interactive/ActionExecutorTest.java index 02ee44c..70722ad 100644 --- a/src/edu/stanford/nlp/sempre/interactive/actions/ActionExecutorTest.java +++ b/src/edu/stanford/nlp/sempre/interactive/ActionExecutorTest.java @@ -1,4 +1,4 @@ -package edu.stanford.nlp.sempre.interactive.actions; +package edu.stanford.nlp.sempre.interactive; import static org.testng.AssertJUnit.assertEquals; diff --git a/src/edu/stanford/nlp/sempre/interactive/actions/ActionFeatureComputer.java b/src/edu/stanford/nlp/sempre/interactive/ActionFeatureComputer.java similarity index 98% rename from src/edu/stanford/nlp/sempre/interactive/actions/ActionFeatureComputer.java rename to src/edu/stanford/nlp/sempre/interactive/ActionFeatureComputer.java index 10666ed..8dcf15b 100644 --- a/src/edu/stanford/nlp/sempre/interactive/actions/ActionFeatureComputer.java +++ b/src/edu/stanford/nlp/sempre/interactive/ActionFeatureComputer.java @@ -1,4 +1,4 @@ -package edu.stanford.nlp.sempre.interactive.actions; +package edu.stanford.nlp.sempre.interactive; import fig.basic.*; import java.util.*; diff --git a/src/edu/stanford/nlp/sempre/interactive/actions/ActionFormula.java b/src/edu/stanford/nlp/sempre/interactive/ActionFormula.java similarity index 98% rename from src/edu/stanford/nlp/sempre/interactive/actions/ActionFormula.java rename to src/edu/stanford/nlp/sempre/interactive/ActionFormula.java index 5aebbe9..0da53c0 100644 --- a/src/edu/stanford/nlp/sempre/interactive/actions/ActionFormula.java +++ b/src/edu/stanford/nlp/sempre/interactive/ActionFormula.java @@ -1,4 +1,4 @@ -package edu.stanford.nlp.sempre.interactive.actions; +package edu.stanford.nlp.sempre.interactive; import com.google.common.base.Function; import com.google.common.collect.Lists; diff --git a/src/edu/stanford/nlp/sempre/interactive/actions/ActionLanguageAnalyzer.java b/src/edu/stanford/nlp/sempre/interactive/ActionLanguageAnalyzer.java similarity index 98% rename from src/edu/stanford/nlp/sempre/interactive/actions/ActionLanguageAnalyzer.java rename to src/edu/stanford/nlp/sempre/interactive/ActionLanguageAnalyzer.java index 75fe4da..e9dafe1 100644 --- a/src/edu/stanford/nlp/sempre/interactive/actions/ActionLanguageAnalyzer.java +++ b/src/edu/stanford/nlp/sempre/interactive/ActionLanguageAnalyzer.java @@ -1,4 +1,4 @@ -package edu.stanford.nlp.sempre.interactive.actions; +package edu.stanford.nlp.sempre.interactive; import java.util.Arrays; diff --git a/src/edu/stanford/nlp/sempre/interactive/actions/BeamFloatingFeatureComputer.java b/src/edu/stanford/nlp/sempre/interactive/BeamFloatingFeatureComputer.java similarity index 99% rename from src/edu/stanford/nlp/sempre/interactive/actions/BeamFloatingFeatureComputer.java rename to src/edu/stanford/nlp/sempre/interactive/BeamFloatingFeatureComputer.java index 203dea3..7ee05c5 100644 --- a/src/edu/stanford/nlp/sempre/interactive/actions/BeamFloatingFeatureComputer.java +++ b/src/edu/stanford/nlp/sempre/interactive/BeamFloatingFeatureComputer.java @@ -1,4 +1,4 @@ -package edu.stanford.nlp.sempre.interactive.actions; +package edu.stanford.nlp.sempre.interactive; import fig.basic.*; import java.util.*; diff --git a/src/edu/stanford/nlp/sempre/interactive/actions/Block.java b/src/edu/stanford/nlp/sempre/interactive/Block.java similarity index 98% rename from src/edu/stanford/nlp/sempre/interactive/actions/Block.java rename to src/edu/stanford/nlp/sempre/interactive/Block.java index ef670c8..f803358 100644 --- a/src/edu/stanford/nlp/sempre/interactive/actions/Block.java +++ b/src/edu/stanford/nlp/sempre/interactive/Block.java @@ -1,4 +1,4 @@ -package edu.stanford.nlp.sempre.interactive.actions; +package edu.stanford.nlp.sempre.interactive; import java.util.HashSet; import java.util.List; import java.util.Set; diff --git a/src/edu/stanford/nlp/sempre/interactive/BlockFn.java b/src/edu/stanford/nlp/sempre/interactive/BlockFn.java index a2c0055..c0a43e5 100644 --- a/src/edu/stanford/nlp/sempre/interactive/BlockFn.java +++ b/src/edu/stanford/nlp/sempre/interactive/BlockFn.java @@ -9,7 +9,6 @@ import edu.stanford.nlp.sempre.Example; import edu.stanford.nlp.sempre.Formula; import edu.stanford.nlp.sempre.SemanticFn; import edu.stanford.nlp.sempre.SingleDerivationStream; -import edu.stanford.nlp.sempre.interactive.actions.ActionFormula; import fig.basic.LispTree; import fig.basic.Option; diff --git a/src/edu/stanford/nlp/sempre/interactive/actions/BlocksParsingTest.java b/src/edu/stanford/nlp/sempre/interactive/BlocksParsingTest.java similarity index 99% rename from src/edu/stanford/nlp/sempre/interactive/actions/BlocksParsingTest.java rename to src/edu/stanford/nlp/sempre/interactive/BlocksParsingTest.java index f862472..0f61f24 100644 --- a/src/edu/stanford/nlp/sempre/interactive/actions/BlocksParsingTest.java +++ b/src/edu/stanford/nlp/sempre/interactive/BlocksParsingTest.java @@ -1,4 +1,4 @@ -package edu.stanford.nlp.sempre.interactive.actions; +package edu.stanford.nlp.sempre.interactive; import static org.testng.AssertJUnit.assertEquals; diff --git a/src/edu/stanford/nlp/sempre/interactive/actions/BlocksWorld.java b/src/edu/stanford/nlp/sempre/interactive/BlocksWorld.java similarity index 99% rename from src/edu/stanford/nlp/sempre/interactive/actions/BlocksWorld.java rename to src/edu/stanford/nlp/sempre/interactive/BlocksWorld.java index 6fd59e5..3cc8bc2 100644 --- a/src/edu/stanford/nlp/sempre/interactive/actions/BlocksWorld.java +++ b/src/edu/stanford/nlp/sempre/interactive/BlocksWorld.java @@ -1,4 +1,4 @@ -package edu.stanford.nlp.sempre.interactive.actions; +package edu.stanford.nlp.sempre.interactive; import java.util.ArrayList; import java.util.Collection; diff --git a/src/edu/stanford/nlp/sempre/interactive/actions/FlatWorld.java b/src/edu/stanford/nlp/sempre/interactive/FlatWorld.java similarity index 97% rename from src/edu/stanford/nlp/sempre/interactive/actions/FlatWorld.java rename to src/edu/stanford/nlp/sempre/interactive/FlatWorld.java index a0fb878..8e5975c 100644 --- a/src/edu/stanford/nlp/sempre/interactive/actions/FlatWorld.java +++ b/src/edu/stanford/nlp/sempre/interactive/FlatWorld.java @@ -1,4 +1,4 @@ -package edu.stanford.nlp.sempre.interactive.actions; +package edu.stanford.nlp.sempre.interactive; import java.util.HashMap; import java.util.HashSet; import java.util.Set; diff --git a/src/edu/stanford/nlp/sempre/interactive/GrammarInducer.java b/src/edu/stanford/nlp/sempre/interactive/GrammarInducer.java index 0de4a56..0a77550 100644 --- a/src/edu/stanford/nlp/sempre/interactive/GrammarInducer.java +++ b/src/edu/stanford/nlp/sempre/interactive/GrammarInducer.java @@ -24,7 +24,6 @@ import edu.stanford.nlp.sempre.LambdaFormula; import edu.stanford.nlp.sempre.Rule; import edu.stanford.nlp.sempre.SemanticFn; import edu.stanford.nlp.sempre.VariableFormula; -import edu.stanford.nlp.sempre.interactive.actions.ActionFormula; import fig.basic.LispTree; import fig.basic.LogInfo; import fig.basic.Option; diff --git a/src/edu/stanford/nlp/sempre/interactive/actions/GrammarInducerTest.java b/src/edu/stanford/nlp/sempre/interactive/GrammarInducerTest.java similarity index 99% rename from src/edu/stanford/nlp/sempre/interactive/actions/GrammarInducerTest.java rename to src/edu/stanford/nlp/sempre/interactive/GrammarInducerTest.java index b751fc4..938c877 100644 --- a/src/edu/stanford/nlp/sempre/interactive/actions/GrammarInducerTest.java +++ b/src/edu/stanford/nlp/sempre/interactive/GrammarInducerTest.java @@ -1,4 +1,4 @@ -package edu.stanford.nlp.sempre.interactive.actions; +package edu.stanford.nlp.sempre.interactive; import static org.testng.AssertJUnit.assertEquals; diff --git a/src/edu/stanford/nlp/sempre/interactive/actions/Item.java b/src/edu/stanford/nlp/sempre/interactive/Item.java similarity index 86% rename from src/edu/stanford/nlp/sempre/interactive/actions/Item.java rename to src/edu/stanford/nlp/sempre/interactive/Item.java index 1c097d6..fb7f511 100644 --- a/src/edu/stanford/nlp/sempre/interactive/actions/Item.java +++ b/src/edu/stanford/nlp/sempre/interactive/Item.java @@ -1,4 +1,4 @@ -package edu.stanford.nlp.sempre.interactive.actions; +package edu.stanford.nlp.sempre.interactive; import java.util.Set;