<snapdata remixID="11382505"><project name="parse class" app="Snap! 7, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAAAXNSR0IArs4c6QAAAulJREFUeF7t1jFKK1EAhtErFsFSKy0CbsDCLdgZBDFt3IC1tbtwDYKLcQvJDqwDInmY4vFeESvxg3CmHuZnvnsY5mCz2WyGS4GowAGAUXmz2wIAgpAWADDNbxxABtICAKb5jQPIQFoAwDS/cQAZSAsAmOY3DiADaQEA0/zGAWQgLQBgmt84gAykBQBM8xsHkIG0AIBpfuMAMpAWADDNbxxABtICAKb5jQPIQFoAwDS/cQAZSAsAmOY3DiADaQEA0/zGAWQgLQBgmt84gAykBQBM8xsHkIG0AIBpfuMAMpAWADDNbxxABtICAKb5jQPIQFoAwDS/cQAZSAsAmOY3DiADaQEA0/zGAWQgLQBgmt84gAykBQBM8xsHkIG0AIBpfuMAMpAWADDNbxxABtICAKb5jQPIQFoAwDS/cQAZSAsAuCP//f39uLy8HGdnZ+P6+nocHx+nB7Wv4wDuONnVajUeHh7G0dHR+Pz8HIeHh+Pm5mYLcT6f76uHX38vAL9J/vb2Np6ensZkMvnvrvV6PabT6bi4uBiLxWKcnJz8+sHtyyCA35zk4+PjWC6Xf+/4+hJ+Xbe3t1t0d3d3++Igew8Ad6R/fX0dLy8v4+PjY1xdXY3T09Mxm8187X6YKoA7gj4/P2//+c7Pz384ucf9WwBAHtICAKb5jQPIQFoAwDS/cQAZSAsAmOY3DiADaQEA0/zGAWQgLQBgmt84gAykBQBM8xsHkIG0AIBpfuMAMpAWADDNbxxABtICAKb5jQPIQFoAwDS/cQAZSAsAmOY3DiADaQEA0/zGAWQgLQBgmt84gAykBQBM8xsHkIG0AIBpfuMAMpAWADDNbxxABtICAKb5jQPIQFoAwDS/cQAZSAsAmOY3DiADaQEA0/zGAWQgLQBgmt84gAykBQBM8xsHkIG0AIBpfuMAMpAWADDNbxxABtICAKb5jQPIQFoAwDS/cQAZSAsAmOY3DiADaQEA0/zGvwC+y6BAVeAP6jcIpm2oJ3wAAAAASUVORK5CYII=</thumbnail><scenes select="1"><scene name="parse class"><notes></notes><hidden></hidden><headers></headers><code></code><blocks><block-definition s="found? %&apos;aaa&apos;" type="predicate" category="lists"><comment x="0" y="0" w="90" collapsed="false">Just for assoc function.You should&apos;nt use this.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportNot"><block s="reportListIsEmpty"><block var="aaa"/></block></block></block></script></block-definition><block-definition s="assoc %&apos;key&apos; %&apos;a-list&apos;" type="reporter" category="lists"><comment w="90" collapsed="false">See manual p70</comment><header></header><code></code><translations>ca:associació _ _&#xD;</translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="a-list"/></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="a-list"/></block><script><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>1</l><block s="reportListItem"><block var="i"/><block var="a-list"/></block></block><block var="key"/></block><script><block s="doReport"><block s="reportListItem"><block var="i"/><block var="a-list"/></block></block></script></block></script></block><block s="doReport"><block s="reportNewList"><list></list></block></block></script><scripts><comment x="382" y="117" w="289.3333333333333" collapsed="false">The second input is an &quot;association list,&quot; a list of two-item lists.  Each of those smaller lists has a &quot;key&quot; as its first item and a &quot;value&quot; as its second.  ASSOC reports the first key-value pair in the association list whose key matches the first input.</comment></scripts></block-definition><block-definition s="insert %&apos;name&apos; %&apos;value&apos; into %&apos;table&apos;" type="command" category="lists"><comment x="0" y="0" w="90" collapsed="false">See manual p70</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>kv-pair</l></list></block><block s="doSetVar"><l>kv-pair</l><custom-block s="assoc %s %l"><block var="name"/><block var="table"/></custom-block></block><block s="doIfElse"><custom-block s="found? %l"><block var="kv-pair"/></custom-block><script><block s="doReplaceInList"><l>2</l><block var="kv-pair"/><block var="value"/></block></script><script><block s="doInsertInList"><block s="reportNewList"><list><block var="name"/><block var="value"/></list></block><l>1</l><block var="table"/></block></script></block></script></block-definition><block-definition s="%&apos;a&apos;" type="predicate" category="other"><header></header><code></code><translations></translations><inputs><input type="%mult%cs"></input></inputs><script><block s="doReport"><block var="a"/></block></script></block-definition><block-definition s="delete %&apos;key&apos; from %&apos;table&apos;" type="command" category="lists"><comment x="0" y="0" w="90" collapsed="false">See manual p70</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doFor"><l>index</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><block var="table"/></block><script><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>1</l><block s="reportListItem"><block var="index"/><block var="table"/></block></block><block var="key"/></block><script><block s="doDeleteFromList"><block var="index"/><block var="table"/></block><block s="doStopThis"><l><option>this block</option></l></block></script></block></script></block></script></block-definition><block-definition s="clone of %&apos;parent&apos;" type="reporter" category="other"><comment x="0" y="0" w="90" collapsed="false">Makes a clone of given objects</comment><header></header><code></code><translations></translations><inputs><input type="%cmdRing"></input></inputs><script><block s="doDeclareVariables"><list><l>self</l><l>methods</l><l>data</l></list></block><block s="doSetVar"><l>methods</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>data</l><block s="reportNewList"><list></list></block></block><custom-block s="insert %s %s into %l"><l>set</l><block s="reifyScript"><script><custom-block s="insert %s %s into %l"><block var="name"/><block var="value"/><block var="data"/></custom-block></script><list><l>self</l><l>name</l><l>value</l></list></block><block var="methods"/></custom-block><custom-block s="insert %s %s into %l"><l>method</l><block s="reifyScript"><script><custom-block s="insert %s %s into %l"><block var="name"/><block var="value"/><block var="methods"/></custom-block></script><list><l>self</l><l>name</l><l>value</l></list></block><block var="methods"/></custom-block><custom-block s="insert %s %s into %l"><l>clone</l><block s="reifyScript"><script><block s="doReport"><custom-block s="clone of %cmdRing"><block var="self"/></custom-block></block></script><list><l>self</l></list></block><block var="methods"/></custom-block><custom-block s="insert %s %s into %l"><l>delete var</l><block s="reifyScript"><script><custom-block s="delete %s from %l"><block var="name"/><block var="data"/></custom-block></script><list><l>self</l><l>name</l></list></block><block var="methods"/></custom-block><custom-block s="insert %s %s into %l"><l>delete method</l><block s="reifyScript"><script><custom-block s="delete %s from %l"><block var="name"/><block var="methods"/></custom-block></script><list><l>self</l><l>name</l></list></block><block var="methods"/></custom-block><custom-block s="insert %s %s into %l"><l>parent</l><block var="parent"/><block var="data"/></custom-block><block s="doSetVar"><l>self</l><block s="reifyScript"><script><block s="doDeclareVariables"><list><l>kv-pair</l></list></block><block s="doSetVar"><l>kv-pair</l><custom-block s="assoc %s %l"><block var="message"/><block var="methods"/></custom-block></block><block s="doIf"><custom-block s="found? %l"><block var="kv-pair"/></custom-block><script><block s="doReport"><block s="reportListItem"><l>2</l><block var="kv-pair"/></block></block></script></block><block s="doSetVar"><l>kv-pair</l><custom-block s="assoc %s %l"><block var="message"/><block var="data"/></custom-block></block><block s="doIf"><custom-block s="found? %l"><block var="kv-pair"/></custom-block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>2</l><block var="kv-pair"/></block></autolambda><list><l>self</l></list></block></block></script></block><block s="doIf"><block s="reportIsA"><block var="parent"/><l><option>command</option></l></block><script><block s="doReport"><block s="evaluate"><block var="parent"/><list><block var="message"/></list></block></block></script></block><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list><l>message</l></list></block></block><block s="doReport"><block var="self"/></block></script></block-definition><block-definition s="new object" type="reporter" category="other"><comment x="0" y="0" w="90" collapsed="false">Isn&apos;t the block name enough intuitive?You are very stupid!</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><custom-block s="clone of %cmdRing"><block s="reportNewList"><list></list></block></custom-block></block></script></block-definition><block-definition s="tell %&apos;object&apos; %&apos;message&apos; %&apos;args&apos;" type="command" category="other"><comment x="0" y="0" w="90" collapsed="false">Make someone to do something. Caution:Do not put in fire(XD)or misuse the tell for sprites in the control palette!</comment><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%s"></input><input type="%mult%s"></input></inputs><script><block s="doRun"><block s="evaluate"><block var="object"/><list><block var="message"/></list></block><block s="reportCONS"><block var="object"/><block var="args"/></block></block></script></block-definition><block-definition s="ask %&apos;object&apos; %&apos;message&apos; %&apos;args&apos;" type="reporter" category="other"><comment x="0" y="0" w="90" collapsed="false">Ask someone to fetch a value for you and if he doesn&apos;t,make him to do it!Caution:Do not put in fire(XD)or misuse the ask for sprites in the control palette! </comment><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%s"></input><input type="%mult%s"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="evaluate"><block var="object"/><list><block var="message"/></list></block><block s="reportCONS"><block var="object"/><block var="args"/></block></block></block></script></block-definition><block-definition s="comment %&apos;obj&apos;" type="command" category="other"><comment x="0" y="0" w="90" collapsed="false">Does nothing with your input.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs></block-definition><block-definition s="class %&apos;a&apos;" type="reporter" category="other"><comment x="0" y="0" w="90" collapsed="false">Makes a class of objects(A class is a hardcoded class XD)</comment><header></header><code></code><translations></translations><inputs><input type="%cmdRing"></input></inputs><script><block s="doReport"><block s="reifyScript"><script><block s="doReport"><custom-block s="clone of %cmdRing"><block var="a"/></custom-block></block></script><list></list></block></block></script></block-definition><block-definition s="instance %&apos;obj&apos;" type="reporter" category="other"><comment x="0" y="0" w="90" collapsed="false">Makes an instance of the given class.</comment><header></header><code></code><translations></translations><inputs><input type="%cmdRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block var="obj"/><list></list></block></block></script></block-definition><block-definition s="error %&apos;a&apos;" type="reporter" category="operators"><comment x="0" y="0" w="90" collapsed="false">Returns an error.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>a</l></list><l>return new Error(a)</l></block><list><block var="a"/></list></block></block></script></block-definition><block-definition s="hide %&apos;a&apos;" type="reporter" category="other"><comment x="0" y="0" w="90" collapsed="false">Hides the inner function of an object.</comment><header></header><code></code><translations></translations><inputs><input type="%cmdRing"></input></inputs><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="evaluate"><block var="g"/><block var="#1"/></block></autolambda><list><l>#1</l></list></block></block></script></block-definition><block-definition s="%&apos;solved&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportNot"><block s="reportEquals"><block var="solved"/><block s="reportJSFunction"><list></list><l>return null</l></block></block></block></block></script></block-definition><block-definition s="%&apos;a&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%cs"></input></inputs><script><block s="doRun"><block var="a"/><list></list></block></script></block-definition><block-definition s="GCD %&apos;d&apos; %&apos;g&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l><l>b</l></list></block><block s="doUntil"><block s="reportEquals"><block s="reportModulus"><block var="a"/><block var="b"/></block><l>0</l></block><script><block s="doSetVar"><l>a</l><block var="d"/></block><block s="doSetVar"><l>b</l><block var="g"/></block><block s="doSetVar"><l>d</l><block var="b"/></block><block s="doSetVar"><l>g</l><block s="reportModulus"><block var="a"/><block var="b"/></block></block></script></block><block s="doReport"><block var="b"/></block></script></block-definition><block-definition s="class parse" type="reporter" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><custom-block s="new object"></custom-block></block><custom-block s="tell %repRing %s %mult%s"><block var="a"/><l>set</l><list><l>text</l><l>Hello World!</l></list></custom-block><custom-block s="tell %repRing %s %mult%s"><block var="a"/><l>set</l><list><l>pointer</l><l>0</l></list><comment w="90" collapsed="false">:(</comment></custom-block><custom-block s="tell %repRing %s %mult%s"><block var="a"/><l>method</l><list><l>settext</l><block s="reifyScript"><script><custom-block s="tell %repRing %s %mult%s"><block var="self"/><l>set</l><list><l>text</l><block var="text"/></list></custom-block></script><list><l>self</l><l>text</l></list></block></list></custom-block><custom-block s="tell %repRing %s %mult%s"><block var="a"/><l>method</l><list><l>get</l><block s="reifyScript"><script><block s="doReport"><block s="reportLetter"><custom-block s="ask %repRing %s %mult%s"><block var="self"/><l>pointer</l><list></list></custom-block><custom-block s="ask %repRing %s %mult%s"><block var="self"/><l>text</l><list></list></custom-block></block></block></script><list><l>self</l></list></block></list></custom-block><custom-block s="tell %repRing %s %mult%s"><block var="a"/><l>method</l><list><l>expect</l><block s="reifyScript"><script><block s="doIfElse"><block s="reportEquals"><custom-block s="ask %repRing %s %mult%s"><block var="self"/><l>get</l><list></list></custom-block><block var="text"/></block><script><custom-block s="tell %repRing %s %mult%s"><block var="self"/><l>set</l><list><l>pointer</l><block s="reportVariadicSum"><list><custom-block s="ask %repRing %s %mult%s"><block var="self"/><l>pointer</l><list></list></custom-block><l>1</l></list></block></list></custom-block></script><script><block s="doApplyExtension"><l>err_error(msg)</l><list><block s="reportJoinWords"><list><l>Expected </l><block var="text"/><l>but got </l><custom-block s="ask %repRing %s %mult%s"><block var="self"/><l>get</l><list></list></custom-block></list></block></list></block></script></block></script><list><l>self</l><l>text</l></list></block></list></custom-block><custom-block s="tell %repRing %s %mult%s"><block var="a"/><l>method</l><list><l>unexpect</l><block s="reifyScript"><script><custom-block s="tell %repRing %s %mult%s"><block var="self"/><l>set</l><list><l>pointer</l><block s="reportDifference"><custom-block s="ask %repRing %s %mult%s"><block var="self"/><l>pointer</l><list></list></custom-block><l>1</l></block></list></custom-block></script><list><l>self</l></list></block></list></custom-block><custom-block s="tell %repRing %s %mult%s"><block var="a"/><l>method</l><list><l>choose</l><block s="reifyScript"><script><block s="doIfElse"><block s="reportListContainsItem"><block var="text"/><custom-block s="ask %repRing %s %mult%s"><block var="self"/><l>get</l><list></list></custom-block></block><script><block s="doDeclareVariables"><list><l>b</l></list></block><block s="doSetVar"><l>b</l><custom-block s="ask %repRing %s %mult%s"><block var="self"/><l>get</l><list></list></custom-block></block><custom-block s="tell %repRing %s %mult%s"><block var="self"/><l>set</l><list><l>pointer</l><block s="reportVariadicSum"><list><custom-block s="ask %repRing %s %mult%s"><block var="self"/><l>pointer</l><list></list></custom-block><l>1</l></list></block></list></custom-block><block s="doReport"><block var="b"/></block></script><script><block s="doApplyExtension"><l>err_error(msg)</l><list><block s="reportJoinWords"><list><l>Expected </l><block s="reportJoinWords"><block var="text"/></block><l>but got </l><custom-block s="ask %repRing %s %mult%s"><block var="self"/><l>get</l><list></list></custom-block></list></block></list></block></script></block></script><list><l>self</l><l>text</l></list></block></list></custom-block><custom-block s="tell %repRing %s %mult%s"><block var="a"/><l>method</l><list><l>end</l><block s="reifyScript"><script><block s="doReport"><block s="reportGreaterThanOrEquals"><custom-block s="ask %repRing %s %mult%s"><block var="self"/><l>pointer</l><list></list></custom-block><block s="reportStringSize"><custom-block s="ask %repRing %s %mult%s"><block var="self"/><l>text</l><list></list></custom-block></block></block></block></script><list><l>self</l><l>text</l></list></block></list></custom-block><custom-block s="tell %repRing %s %mult%s"><block var="a"/><l>method</l><list><l>before</l><block s="reifyScript"><script><block s="doDeclareVariables"><list><l>b</l></list></block><block s="doSetVar"><l>b</l><l></l></block><block s="doUntil"><block s="reportEquals"><custom-block s="ask %repRing %s %mult%s"><block var="self"/><l>get</l><list></list></custom-block><block var="text"/></block><script><block s="doSetVar"><l>b</l><block s="reportJoinWords"><list><block var="b"/><custom-block s="ask %repRing %s %mult%s"><block var="self"/><l>get</l><list></list></custom-block></list></block></block><custom-block s="tell %repRing %s %mult%s"><block var="self"/><l>set</l><list><l>pointer</l><block s="reportVariadicSum"><list><custom-block s="ask %repRing %s %mult%s"><block var="self"/><l>pointer</l><list></list></custom-block><l>1</l></list></block></list></custom-block><block s="doIf"><custom-block s="ask %repRing %s %mult%s"><block var="self"/><l>end</l><list></list></custom-block><script><block s="doApplyExtension"><l>err_error(msg)</l><list><block s="reportJoinWords"><list><l>Expected </l><block var="text"/><l>but got </l><l>EOF</l></list></block></list></block></script></block></script></block><custom-block s="tell %repRing %s %mult%s"><block var="self"/><l>expect</l><list><block var="text"/></list></custom-block><block s="doReport"><block var="b"/></block></script><list><l>self</l><l>text</l></list></block></list></custom-block><custom-block s="tell %repRing %s %mult%s"><block var="a"/><l>method</l><list><l>eat</l><block s="reifyScript"><script><block s="doUntil"><block s="reportNotEquals"><custom-block s="ask %repRing %s %mult%s"><block var="self"/><l>get</l><list></list></custom-block><block var="text"/></block><script><custom-block s="tell %repRing %s %mult%s"><block var="self"/><l>set</l><list><l>pointer</l><block s="reportVariadicSum"><list><custom-block s="ask %repRing %s %mult%s"><block var="self"/><l>pointer</l><list></list></custom-block><l>1</l></list></block></list></custom-block></script></block></script><list><l>self</l><l>text</l></list></block></list></custom-block><custom-block s="tell %repRing %s %mult%s"><block var="a"/><l>method</l><list><l>optional</l><block s="reifyScript"><script><block s="doIf"><block s="reportEquals"><custom-block s="ask %repRing %s %mult%s"><block var="self"/><l>get</l><list></list></custom-block><block var="text"/></block><script><custom-block s="tell %repRing %s %mult%s"><block var="self"/><l>set</l><list><l>pointer</l><block s="reportVariadicSum"><list><custom-block s="ask %repRing %s %mult%s"><block var="self"/><l>pointer</l><list></list></custom-block><l>1</l></list></block></list></custom-block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list><l>self</l><l>text</l></list></block></list></custom-block><block s="doReport"><custom-block s="class %cmdRing"><block var="a"/></custom-block></block></script></block-definition></blocks><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="false" hyperops="true" codify="false" inheritance="true" sublistIDs="false" id="901"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAADoVJREFUeF7t1cEJAAAIxDDdf2m3sJ+4wEEQuuMIECBAgACBd4F9XzRIgAABAgQIjAB7AgIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECByxcQFpoRMBzwAAAABJRU5ErkJggg==</pentrails><costumes><list struct="atomic" id="902"></list></costumes><sounds><list struct="atomic" id="903"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Sprite" idx="1" x="-1.2458831531136003e-13" y="-0.27397260273969487" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="80,80,80,1" pen="tip" id="908"><costumes><list struct="atomic" id="909"></list></costumes><sounds><list struct="atomic" id="910"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="20"><block s="doDeclareVariables"><list><l>parser</l><l>code</l><l>functions</l></list><comment w="90" collapsed="false">this is a simple parser that doesn&apos;t handle expressions&#xD;you will need to extend it with reverse polish notation&#xD;ps:no lexer :(&#xD;pps:turbo mode if you don&apos;t want to wait</comment></block><block s="doSetVar"><l>parser</l><custom-block s="instance %cmdRing"><custom-block s="class parse"></custom-block></custom-block></block><block s="doSetVar"><l>code</l><l>say(hello world,2);</l></block><block s="doSetVar"><l>functions</l><block s="reportNewList"><list><block s="reportNewList"><list><l>say</l><block s="reifyScript"><script><block s="doSayFor"><l></l><l></l></block></script><list></list></block></list></block></list></block></block><custom-block s="tell %repRing %s %mult%s"><block var="parser"/><l>settext</l><list><block var="code"/></list></custom-block><custom-block s="tell %repRing %s %mult%s"><block var="parser"/><l>eat</l><list><l> </l></list></custom-block><block s="doUntil"><custom-block s="ask %repRing %s %mult%s"><block var="parser"/><l>end</l><list></list></custom-block><script><block s="doDeclareVariables"><list><l>fun</l><l>params...</l></list></block><block s="doSetVar"><l>fun</l><block s="reportListItem"><l>2</l><custom-block s="assoc %s %l"><custom-block s="ask %repRing %s %mult%s"><block var="parser"/><l>before</l><list><l>(</l></list></custom-block><block var="functions"/></custom-block></block></block><block s="doSetVar"><l>params...</l><block s="reportTextSplit"><custom-block s="ask %repRing %s %mult%s"><block var="parser"/><l>before</l><list><l>)</l></list></custom-block><l>,</l></block></block><block s="doRun"><block var="fun"/><block var="params..."/></block><custom-block s="tell %repRing %s %mult%s"><block var="parser"/><l>expect</l><list><l>;</l></list></custom-block></script></block></script></scripts></sprite></sprites></stage><variables></variables></scene></scenes></project><media name="parse class" app="Snap! 7, https://snap.berkeley.edu" version="2"></media></snapdata>