This repository has been archived by the owner on Jul 21, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
part of speech broadcast temp.xml
35 lines (35 loc) · 80.1 KB
/
part of speech broadcast temp.xml
1
2
3
4
5
6
7
8
9
<project name="part of speech broadcast temp" app="Snap! 4.1, http://snap.berkeley.edu" version="1"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><stage name="Stage" width="480" height="360" costume="0" tempo="60" threadsafe="false" lines="round" ternary="true" codify="false" inheritance="false" sublistIDs="false" scheduled="false" id="1"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAOhUlEQVR4Xu3VwQkAAAjEMN1/abewn7jAQRC64wgQIECAAIF3gX1fNEiAAAECBAiMAHsCAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+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+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQIHLFxAWmhEwHPAAAAAElFTkSuQmCC</pentrails><costumes><list id="2"></list></costumes><sounds><list id="3"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites><sprite name="Sprite" idx="1" x="-0.11111111111085847" y="0.11111111111111427" heading="90" scale="0.4" rotation="1" draggable="true" costume="1" color="80,80,80" pen="tip" id="8"><costumes><list id="9"><item><costume name="Untitled" center-x="168.5" center-y="134.5" image="data:image/png;base64,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" id="10"/></item></list></costumes><sounds><list id="11"></list></sounds><blocks></blocks><variables></variables><scripts><script x="15.999997000000008" y="10"><block s="receiveGo"></block><block s="doSetVar"><l>all sentences</l><block s="reportNewList"><list><l>This is a story about ?GIRLS-NAME. =GIRLS-NAME is ?ADJECTIVE and very ?ADJECTIVE. She travelled to ?PLACE-NAME. There she met ?BOYS-NAME who was a ?OCCUPATION in =PLACE-NAME. =GIRLS-NAME and =BOYS-NAME lived ?ADVERB ever after.</l></list></block></block><block s="clear"></block><block s="show"></block><block s="doSetVar"><l>speech recognition error</l><l>No error</l></block><block s="bubble"><l>Welcome to the crazy story app!</l></block><custom-block s="Start another story"></custom-block></script><script x="17" y="230.1428571428572"><block s="receiveMessage"><l>heard something</l></block><block s="doDeclareVariables"><list><l>current word</l></list></block><block s="doSetVar"><l>current word</l><block s="reportListItem"><block var="word number"/><block var="words"/></block></block><block s="doSetVar"><l>associations</l><custom-block s="add association %txt with %s to %l"><custom-block s="all but first and ignore trailing punctuation %txt"><block var="current word"/></custom-block><block var="last thing spoken"/><block var="associations"/></custom-block></block><custom-block s="Speak %txt then %cmdRing"><block s="reportJoinWords"><list><l>OK I heard </l><block var="last thing spoken"/></list></block><block s="reifyScript"><script><block s="doDeclareVariables"><list><l>trailing punctuation (if any)</l></list></block><block s="doSetVar"><l>trailing punctuation (if any)</l><block s="reportLetter"><block s="reportStringSize"><block var="current word"/></block><block var="current word"/></block></block><block s="doIfElse"><block s="reportNot"><block s="reportListContainsItem"><block s="reportNewList"><list><l>.</l><l>,</l><l>?</l><l>:</l><l>;</l></list></block><block var="trailing punctuation (if any)"/></block></block><script><block s="doReplaceInList"><block var="word number"/><block var="words"/><block var="last thing spoken"/></block></script><script><block s="doReplaceInList"><block var="word number"/><block var="words"/><block s="reportJoinWords"><list><block var="last thing spoken"/><block var="trailing punctuation (if any)"/></list></block></block></script></block><block s="doChangeVar"><l>word number</l><l>1</l></block><custom-block s="ask for replacements"></custom-block></script><list></list></block></custom-block></script><script x="19.428571428571473" y="653.4285714285714"><block s="receiveMessage"><l>speech recognition error</l></block><block s="doIfElse"><block s="reportEquals"><block var="speech recognition error"/><l>no-speech</l></block><script><custom-block s="Speak %txt"><l>I didn't hear anything for a while. Goodbye. Click the green flag to start listening again..</l></custom-block></script><script><custom-block s="Speak %txt"><block s="reportJoinWords"><list><l>There was an error. </l><block var="speech recognition error"/></list></block></custom-block><block s="bubble"><block s="reportJoinWords"><list><l>There was an error. </l><block var="speech recognition error"/></list></block></block><custom-block s="Speak %txt then %cmdRing"><l>Try again.</l><block s="reifyScript"><script><custom-block s="listen"></custom-block></script><list></list></block></custom-block></script></block></script></scripts></sprite><watcher var="all sentences" style="normal" x="7" y="112.00000399999999" color="243,118,29" hidden="true"/><watcher var="word number" style="normal" x="10" y="40.000001999999995" color="243,118,29" hidden="true"/><watcher var="words" style="normal" x="8" y="105" color="243,118,29" hidden="true"/><watcher var="last thing spoken" style="normal" x="13" y="8.000005999999985" color="243,118,29"/><watcher var="speech recognition error" style="normal" x="10" y="61.00000399999999" color="243,118,29" hidden="true"/><watcher var="associations" style="normal" x="10" y="82.00000599999998" color="243,118,29" hidden="true"/></sprites></stage><hidden></hidden><headers></headers><code></code><blocks><block-definition s="copy %'list' from %'start' to %'end'" type="reporter" category="lists"><header></header><code></code><inputs><input type="%l"></input><input type="%n">1</input><input type="%n">10</input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>list</l><l>start</l><l>end</l></list><l>return new List(list.asArray().slice(+start - 1, +end))</l></block><list><block var="list"/><block var="start"/><block var="end"/></list></block></block></script></block-definition><block-definition s="JS map %'reporter' over %'list'" type="reporter" category="lists"><header></header><code></code><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>reporter</l><l>list</l><l>process</l></list><l>// process.context.inputs:
// [0] - reporter
// [1] - list (original source)
// ---------------------------------
// [2..n] - result values (target)

if (process.context.inputs.length - 2 === list.length()) {
 process.returnValueToParentContext(
 new List(process.context.inputs.slice(2))
 );
 return;
}
var next = list.at(process.context.inputs.length - 1);
process.pushContext();
process.evaluate(reporter, new List([next]));</l></block><list><block var="reporter"/><block var="list"/></list></block></block></script></block-definition><block-definition s="Start another story" type="command" category="other"><header></header><code></code><inputs></inputs><script><block s="doSetVar"><l>associations</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>words</l><block s="reportTextSplit"><block s="reportListItem"><block s="reportRandom"><l>1</l><block s="reportListLength"><block var="all sentences"/></block></block><block var="all sentences"/></block><l><option>whitespace</option></l></block></block><block s="doSetVar"><l>word number</l><l>1</l></block><custom-block s="ask for replacements"></custom-block></script></block-definition><block-definition s="ask for replacements" type="command" category="other"><header></header><code></code><inputs></inputs><script><block s="doDeclareVariables"><list><l>current word</l><l>part of speech</l></list></block><block s="doIfElse"><block s="reportGreaterThan"><block var="word number"/><block s="reportListLength"><block var="words"/></block><comment w="90" collapsed="true">At the end.</comment></block><script><custom-block s="Speak %txt"><block s="reportJoinWords"><list><custom-block s="join words %l"><block var="words"/></custom-block><l> Click the green flag to generate a new story.</l></list></block></custom-block><block s="bubble"><custom-block s="join words %l"><block var="words"/></custom-block></block></script><script><block s="doSetVar"><l>current word</l><block s="reportListItem"><block var="word number"/><block var="words"/></block></block><block s="doIfElse"><block s="reportEquals"><block s="reportLetter"><l>1</l><block var="current word"/></block><l>?</l><comment w="187.14285714285717" collapsed="true">Ask user for substitution.</comment></block><script><block s="doSetVar"><l>part of speech</l><custom-block s="all but first and ignore trailing punctuation %txt"><block var="current word"/></custom-block></block><custom-block s="Speak %txt then %cmdRing"><block s="reportJoinWords"><list><l>say any </l><block var="part of speech"/></list></block><block s="reifyScript"><script><custom-block s="listen"></custom-block></script><list></list></block></custom-block></script><script><block s="doIf"><block s="reportEquals"><block s="reportLetter"><l>1</l><block var="current word"/></block><l>=</l><comment w="239.57143157142843" collapsed="true">Use previous substituion for key.</comment></block><script><block s="doDeclareVariables"><list><l>key</l></list></block><block s="doSetVar"><l>key</l><custom-block s="all but first and ignore trailing punctuation %txt"><block var="current word"/></custom-block></block><block s="doReplaceInList"><block var="word number"/><block var="words"/><custom-block s="look up association %txt in %l and if not found %s"><block var="key"/><block var="associations"/><block s="reportJoinWords"><list><l>?</l><block var="key"/><l> should appear before =</l><block var="key"/></list></block></custom-block></block></script></block><block s="doChangeVar"><l>word number</l><l>1</l><comment w="257.14285714285717" collapsed="true">Just some fixed text so go to next word.</comment></block><custom-block s="ask for replacements"></custom-block></script></block></script></block></script></block-definition><block-definition s="join words %'words'" type="reporter" category="operators"><header></header><code></code><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>joined</l></list></block><block s="doSetVar"><l>joined</l><l></l></block><block s="doUntil"><block s="reportEquals"><block s="reportListLength"><block var="words"/></block><l>0</l></block><script><block s="doSetVar"><l>joined</l><block s="reportJoinWords"><list><block var="joined"/><l> </l><block s="reportListItem"><l>1</l><block var="words"/></block></list></block></block><block s="doSetVar"><l>words</l><block s="reportCDR"><block var="words"/></block></block></script></block><block s="doReport"><block var="joined"/></block></script></block-definition><block-definition s="speak %'text' then %'do this when finished'" type="command" category="sound"><header></header><code></code><inputs><input type="%s"></input><input type="%cmdRing"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>message</l><l>finished_callback</l></list><l>var utterance = new SpeechSynthesisUtterance(message);















if (typeof finished_callback === 'object') {















 // callback provided















 utterance.onend = function (event) {















 invoke(finished_callback, new List([message]));















 };















}















if (window.speech_recognition) {















 window.speech_recognition.abort();















}















window.speechSynthesis.speak(utterance);















</l></block><list><block var="text"/><block var="do this when finished"/></list></block></script></block-definition><block-definition s="Listen %'respond as heard' then finally %'handle response' but if nothing heard %'handle nothing said' (requires Microsoft speech key)" type="command" category="sensing"><comment x="0" y="0" w="352.00000000000006" collapsed="false">As speech is recognised 'respond as heard' is called with what it thinks it has heard. 'handle response' is called when it thinks the speaking is finished.</comment><header></header><code></code><inputs><input type="%cmdRing"></input><input type="%cmdRing"></input><input type="%cmdRing"></input></inputs><script><custom-block s="run eCraft2Learn command %txt with %mult%s"><l>start_microsoft_speech_recognition</l><list><block var="respond as heard"/><block var="handle response"/><block var="handle nothing said"/></list></custom-block></script></block-definition><block-definition s="read URL %'URL' then %'receive contents' or if error %'receive error' using an access key if needed %'key'" type="command" category="sensing"><comment x="0" y="0" w="383" collapsed="false">Reads the contents of 'URL' and then calls 'receive contents' with that text (in HTML). If there was an error 'receive error' is called instead. 'key' needs only be provided if the URL requires as access key.</comment><header></header><code></code><inputs><input type="%txt"></input><input type="%cmdRing"></input><input type="%cmdRing"></input><input type="%txt"></input></inputs><script><custom-block s="run eCraft2Learn command %txt with %mult%s"><l>read_url</l><list><block var="URL"/><block var="receive contents"/><block var="receive error"/><block var="key"/></list></custom-block></script></block-definition><block-definition s="Setup camera %'width' %'height'" type="command" category="other"><comment x="0" y="0" w="196.99999999999997" collapsed="false">Must be run before any of the image recognition blocks. Specifies the resolution of the image sent for recogntion.</comment><header></header><code></code><inputs><input type="%n"></input><input type="%n"></input></inputs><script><custom-block s="run eCraft2Learn command %txt with %mult%s"><l>setup_camera</l><list><block var="width"/><block var="height"/></list></custom-block></script></block-definition><block-definition s="Listen %'respond as heard' then finally %'handle response' but if nothing heard %'handle nothing said'" type="command" category="sensing"><header></header><code></code><inputs><input type="%cmdRing"></input><input type="%cmdRing"></input><input type="%cmdRing"></input></inputs><script><custom-block s="run eCraft2Learn command %txt with %mult%s"><l>start_microsoft_speech_recognition</l><list><block var="respond as heard"/><block var="handle response"/><block var="handle nothing said"/></list></custom-block></script></block-definition><block-definition s="Listen for %'duration' seconds then %'handle response' but if error %'handle error'" type="command" category="sensing"><header></header><code></code><inputs><input type="%n"></input><input type="%cmdRing"></input><input type="%cmdRing"></input></inputs><script><custom-block s="run eCraft2Learn command %txt with %mult%s"><l>start_microsoft_speech_recognition_batch</l><list><block var="handle response"/><block var="handle error"/><block var="duration"/></list></custom-block></script></block-definition><block-definition s="listen for a number %'what to do with the number' %'what to do if not a number'" type="command" category="sensing"><header></header><code></code><inputs><input type="%cmdRing"></input><input type="%cmdRing"></input></inputs><script><custom-block s="Listen then %cmdRing but if error %cmdRing"><block s="reifyScript"><script><block s="doIfElse"><block s="reportIsA"><block var="spoken"/><l><option>number</option></l></block><script><block s="doRun"><block var="what to do with the number"/><list><block var="spoken"/></list></block></script><script><block s="doRun"><block var="what to do if not a number"/><list><block var="spoken"/></list></block></script></block></script><list><l>spoken</l></list></block><block var="what to do if not a number"/></custom-block></script></block-definition><block-definition s="set language to %'language'" type="command" category="other"><header></header><code></code><inputs><input type="%s"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>lang</l></list><l>if (window.speech_recognition) {
 window.speech_recognition.lang = lang;
}</l></block><list><block var="language"/></list></block></script></block-definition><block-definition s="run eCraft2Learn command %'command name' with %'inputs'" type="command" category="other"><header></header><code></code><inputs><input type="%txt"></input><input type="%mult%s"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>function_name</l><l>parameters</l></list><l>if (typeof ecraft2learn === 'object') {















 ecraft2learn.run(function_name, parameters);















} else {















 var script = document.createElement("script");















 script.type = "text/javascript";















 script.src = "https://toontalk.github.io/ai-cloud/ecraft2learn.js";















 script.addEventListener('load', function () {















 ecraft2learn.run(function_name, parameters);















 });















 document.head.appendChild(script);















}</l></block><list><block var="command name"/><block var="inputs"/></list></block></script></block-definition><block-definition s="call eCraft2Learn reporter %'reporter name' with %'inputs'" type="reporter" category="other"><header></header><code></code><inputs><input type="%txt"></input><input type="%mult%s"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>function_name</l><l>parameters</l></list><l>if (typeof ecraft2learn === 'object') {







































 return ecraft2learn.run(function_name, parameters);







































} else {







































 alert("Any eCraft2Learn command must be run before the " + function_name + " reporter.");







































 return 0;







































}</l></block><list><block var="reporter name"/><block var="inputs"/></list></block></block></script></block-definition><block-definition s="speak %'message' then %'what to do when finished' with pitch %'pitch' with rate %'rate' with voice %'voice' with volume %'volume' in language %'language code'" type="command" category="sound"><comment x="0" y="0" w="280" collapsed="false">Speaks 'message'. Optionally you can provide a script to run when finished, the pitch (a positive number), rate (a number between .1 and 2), voice (depends upon what voices are accessible from the browser - see 'get voices'), volume (a positive number), and language code (a BCP 47 language tag, e.g. en-US).</comment><header></header><code></code><inputs><input type="%s"></input><input type="%cmdRing"></input><input type="%n"></input><input type="%n"></input><input type="%n"></input><input type="%n"></input><input type="%txt"></input></inputs><script><custom-block s="run eCraft2Learn command %txt with %mult%s"><l>speak</l><list><block var="message"/><block var="pitch"/><block var="rate"/><block var="voice"/><block var="volume"/><block var="language code"/><block var="what to do when finished"/></list></custom-block></script></block-definition><block-definition s="Get voice names" type="reporter" category="sound"><header></header><code></code><inputs></inputs><script><block s="doReport"><custom-block s="call eCraft2Learn reporter %txt with %mult%s"><l>get_voice_names</l><list></list></custom-block></block></script></block-definition><block-definition s="voice name of %'voice number'" type="reporter" category="sound"><header></header><code></code><inputs><input type="%n"></input></inputs><script><block s="doReport"><custom-block s="call eCraft2Learn reporter %txt with %mult%s"><l>get_voice_name</l><list><block var="voice number"/></list></custom-block></block></script></block-definition><block-definition s="Stop speech recognition" type="command" category="sensing"><comment x="0" y="0" w="282" collapsed="true">Stops the current attempt to recognize what is spoken.</comment><header></header><code></code><inputs></inputs><script><custom-block s="run eCraft2Learn command %txt with %mult%s"><l>stop_speech_recognition</l><list></list></custom-block></script></block-definition><block-definition s="listen" type="command" category="sensing"><comment x="0" y="0" w="535" collapsed="false">When something is spoken this broadcasts 'heard something' and sets 'last thing spoken' to the text that was spoken.
You will need to create two new variables for this to work: 'last thing spoken' and 'speech recognition error'.</comment><header></header><code></code><inputs></inputs><script><custom-block s="Listen then %cmdRing but if error %cmdRing"><block s="reifyScript"><script><block s="doSetVar"><l>last thing spoken</l><block var="spoken"/></block><block s="doBroadcast"><l>heard something</l></block><custom-block s="listen"></custom-block></script><list><l>spoken</l></list></block><block s="reifyScript"><script><block s="doSetVar"><l>speech recognition error</l><block var="error"/></block><block s="doBroadcast"><l>speech recognition error</l></block></script><list><l>error</l></list></block></custom-block></script></block-definition><block-definition s="Listen then %'handle response' but if error %'handle error'" type="command" category="sensing"><comment x="0" y="0" w="300" collapsed="false">Listens to the microphone for speech. The first script is run with the recognized text unless an error is encountered then the second script is called with text describing the error.</comment><header></header><code></code><inputs><input type="%cmdRing"></input><input type="%cmdRing"></input></inputs><script><custom-block s="run eCraft2Learn command %txt with %mult%s"><l>start_speech_recognition</l><list><block var="handle response"/><block var="handle error"/></list></custom-block></script></block-definition><block-definition s="Ask %'cloud provider' to say what it sees then %'then receive response' and show the picture %'show photo?'" type="command" category="sensing"><header></header><code></code><inputs><input type="%txt"><options>Google
Microsoft
IBM Watson</options></input><input type="%cmdRing"></input><input type="%s"></input></inputs><script><custom-block s="run eCraft2Learn command %txt with %mult%s"><l>take_picture_and_analyse</l><list><block var="cloud provider"/><block var="show photo?"/><block var="then receive response"/></list></custom-block></script></block-definition><block-definition s="Do %'handle response' with what Google sees and show the photo %'show'" type="command" category="sensing"><comment x="0" y="0" w="258" collapsed="false">Takes a picture and runs script with a list of tags returned by Google. Optionally can show the image.</comment><header></header><code></code><inputs><input type="%cmdRing"></input><input type="%b"></input></inputs><script><custom-block s="Ask %txt to say what it sees then %cmdRing and show the picture %s"><l>Google</l><block s="reifyScript"><script><block s="doRun"><block var="handle response"/><list><custom-block s="Google labels"></custom-block></list></block></script><list><l>response</l></list></block><block var="show"/></custom-block></script></block-definition><block-definition s="Do %'handle response' with what IBM Watson sees and show the photo %'show'" type="command" category="sensing"><comment x="0" y="0" w="319" collapsed="false">Takes a picture and runs script with a list of tags returned by IBM Watson. Optionally can show the image.</comment><header></header><code></code><inputs><input type="%cmdRing"></input><input type="%b"></input></inputs><script><custom-block s="Ask %txt to say what it sees then %cmdRing and show the picture %s"><l>Watson</l><block s="reifyScript"><script><block s="doRun"><block var="handle response"/><list><custom-block s="IBM Watson classes"></custom-block></list></block></script><list><l>response</l></list></block><block var="show"/></custom-block></script></block-definition><block-definition s="Do %'handle response' with what Microsoft sees and show the photo %'show'" type="command" category="sensing"><comment x="0" y="0" w="423" collapsed="false">Takes a picture and runs script with a list of tags returned by Microsoft. Optionally can show the image.</comment><header></header><code></code><inputs><input type="%cmdRing"></input><input type="%b"></input></inputs><script><custom-block s="Ask %txt to say what it sees then %cmdRing and show the picture %s"><l>Microsoft</l><block s="reifyScript"><script><block s="doRun"><block var="handle response"/><list><custom-block s="Microsoft labels"></custom-block></list></block></script><list><l>responses</l></list></block><block var="show"/></custom-block></script></block-definition><block-definition s="IBM Watson image descriptions of new photo" type="reporter" category="sensing"><comment x="0" y="0" w="427" collapsed="false">Takes a picture, asks IBM Watson to classify it, and reports the response when it arrives.</comment><header></header><code></code><inputs></inputs><script><block s="doDeclareVariables"><list><l>response</l></list></block><block s="doSetVar"><l>response</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><custom-block s="Do %cmdRing with what IBM Watson sees and show the photo %b"><block s="reifyScript"><script><block s="doSetVar"><l>response</l><block var="r"/></block></script><list><l>r</l></list></block><block s="reportBoolean"><l><bool>false</bool></l></block></custom-block><block s="doWaitUntil"><block s="reportNot"><block s="reportEquals"><block var="response"/><block s="reportBoolean"><l><bool>false</bool></l></block></block></block></block><block s="doReport"><block var="response"/></block></script></block-definition><block-definition s="Google image descriptions of new photo" type="reporter" category="sensing"><comment x="0" y="0" w="413" collapsed="false">Takes a picture, asks Google to classify it, and reports the response when it arrives.</comment><header></header><code></code><inputs></inputs><script><block s="doDeclareVariables"><list><l>response</l></list></block><block s="doSetVar"><l>response</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><custom-block s="Do %cmdRing with what Google sees and show the photo %b"><block s="reifyScript"><script><block s="doSetVar"><l>response</l><block var="r"/></block></script><list><l>r</l></list></block><block s="reportBoolean"><l><bool>false</bool></l></block></custom-block><block s="doWaitUntil"><block s="reportNot"><block s="reportEquals"><block var="response"/><block s="reportBoolean"><l><bool>false</bool></l></block></block></block></block><block s="doReport"><block var="response"/></block></script></block-definition><block-definition s="Microsoft image descriptions of new photo" type="reporter" category="sensing"><comment x="0" y="0" w="519" collapsed="false">Takes a picture, asks Microsoft to classify it, and reports the response when it arrives.</comment><header></header><code></code><inputs></inputs><script><block s="doDeclareVariables"><list><l>response</l></list></block><block s="doSetVar"><l>response</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><custom-block s="Do %cmdRing with what Microsoft sees and show the photo %b"><block s="reifyScript"><script><block s="doSetVar"><l>response</l><block var="r"/></block></script><list><l>r</l></list></block><block s="reportBoolean"><l><bool>false</bool></l></block></custom-block><block s="doWaitUntil"><block s="reportNot"><block s="reportEquals"><block var="response"/><block s="reportBoolean"><l><bool>false</bool></l></block></block></block></block><block s="doReport"><block var="response"/></block></script></block-definition><block-definition s="Recognize new photo %'cloud provider'" type="reporter" category="sensing"><comment x="0" y="0" w="275" collapsed="false">Takes a photo and ask the cloud provider to recognize it.
Reports the response when it arrives.</comment><header></header><code></code><inputs><input type="%s"><options>Google
Microsoft
IBM Watson</options></input></inputs><script><block s="doDeclareVariables"><list><l>response</l></list></block><block s="doSetVar"><l>response</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><custom-block s="Ask %txt to say what it sees then %cmdRing and show the picture %s"><block var="cloud provider"/><block s="reifyScript"><script><block s="doSetVar"><l>response</l><block var="r"/></block></script><list><l>r</l></list></block><block s="reportBoolean"><l><bool>false</bool></l></block></custom-block><block s="doWaitUntil"><block s="reportNot"><block s="reportEquals"><block var="response"/><block s="reportBoolean"><l><bool>false</bool></l></block></block></block></block><block s="doReport"><block var="response"/></block></script></block-definition><block-definition s="Current image property from %'cloud provider' get %'property name or names'" type="reporter" category="sensing"><comment x="0" y="0" w="344" collapsed="false">Reports a property of the most recent recognition by the AI cloud provider.
Visit tinyurl.com/snap-ai-docs to learn more.</comment><header></header><code></code><inputs><input type="%txt"><options>Google
Microsoft
IBM Watson</options></input><input type="%mult%txt"></input></inputs><script><block s="doReport"><custom-block s="call eCraft2Learn reporter %txt with %mult%s"><l>image_property</l><list><block var="cloud provider"/><block var="property name or names"/></list></custom-block></block></script></block-definition><block-definition s="IBM Watson scores" type="reporter" category="sensing"><comment x="0" y="0" w="390" collapsed="true">Reports the confidence scores for the list reported by 'IBM Watson classes'.</comment><header></header><code></code><inputs></inputs><script><block s="doReport"><custom-block s="Current image property from %txt get %mult%txt"><l>IBM Watson</l><list><l>score</l></list></custom-block></block></script></block-definition><block-definition s="IBM Watson classes" type="reporter" category="sensing"><comment x="0" y="0" w="331" collapsed="false">Reports a list of tags from IBM Watson from the last time it was asked to recognize an image.</comment><header></header><code></code><inputs></inputs><script><block s="doReport"><custom-block s="Current image property from %txt get %mult%txt"><l>IBM Watson</l><list><l>class</l></list></custom-block></block></script></block-definition><block-definition s="Microsoft first caption" type="reporter" category="sensing"><comment x="0" y="0" w="403" collapsed="true">Reports the best caption from the last image recognition that Microsoft did.</comment><header></header><code></code><inputs></inputs><script><block s="doReport"><block s="reportListItem"><l>1</l><custom-block s="Current image property from %txt get %mult%txt"><l>Microsoft</l><list><l>description</l><l>captions</l><l>text</l></list></custom-block></block></block></script></block-definition><block-definition s="Google labels" type="reporter" category="sensing"><comment x="0" y="0" w="324" collapsed="true">Reports the tags from the last image recognition by Google.</comment><header></header><code></code><inputs></inputs><script><block s="doReport"><custom-block s="Current image property from %txt get %mult%txt"><l>Google</l><list><l>labelAnnotations</l><l>description</l></list></custom-block></block></script></block-definition><block-definition s="Google label scores" type="reporter" category="sensing"><comment x="0" y="0" w="297" collapsed="false">Reports the confidence scores of the 'Google labels' 
from the last image recognition by Google.</comment><header></header><code></code><inputs></inputs><script><block s="doReport"><custom-block s="Current image property from %txt get %mult%txt"><l>Google</l><list><l>labelAnnotations</l><l>score</l></list></custom-block></block></script></block-definition><block-definition s="Microsoft labels" type="reporter" category="sensing"><comment x="0" y="0" w="334" collapsed="true">Reports the tags of the last image recognition by Microsoft.</comment><header></header><code></code><inputs></inputs><script><block s="doReport"><custom-block s="Current image property from %txt get %mult%txt"><l>Microsoft</l><list><l>description</l><l>tags</l></list></custom-block></block></script></block-definition><block-definition s="Use camera to make costume" type="command" category="looks"><comment x="0" y="0" w="501" collapsed="true">Takes a picture, adds it as a costume of the current sprite, and switches to showing the new costume.</comment><header></header><code></code><inputs></inputs><script><custom-block s="run eCraft2Learn command %txt with %mult%s"><l>add_photo_as_costume</l><list></list></custom-block></script></block-definition><block-definition s="Show current photo %'cloud provider'" type="command" category="looks"><comment x="0" y="0" w="364" collapsed="false">Adds the photo taken when the AI cloud provider was last asked to reocognize. 
Photo is added as a costume of the current sprite.</comment><header></header><code></code><inputs><input type="%txt"><options>Google
Microsoft
IBM Watson</options></input></inputs><script><custom-block s="run eCraft2Learn command %txt with %mult%s"><l>add_current_photo_as_costume</l><list><block var="cloud provider"/></list></custom-block></script></block-definition><block-definition s="Watson image key" type="reporter" category="other"><header></header><code></code><inputs></inputs><script><block s="doReport"><l>Enter your key here</l></block></script></block-definition><block-definition s="Speak (using Mary TTS) %'message' with voice %'voice number' at %'volume' volume %'do when finished'" type="command" category="sound"><comment x="0" y="0" w="375" collapsed="false">Says message using 'voice number'. 'Volume' is between 0 and 1. If provided will run the blocks in 'do when finished' when speech has completed.</comment><header></header><code></code><inputs><input type="%txt"></input><input type="%n"></input><input type="%n"></input><input type="%cmdRing"></input></inputs><script><custom-block s="run eCraft2Learn command %txt with %mult%s"><l>speak_using_mary_tts</l><list><block var="message"/><block var="volume"/><block var="voice number"/><block var="do when finished"/></list></custom-block></script></block-definition><block-definition s="Get Mary TTS voices" type="reporter" category="sound"><header></header><code></code><inputs></inputs><script><block s="doReport"><custom-block s="call eCraft2Learn reporter %txt with %mult%s"><l>get_mary_tts_voice_names</l><list></list></custom-block></block></script></block-definition><block-definition s="Get Mary TTS voice name %'voice number'" type="reporter" category="sound"><header></header><code></code><inputs><input type="%n"></input></inputs><script><block s="doReport"><custom-block s="call eCraft2Learn reporter %txt with %mult%s"><l>get_mary_tts_voice_name</l><list><block var="voice number"/></list></custom-block></block></script></block-definition><block-definition s="Speak %'message' then %'to do when finished speaking'" type="command" category="sound"><header></header><code></code><inputs><input type="%txt"></input><input type="%cmdRing"></input></inputs><script><custom-block s="run eCraft2Learn command %txt with %mult%s"><l>speak_using_browser_voices_or_mary_tts</l><list><block var="message"/><block var="to do when finished speaking"/></list></custom-block></script></block-definition><block-definition s="Speak %'message'" type="command" category="sound"><comment x="0" y="0" w="331" collapsed="false">Use the browser's default voice or Mary TTS to speak the 'message'.</comment><header></header><code></code><inputs><input type="%txt"></input></inputs><script><custom-block s="run eCraft2Learn command %txt with %mult%s"><l>speak_using_browser_voices_or_mary_tts</l><list><block var="message"/><l></l></list></custom-block></script></block-definition><block-definition s="Speak with random voice %'message' then %'do when finished'" type="command" category="sound"><header></header><code></code><inputs><input type="%txt"></input><input type="%cmdRing"></input></inputs><script><block s="doDeclareVariables"><list><l>voice</l></list></block><block s="doIfElse"><block s="reportGreaterThan"><block s="reportListLength"><custom-block s="Get voice names"></custom-block></block><l>0</l></block><script><block s="doSetVar"><l>voice</l><block s="reportRandom"><l>1</l><block s="reportListLength"><custom-block s="Get voice names"></custom-block></block></block></block><block s="bubble"><block s="reportJoinWords"><list><l>I saying "</l><block var="message"/><l>" using </l><custom-block s="voice name of %n"><block var="voice"/></custom-block><l> with </l><block var="pitch"/><l>% pitch at </l><block var="rate"/><l>% rate.</l></list></block></block><custom-block s="speak %s then %cmdRing with pitch %n with rate %n with voice %n with volume %n in language %txt"><block var="message"/><block var="do when finished"/><l></l><l></l><block var="voice"/><l></l><l></l></custom-block></script><script><block s="doSetVar"><l>voice</l><block s="reportRandom"><l>1</l><block s="reportListLength"><custom-block s="Get Mary TTS voices"></custom-block></block></block></block><block s="bubble"><block s="reportJoinWords"><list><l>I saying "</l><block var="message"/><l>" using </l><custom-block s="Get Mary TTS voice name %n"><block var="voice"/></custom-block></list></block></block><block s="errorObsolete"></block></script></block></script></block-definition><block-definition s="Google image key" type="reporter" category="other"><header></header><code></code><inputs></inputs><script><block s="doReport"><l>Enter your key here</l></block></script></block-definition><block-definition s="Microsoft image key" type="reporter" category="other"><header></header><code></code><inputs></inputs><script><block s="doReport"><l>Enter your key here</l></block></script></block-definition><block-definition s="Microsoft speech key" type="reporter" category="other"><header></header><code></code><inputs></inputs><script><block s="doReport"><l>Enter your key here</l></block></script></block-definition><block-definition s="IBM Watson image key" type="reporter" category="other"><header></header><code></code><inputs></inputs><script><block s="doReport"><l>Enter your key here</l></block></script></block-definition><block-definition s="label %'text' of size %'size'" type="command" category="pen"><comment x="0" y="0" w="90" collapsed="false">LABEL will stamp text on the stage at the given font size. The direction of the text is the direction the sprite is facing, and color will match the pen color.</comment><header></header><code></code><inputs><input type="%txt">Hello!</input><input type="%n">12</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>text</l><l>size</l></list><l>var stage = this.parentThatIsA(StageMorph),
 context = stage.penTrails().getContext('2d'),
 rotation = radians(this.direction() - 90),
 trans = new Point(
 this.center().x - stage.left(),
 this.center().y - stage.top()
 ),
 isWarped = this.Warped,
 len,
 pos;

if (isWarped) {endWarp(); }
context.save();
context.font = size + 'px monospace';
context.textAlign = 'left';
context.textBaseline = 'alphabetic';
context.fillStyle = this.color.toString();
len = context.measureText(text).width;
trans = trans.multiplyBy(1 / stage.scale);
context.translate(trans.x, trans.y);
context.rotate(rotation);
context.fillText(text, 0, 0);
context.translate(-trans.x, -trans.y);
context.restore();
pos = new Point(
 len * Math.sin(radians(this.direction())),
 len * Math.cos(radians(this.direction())));
pos = pos.add(new Point(this.xPosition(), this.yPosition()));
this.gotoXY(pos.x, pos.y, false);
this.changed();
if (isWarped) {this.startWarp(); }
stage.changed();</l></block><list><block var="text"/><block var="size"/></list></block></script></block-definition><block-definition s="empty? %'data'" type="predicate" category="lists"><header></header><code></code><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportEquals"><block var="data"/><block s="reportNewList"><list></list></block></block></block></script></block-definition><block-definition s="keep items such that %'pred' from %'data'" type="reporter" category="lists"><header></header><code></code><inputs><input type="%predRing"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doIfElse"><block s="evaluate"><block var="pred"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><script><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="keep items such that %predRing from %l"><block var="pred"/><block s="reportCDR"><block var="data"/></block></custom-block></block></block></script><script><block s="doReport"><custom-block s="keep items such that %predRing from %l"><block var="pred"/><block s="reportCDR"><block var="data"/></block></custom-block></block></script></block></script></block></script></block-definition><block-definition s="combine with %'function' items of %'data'" type="reporter" category="lists"><header></header><code></code><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportCDR"><block var="data"/></block></custom-block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="data"/></block></block></script></block><block s="doReport"><block s="evaluate"><block var="function"/><list><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="combine with %repRing items of %l"><block var="function"/><block s="reportCDR"><block var="data"/></block></custom-block></list></block></block></script></block></script></block-definition><block-definition s="if %'test' then %'true' else %'false'" type="reporter" category="control"><header></header><code></code><inputs><input type="%b"></input><input type="%anyUE"></input><input type="%anyUE"></input></inputs><script><block s="doIfElse"><block var="test"/><script><block s="doReport"><block s="evaluate"><block var="true"/><list></list></block></block></script><script><block s="doReport"><block s="evaluate"><block var="false"/><list></list></block></block></script></block></script></block-definition><block-definition s="for %'i' = %'start' to %'end' %'action'" type="command" category="control"><header></header><code></code><inputs><input type="%upvar"></input><input type="%n">1</input><input type="%n">10</input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>step</l><l>tester</l></list></block><block s="doIfElse"><block s="reportGreaterThan"><block var="start"/><block var="end"/></block><script><block s="doSetVar"><l>step</l><l>-1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportLessThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script><script><block s="doSetVar"><l>step</l><l>1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportGreaterThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script></block><block s="doSetVar"><l>i</l><block var="start"/></block><block s="doUntil"><block s="evaluate"><block var="tester"/><list></list></block><script><block s="doRun"><block var="action"/><list></list></block><block s="doChangeVar"><l>i</l><block var="step"/></block></script></block></script></block-definition><block-definition s="join words %'words'" type="reporter" category="operators"><header></header><code></code><inputs><input type="%mult%txt"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportCDR"><block var="words"/></block></custom-block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="words"/></block></block></script></block><block s="doIf"><block s="reportEquals"><l></l><block s="reportListItem"><l>1</l><block var="words"/></block></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><l></l><block s="reportListItem"><l>2</l><block var="words"/></block></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="words"/></block><block s="reportCDR"><block s="reportCDR"><block var="words"/></block></block></block></custom-block></block></script></block><block s="doReport"><block s="reportJoinWords"><list><block s="reportListItem"><l>1</l><block var="words"/></block><l> </l><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></list></block></block></script></block></script><scripts><script x="229.00000299999996" y="196.77778077777774"><block s="reportJoinWords"><list><l></l><l></l></list></block></script></scripts></block-definition><block-definition s="list $arrowRight sentence %'data'" type="reporter" category="operators"><header></header><code></code><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doReport"><custom-block s="join words %mult%txt"><block var="data"/></custom-block></block></script></block></script></block-definition><block-definition s="sentence $arrowRight list %'text'" type="reporter" category="operators"><header></header><code></code><inputs><input type="%txt"></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportTextSplit"><block var="text"/><l><option>whitespace</option></l></block></block></script></block></script></block-definition><block-definition s="catch %'tag' %'action'" type="command" category="control"><header></header><code></code><inputs><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doCallCC"><block s="reifyScript"><script><block s="doSetVar"><l>tag</l><block var="cont"/></block><block s="doRun"><block var="action"/><list></list></block></script><list><l>cont</l></list></block></block><custom-block s="ignore %s"><l>3</l></custom-block></script></block-definition><block-definition s="throw %'cont'" type="command" category="control"><header></header><code></code><inputs><input type="%s">catchtag</input></inputs><script><block s="doRun"><block var="cont"/><list></list></block></script></block-definition><block-definition s="catch %'tag' %'value'" type="reporter" category="control"><header></header><code></code><inputs><input type="%upvar"></input><input type="%anyUE"></input></inputs><script><block s="doCallCC"><block s="reifyScript"><script><block s="doSetVar"><l>tag</l><block var="cont"/></block><block s="doReport"><block s="evaluate"><block var="value"/><list></list></block></block></script><list><l>cont</l></list></block></block></script></block-definition><block-definition s="throw %'tag' %'value'" type="command" category="control"><header></header><code></code><inputs><input type="%s">catchtag</input><input type="%s"></input></inputs><script><block s="doRun"><block var="tag"/><list><block var="value"/></list></block></script></block-definition><block-definition s="for each %'item' of %'data' %'action'" type="command" category="lists"><header></header><code></code><inputs><input type="%upvar"></input><input type="%l"></input><input type="%cs"></input></inputs><script><block s="doUntil"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doSetVar"><l>item</l><block s="reportListItem"><l>1</l><block var="data"/></block></block><block s="doRun"><block var="action"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><block s="doSetVar"><l>data</l><block s="reportCDR"><block var="data"/></block></block></script></block></script></block-definition><block-definition s="if %'test' do %'action' and pause all $pause-1-255-220-0" type="command" category="control"><header></header><code></code><inputs><input type="%boolUE"></input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>breakpoint</l></list></block><block s="doIf"><block s="evaluate"><block var="test"/><list></list></block><script><block s="doSetVar"><l>breakpoint</l><block var="test"/></block><block s="doShowVar"><l>breakpoint</l></block><block s="doRun"><block var="action"/><list></list></block><block s="doPauseAll"></block><block s="doHideVar"><l></l></block></script></block></script></block-definition><block-definition s="word $arrowRight list %'word'" type="reporter" category="operators"><header></header><code></code><inputs><input type="%txt"></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportTextSplit"><block var="word"/><l><option>letter</option></l></block></block></script></block></script></block-definition><block-definition s="ignore %'x'" type="command" category="control"><header></header><code></code><inputs><input type="%s"></input></inputs></block-definition><block-definition s="list $arrowRight word %'list'" type="reporter" category="operators"><header></header><code></code><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportJoinWords"><block var="list"/></block></block></script></block></script></block-definition><block-definition s="%'x'" type="reporter" category="operators"><header></header><code></code><inputs><input type="%s"></input></inputs><script><block s="doReport"><block var="x"/></block></script></block-definition><block-definition s="numbers from %'from' to %'to'" type="reporter" category="lists"><header></header><code></code><inputs><input type="%n">1</input><input type="%n">10</input></inputs><script><block s="doIf"><block s="reportGreaterThan"><block var="from"/><block var="to"/></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportCONS"><block var="from"/><custom-block s="numbers from %n to %n"><block s="reportSum"><block var="from"/><l>1</l></block><block var="to"/></custom-block></block></block></script></block-definition><block-definition s="map %'func' over %'data'" type="reporter" category="lists"><header></header><code></code><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doIf"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doReport"><block var="data"/></block></script></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="func"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><custom-block s="map %repRing over %l"><block var="func"/><block s="reportCDR"><block var="data"/></block></custom-block></block></block></script></block-definition><block-definition s="add association %'key' with %'value' to %'associations'" type="reporter" category="lists"><header></header><code></code><inputs><input type="%txt"></input><input type="%s"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="reportCONS"><block s="reportNewList"><list><block var="key"/><block var="value"/></list></block><block var="associations"/></block></block></script></block-definition><block-definition s="look up association %'key' in %'association' and if not found %'default value'" type="reporter" category="lists"><header></header><code></code><inputs><input type="%txt"></input><input type="%l"></input><input type="%s"></input></inputs><script><block s="doIfElse"><custom-block s="empty? %l"><block var="association"/></custom-block><script><block s="doReport"><block var="default value"/></block></script><script><block s="doIfElse"><block s="reportEquals"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="association"/></block></block><block var="key"/></block><script><block s="doReport"><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="association"/></block></block></block></script><script><block s="doReport"><custom-block s="look up association %txt in %l and if not found %s"><block var="key"/><block s="reportCDR"><block var="association"/></block><block var="default value"/></custom-block></block></script></block></script></block></script></block-definition><block-definition s="all but first letter %'word'" type="reporter" category="operators"><header></header><code></code><inputs><input type="%txt"></input></inputs><script><block s="doReport"><custom-block s="join words %l"><block s="reportCDR"><custom-block s="word $arrowRight list %txt"><block var="word"/></custom-block></block></custom-block></block></script></block-definition><block-definition s="all but first and ignore trailing punctuation %'word'" type="reporter" category="operators"><header></header><code></code><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>letters</l></list></block><block s="doSetVar"><l>letters</l><block s="reportCDR"><custom-block s="word $arrowRight list %txt"><block var="word"/></custom-block></block></block><block s="doIf"><block s="reportListContainsItem"><block s="reportNewList"><list><l>.</l><l>,</l><l>?</l><l>:</l><l>;</l></list></block><block s="reportListItem"><l><option>last</option></l><block var="letters"/></block></block><script><block s="doDeleteFromList"><l><option>last</option></l><block var="letters"/></block></script></block><block s="doReport"><custom-block s="list $arrowRight word %l"><block var="letters"/></custom-block></block></script></block-definition></blocks><variables><variable name="words"><list id="1568"><item><l>This</l></item><item><l>is</l></item><item><l>a</l></item><item><l>story</l></item><item><l>about</l></item><item><l>?GIRLS-NAME.</l></item><item><l>=GIRLS-NAME</l></item><item><l>is</l></item><item><l>?ADJECTIVE</l></item><item><l>and</l></item><item><l>very</l></item><item><l>?ADJECTIVE.</l></item><item><l>She</l></item><item><l>travelled</l></item><item><l>to</l></item><item><l>?PLACE-NAME.</l></item><item><l>There</l></item><item><l>she</l></item><item><l>met</l></item><item><l>?BOYS-NAME</l></item><item><l>who</l></item><item><l>was</l></item><item><l>a</l></item><item><l>?OCCUPATION</l></item><item><l>in</l></item><item><l>=PLACE-NAME.</l></item><item><l>=GIRLS-NAME</l></item><item><l>and</l></item><item><l>=BOYS-NAME</l></item><item><l>lived</l></item><item><l>?ADVERB</l></item><item><l>ever</l></item><item><l>after.</l></item></list></variable><variable name="word number"><l>6</l></variable><variable name="all sentences"><list id="1569"><item><l>This is a story about ?GIRLS-NAME. =GIRLS-NAME is ?ADJECTIVE and very ?ADJECTIVE. She travelled to ?PLACE-NAME. There she met ?BOYS-NAME who was a ?OCCUPATION in =PLACE-NAME. =GIRLS-NAME and =BOYS-NAME lived ?ADVERB ever after.</l></item></list></variable><variable name="last thing spoken"><l>ridiculously</l></variable><variable name="speech recognition error"><l>no-speech</l></variable><variable name="associations"><list id="1570"></list></variable></variables></project>