mirror of
https://github.com/ganelson/inform.git
synced 2024-06-01 16:08:07 +03:00
IE-0009 now implemented in draft form
This commit is contained in:
parent
257bf9cab6
commit
c970317683
|
@ -1,6 +1,6 @@
|
|||
# Inform 7
|
||||
|
||||
[Version](notes/versioning.md): 10.2.0-beta+6V70 'Krypton' (24 September 2022)
|
||||
[Version](notes/versioning.md): 10.2.0-beta+6V71 'Krypton' (26 September 2022)
|
||||
|
||||
## About Inform
|
||||
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
Prerelease: beta
|
||||
Build Date: 24 September 2022
|
||||
Build Number: 6V70
|
||||
Build Date: 26 September 2022
|
||||
Build Number: 6V71
|
||||
|
|
|
@ -124,6 +124,8 @@
|
|||
<span class="reserved-syntax">Array</span><span class="plain-syntax"> </span><span class="identifier-syntax">DirectorStackChoices</span><span class="plain-syntax"> --> </span><span class="identifier-syntax">MAX_BEAT_PERFORMANCE_NESTING</span><span class="plain-syntax">;</span>
|
||||
<span class="reserved-syntax">Array</span><span class="plain-syntax"> </span><span class="identifier-syntax">DirectorStackMin</span><span class="plain-syntax"> --> </span><span class="identifier-syntax">MAX_BEAT_PERFORMANCE_NESTING</span><span class="plain-syntax">;</span>
|
||||
<span class="reserved-syntax">Array</span><span class="plain-syntax"> </span><span class="identifier-syntax">DirectorStackStart</span><span class="plain-syntax"> --> </span><span class="identifier-syntax">MAX_BEAT_PERFORMANCE_NESTING</span><span class="plain-syntax">;</span>
|
||||
<span class="reserved-syntax">Array</span><span class="plain-syntax"> </span><span class="identifier-syntax">DirectorStackLastSpeaker</span><span class="plain-syntax"> --> </span><span class="identifier-syntax">MAX_BEAT_PERFORMANCE_NESTING</span><span class="plain-syntax">;</span>
|
||||
<span class="reserved-syntax">Array</span><span class="plain-syntax"> </span><span class="identifier-syntax">DirectorStackLastInterlocutor</span><span class="plain-syntax"> --> </span><span class="identifier-syntax">MAX_BEAT_PERFORMANCE_NESTING</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax">[ </span><span class="identifier-syntax">DirectorPush</span><span class="plain-syntax"> </span><span class="identifier-syntax">db</span><span class="plain-syntax"> </span><span class="identifier-syntax">max</span><span class="plain-syntax"> </span><span class="identifier-syntax">pc</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">director_sp</span><span class="plain-syntax"> >= </span><span class="identifier-syntax">MAX_BEAT_PERFORMANCE_NESTING</span><span class="plain-syntax">)</span>
|
||||
|
@ -134,6 +136,8 @@
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">DirectorStackPC</span><span class="plain-syntax">--></span><span class="identifier-syntax">director_sp</span><span class="plain-syntax"> = </span><span class="identifier-syntax">pc</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DirectorStackMin</span><span class="plain-syntax">--></span><span class="identifier-syntax">director_sp</span><span class="plain-syntax"> = </span><span class="identifier-syntax">max</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DirectorStackStart</span><span class="plain-syntax">--></span><span class="identifier-syntax">director_sp</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DirectorStackLastSpeaker</span><span class="plain-syntax">--></span><span class="identifier-syntax">director_sp</span><span class="plain-syntax"> = </span><span class="reserved-syntax">nothing</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DirectorStackLastInterlocutor</span><span class="plain-syntax">--></span><span class="identifier-syntax">director_sp</span><span class="plain-syntax"> = </span><span class="reserved-syntax">nothing</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">DirectorStackChoices</span><span class="plain-syntax">--></span><span class="identifier-syntax">director_sp</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DirectorStackChoices</span><span class="plain-syntax">--></span><span class="identifier-syntax">director_sp</span><span class="plain-syntax"> = </span><span class="identifier-syntax">BlkValueCreate</span><span class="plain-syntax">(</span><span class="identifier-syntax">LIST_OF_TY</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BlkValueWrite</span><span class="plain-syntax">(</span><span class="identifier-syntax">DirectorStackChoices</span><span class="plain-syntax">--></span><span class="identifier-syntax">director_sp</span><span class="plain-syntax">, </span><span class="identifier-syntax">LIST_ITEM_KOV_F</span><span class="plain-syntax">, </span><span class="identifier-syntax">DIALOGUE_CHOICE_TY</span><span class="plain-syntax">);</span>
|
||||
|
@ -149,7 +153,7 @@
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">debug_dialogue</span><span class="plain-syntax"> >= </span><span class="constant-syntax">2</span><span class="plain-syntax">) { </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"-- Pop to: "</span><span class="plain-syntax">; </span><span class="identifier-syntax">DirectorTraceStack</span><span class="plain-syntax">(); }</span>
|
||||
<span class="plain-syntax">];</span>
|
||||
|
||||
<span class="plain-syntax">[ </span><span class="identifier-syntax">DirectorPerform</span><span class="plain-syntax"> </span><span class="identifier-syntax">db</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">[ </span><span class="identifier-syntax">DirectorPerform</span><span class="plain-syntax"> </span><span class="identifier-syntax">db</span><span class="plain-syntax"> </span><span class="identifier-syntax">without_detecting</span><span class="plain-syntax"> </span><span class="identifier-syntax">tab</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">db</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">db</span><span class="plain-syntax"> > </span><span class="identifier-syntax">NO_DIALOGUE_BEATS</span><span class="plain-syntax">)) </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">debug_dialogue</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"-- Performing "</span><span class="plain-syntax">, (</span><span class="identifier-syntax">PrintDialogueBeatName</span><span class="plain-syntax">) </span><span class="identifier-syntax">db</span><span class="plain-syntax">, </span><span class="string-syntax">"^"</span><span class="plain-syntax">;</span>
|
||||
|
@ -158,13 +162,34 @@
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">latest_performed_beat</span><span class="plain-syntax"> = </span><span class="identifier-syntax">db</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DirectorPush</span><span class="plain-syntax">(</span><span class="identifier-syntax">db</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DirectorStackStart</span><span class="plain-syntax">-->(</span><span class="identifier-syntax">director_sp</span><span class="plain-syntax"> - </span><span class="constant-syntax">1</span><span class="plain-syntax">) = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">tab</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TableOfDialogueBeats</span><span class="plain-syntax">--></span><span class="identifier-syntax">db</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">tab</span><span class="plain-syntax">-->3) && (</span><span class="identifier-syntax">without_detecting</span><span class="plain-syntax"> == </span><span class="reserved-syntax">false</span><span class="plain-syntax">)) </span><span class="identifier-syntax">DetectSceneChange</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">tab</span><span class="plain-syntax">-->1) (</span><span class="identifier-syntax">tab</span><span class="plain-syntax">-->1)(</span><span class="identifier-syntax">DialogueTopicPool</span><span class="plain-syntax">, </span><span class="reserved-syntax">true</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DirectorRun</span><span class="plain-syntax">(0);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">tab</span><span class="plain-syntax">-->3) && (</span><span class="identifier-syntax">without_detecting</span><span class="plain-syntax"> == </span><span class="reserved-syntax">false</span><span class="plain-syntax">)) </span><span class="identifier-syntax">DetectSceneChange</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">debug_dialogue</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"-- Performance of "</span><span class="plain-syntax">, (</span><span class="identifier-syntax">PrintDialogueBeatName</span><span class="plain-syntax">) </span><span class="identifier-syntax">db</span><span class="plain-syntax">, </span><span class="string-syntax">" ended^"</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">];</span>
|
||||
|
||||
<span class="plain-syntax">[ </span><span class="identifier-syntax">DirectorTraceInst</span><span class="plain-syntax"> </span><span class="identifier-syntax">structure</span><span class="plain-syntax"> </span><span class="identifier-syntax">pc</span><span class="plain-syntax"> </span><span class="identifier-syntax">instruction</span><span class="plain-syntax"> </span><span class="identifier-syntax">depth</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">[ </span><span class="identifier-syntax">DirectorBeatBeingPerformed</span><span class="plain-syntax"> </span><span class="identifier-syntax">db</span><span class="plain-syntax"> </span><span class="identifier-syntax">x</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">db</span><span class="plain-syntax"> >= </span><span class="constant-syntax">1</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">db</span><span class="plain-syntax"> <= </span><span class="identifier-syntax">NO_DIALOGUE_BEATS</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">x</span><span class="plain-syntax">=0: </span><span class="identifier-syntax">x</span><span class="plain-syntax"><</span><span class="identifier-syntax">director_sp</span><span class="plain-syntax">: </span><span class="identifier-syntax">x</span><span class="plain-syntax">++)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">DirectorStackBeat</span><span class="plain-syntax">--></span><span class="identifier-syntax">x</span><span class="plain-syntax"> == </span><span class="identifier-syntax">db</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">rtrue</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">];</span>
|
||||
|
||||
<span class="plain-syntax">[ </span><span class="identifier-syntax">DirectorPerformTiedBeat</span><span class="plain-syntax"> </span><span class="identifier-syntax">db</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">DirectorBeatBeingPerformed</span><span class="plain-syntax">(</span><span class="identifier-syntax">db</span><span class="plain-syntax">) == </span><span class="reserved-syntax">false</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DirectorPerform</span><span class="plain-syntax">(</span><span class="identifier-syntax">db</span><span class="plain-syntax">, </span><span class="reserved-syntax">true</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">];</span>
|
||||
|
||||
<span class="plain-syntax">[ </span><span class="identifier-syntax">PERFORM_OPENING_BEAT_R</span><span class="plain-syntax"> </span><span class="identifier-syntax">db</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">db</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InitialSituation</span><span class="plain-syntax">--></span><span class="identifier-syntax">START_BEAT_INIS</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">db</span><span class="plain-syntax">) </span><span class="identifier-syntax">DirectorPerform</span><span class="plain-syntax">(</span><span class="identifier-syntax">db</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">];</span>
|
||||
|
||||
<span class="plain-syntax">[ </span><span class="identifier-syntax">DirectorTraceStack</span><span class="plain-syntax"> </span><span class="identifier-syntax">j</span><span class="plain-syntax"> </span><span class="identifier-syntax">structure</span><span class="plain-syntax"> </span><span class="identifier-syntax">pc</span><span class="plain-syntax"> </span><span class="identifier-syntax">instruction</span><span class="plain-syntax"> </span><span class="identifier-syntax">depth</span><span class="plain-syntax"> </span><span class="identifier-syntax">tab</span><span class="plain-syntax">;</span>
|
||||
|
@ -214,6 +239,7 @@
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">deadflag</span><span class="plain-syntax">) { </span><span class="identifier-syntax">director_sp</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">; </span><span class="reserved-syntax">return</span><span class="plain-syntax">; }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">LIST_OF_TY_GetLength</span><span class="plain-syntax">(</span><span class="identifier-syntax">DirectorStackChoices</span><span class="plain-syntax">-->(</span><span class="identifier-syntax">director_sp</span><span class="plain-syntax">-1)) > </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">tab</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TableOfDialogueBeats</span><span class="plain-syntax">-->(</span><span class="identifier-syntax">DirectorStackBeat</span><span class="plain-syntax">-->(</span><span class="identifier-syntax">director_sp</span><span class="plain-syntax">-1));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">tab</span><span class="plain-syntax">-->3) && (</span><span class="identifier-syntax">scene_status</span><span class="plain-syntax">-->(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">-->3 - </span><span class="constant-syntax">1</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">)) { </span><span class="identifier-syntax">DirectorPop</span><span class="plain-syntax">(); </span><span class="reserved-syntax">return</span><span class="plain-syntax">; }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">structure</span><span class="plain-syntax"> = </span><span class="identifier-syntax">tab</span><span class="plain-syntax">-->2;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">pc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">DirectorStackPC</span><span class="plain-syntax">-->(</span><span class="identifier-syntax">director_sp</span><span class="plain-syntax">-1);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">pc</span><span class="plain-syntax"> == -1) { </span><span class="identifier-syntax">DirectorPop</span><span class="plain-syntax">(); </span><span class="reserved-syntax">return</span><span class="plain-syntax">; }</span>
|
||||
|
@ -252,7 +278,84 @@
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">];</span>
|
||||
|
||||
<span class="plain-syntax">[ </span><span class="identifier-syntax">DirectorPerformLine</span><span class="plain-syntax"> </span><span class="identifier-syntax">dl</span><span class="plain-syntax"> </span><span class="identifier-syntax">tab</span><span class="plain-syntax"> </span><span class="identifier-syntax">fn</span><span class="plain-syntax"> </span><span class="identifier-syntax">action_fn</span><span class="plain-syntax"> </span><span class="identifier-syntax">speaker</span><span class="plain-syntax"> </span><span class="identifier-syntax">interlocutor</span><span class="plain-syntax"> </span><span class="identifier-syntax">manner</span><span class="plain-syntax"> </span><span class="identifier-syntax">mentioning</span><span class="plain-syntax">;</span>
|
||||
<span class="identifier-syntax">Global</span><span class="plain-syntax"> </span><span class="identifier-syntax">director_current_speaker</span><span class="plain-syntax">;</span>
|
||||
<span class="identifier-syntax">Global</span><span class="plain-syntax"> </span><span class="identifier-syntax">director_current_interlocutor</span><span class="plain-syntax">;</span>
|
||||
<span class="identifier-syntax">Global</span><span class="plain-syntax"> </span><span class="identifier-syntax">director_current_style</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">[ </span><span class="identifier-syntax">DirectorCurrentLineSpeaker</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">director_current_speaker</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">];</span>
|
||||
<span class="plain-syntax">[ </span><span class="identifier-syntax">DirectorCurrentLineInterlocutor</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">director_current_interlocutor</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">];</span>
|
||||
<span class="plain-syntax">[ </span><span class="identifier-syntax">DirectorCurrentLineStyle</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">director_current_style</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">];</span>
|
||||
|
||||
<span class="identifier-syntax">Global</span><span class="plain-syntax"> </span><span class="identifier-syntax">director_speaker_list</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">[ </span><span class="identifier-syntax">DirectorSelectConverser</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax"> </span><span class="identifier-syntax">select_speaker</span><span class="plain-syntax"> </span><span class="identifier-syntax">nonverbal</span><span class="plain-syntax"> </span><span class="identifier-syntax">speaker</span><span class="plain-syntax"> </span><span class="identifier-syntax">len</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> </span><span class="identifier-syntax">best</span><span class="plain-syntax"> </span><span class="identifier-syntax">best_score</span><span class="plain-syntax"> </span><span class="identifier-syntax">this_score</span><span class="plain-syntax"> </span><span class="identifier-syntax">x</span><span class="plain-syntax"> </span><span class="identifier-syntax">best_count</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">speaker</span><span class="plain-syntax"> = </span><span class="identifier-syntax">val</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="reserved-syntax">metaclass</span><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">) == </span><span class="identifier-syntax">Routine</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">director_speaker_list</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">director_speaker_list</span><span class="plain-syntax"> = </span><span class="identifier-syntax">BlkValueCreate</span><span class="plain-syntax">(</span><span class="identifier-syntax">LIST_OF_TY</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BlkValueWrite</span><span class="plain-syntax">(</span><span class="identifier-syntax">director_speaker_list</span><span class="plain-syntax">, </span><span class="identifier-syntax">LIST_ITEM_KOV_F</span><span class="plain-syntax">, </span><span class="identifier-syntax">OBJECT_TY</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LIST_OF_TY_SetLength</span><span class="plain-syntax">(</span><span class="identifier-syntax">director_speaker_list</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">objectloop</span><span class="plain-syntax"> (</span><span class="identifier-syntax">speaker</span><span class="plain-syntax"> </span><span class="reserved-syntax">ofclass</span><span class="plain-syntax"> </span><span class="identifier-syntax">K2_thing</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">speaker</span><span class="plain-syntax"> ~= </span><span class="identifier-syntax">player</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">val</span><span class="plain-syntax">(</span><span class="identifier-syntax">speaker</span><span class="plain-syntax">)))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LIST_OF_TY_InsertItem</span><span class="plain-syntax">(</span><span class="identifier-syntax">director_speaker_list</span><span class="plain-syntax">, </span><span class="identifier-syntax">speaker</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">len</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LIST_OF_TY_GetLength</span><span class="plain-syntax">(</span><span class="identifier-syntax">director_speaker_list</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">len</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="reserved-syntax">nothing</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">best</span><span class="plain-syntax"> = -1;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">best_score</span><span class="plain-syntax"> = -1;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">best_count</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax">=1: </span><span class="identifier-syntax">i</span><span class="plain-syntax"><=</span><span class="identifier-syntax">len</span><span class="plain-syntax">: </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">speaker</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LIST_OF_TY_GetItem</span><span class="plain-syntax">(</span><span class="identifier-syntax">director_speaker_list</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">, </span><span class="identifier-syntax">nonverbal</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">this_score</span><span class="plain-syntax"> = </span><span class="identifier-syntax">DirectorScoreConverser</span><span class="plain-syntax">(</span><span class="identifier-syntax">speaker</span><span class="plain-syntax">, </span><span class="identifier-syntax">select_speaker</span><span class="plain-syntax">, </span><span class="identifier-syntax">nonverbal</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">this_score</span><span class="plain-syntax"> > </span><span class="identifier-syntax">best_score</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">best</span><span class="plain-syntax"> = </span><span class="identifier-syntax">speaker</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">best_score</span><span class="plain-syntax"> = </span><span class="identifier-syntax">this_score</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">best_count</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">this_score</span><span class="plain-syntax"> == </span><span class="identifier-syntax">best_score</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">best_count</span><span class="plain-syntax">++;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="comment-syntax">print (name) speaker, " scores ", this_score, "^";</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">best_count</span><span class="plain-syntax"> < </span><span class="constant-syntax">1</span><span class="plain-syntax">) </span><span class="string-syntax">"*** impossibly low ***"</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="comment-syntax">print best_count, " option(s)^";</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">best_count</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">best</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">x</span><span class="plain-syntax"> = </span><span class="reserved-syntax">random</span><span class="plain-syntax">(</span><span class="identifier-syntax">best_count</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax">=1: </span><span class="identifier-syntax">i</span><span class="plain-syntax"><=</span><span class="identifier-syntax">len</span><span class="plain-syntax">: </span><span class="identifier-syntax">i</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">speaker</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LIST_OF_TY_GetItem</span><span class="plain-syntax">(</span><span class="identifier-syntax">director_speaker_list</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">this_score</span><span class="plain-syntax"> = </span><span class="identifier-syntax">DirectorScoreConverser</span><span class="plain-syntax">(</span><span class="identifier-syntax">speaker</span><span class="plain-syntax">, </span><span class="identifier-syntax">select_speaker</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">this_score</span><span class="plain-syntax"> == </span><span class="identifier-syntax">best_score</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">x</span><span class="plain-syntax">--;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">x</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">speaker</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">best</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">speaker</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">];</span>
|
||||
|
||||
<span class="plain-syntax">[ </span><span class="identifier-syntax">DirectorScoreConverser</span><span class="plain-syntax"> </span><span class="identifier-syntax">speaker</span><span class="plain-syntax"> </span><span class="identifier-syntax">select_speaker</span><span class="plain-syntax"> </span><span class="identifier-syntax">nonverbal</span><span class="plain-syntax"> </span><span class="identifier-syntax">this_score</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">select_speaker</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">OnStage</span><span class="plain-syntax">(</span><span class="identifier-syntax">speaker</span><span class="plain-syntax">, -1)) </span><span class="identifier-syntax">this_score</span><span class="plain-syntax"> = </span><span class="identifier-syntax">this_score</span><span class="plain-syntax"> + </span><span class="constant-syntax">16</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">DirectorTestAccessible</span><span class="plain-syntax">(</span><span class="identifier-syntax">player</span><span class="plain-syntax">, </span><span class="identifier-syntax">speaker</span><span class="plain-syntax">, </span><span class="identifier-syntax">nonverbal</span><span class="plain-syntax">)) </span><span class="identifier-syntax">this_score</span><span class="plain-syntax"> = </span><span class="identifier-syntax">this_score</span><span class="plain-syntax"> + </span><span class="constant-syntax">8</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">speaker</span><span class="plain-syntax"> == </span><span class="identifier-syntax">DirectorStackLastInterlocutor</span><span class="plain-syntax">-->(</span><span class="identifier-syntax">director_sp</span><span class="plain-syntax">-1)) </span><span class="identifier-syntax">this_score</span><span class="plain-syntax"> = </span><span class="identifier-syntax">this_score</span><span class="plain-syntax"> + </span><span class="constant-syntax">4</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">speaker</span><span class="plain-syntax"> </span><span class="reserved-syntax">ofclass</span><span class="plain-syntax"> </span><span class="identifier-syntax">K8_person</span><span class="plain-syntax">) </span><span class="identifier-syntax">this_score</span><span class="plain-syntax"> = </span><span class="identifier-syntax">this_score</span><span class="plain-syntax"> + </span><span class="constant-syntax">2</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">speaker</span><span class="plain-syntax"> ~= </span><span class="identifier-syntax">DirectorStackLastSpeaker</span><span class="plain-syntax">-->(</span><span class="identifier-syntax">director_sp</span><span class="plain-syntax">-1)) </span><span class="identifier-syntax">this_score</span><span class="plain-syntax"> = </span><span class="identifier-syntax">this_score</span><span class="plain-syntax"> + </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">OnStage</span><span class="plain-syntax">(</span><span class="identifier-syntax">speaker</span><span class="plain-syntax">, -1)) </span><span class="identifier-syntax">this_score</span><span class="plain-syntax"> = </span><span class="identifier-syntax">this_score</span><span class="plain-syntax"> + </span><span class="constant-syntax">16</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">DirectorTestAccessible</span><span class="plain-syntax">(</span><span class="identifier-syntax">player</span><span class="plain-syntax">, </span><span class="identifier-syntax">speaker</span><span class="plain-syntax">, </span><span class="identifier-syntax">nonverbal</span><span class="plain-syntax">)) </span><span class="identifier-syntax">this_score</span><span class="plain-syntax"> = </span><span class="identifier-syntax">this_score</span><span class="plain-syntax"> + </span><span class="constant-syntax">8</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">speaker</span><span class="plain-syntax"> == </span><span class="identifier-syntax">DirectorStackLastSpeaker</span><span class="plain-syntax">-->(</span><span class="identifier-syntax">director_sp</span><span class="plain-syntax">-1)) </span><span class="identifier-syntax">this_score</span><span class="plain-syntax"> = </span><span class="identifier-syntax">this_score</span><span class="plain-syntax"> + </span><span class="constant-syntax">4</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">speaker</span><span class="plain-syntax"> </span><span class="reserved-syntax">ofclass</span><span class="plain-syntax"> </span><span class="identifier-syntax">K8_person</span><span class="plain-syntax">) </span><span class="identifier-syntax">this_score</span><span class="plain-syntax"> = </span><span class="identifier-syntax">this_score</span><span class="plain-syntax"> + </span><span class="constant-syntax">2</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">speaker</span><span class="plain-syntax"> ~= </span><span class="identifier-syntax">DirectorStackLastInterlocutor</span><span class="plain-syntax">-->(</span><span class="identifier-syntax">director_sp</span><span class="plain-syntax">-1)) </span><span class="identifier-syntax">this_score</span><span class="plain-syntax"> = </span><span class="identifier-syntax">this_score</span><span class="plain-syntax"> + </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">this_score</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">];</span>
|
||||
|
||||
<span class="plain-syntax">[ </span><span class="identifier-syntax">DirectorPerformLine</span><span class="plain-syntax"> </span><span class="identifier-syntax">dl</span><span class="plain-syntax"> </span><span class="identifier-syntax">tab</span><span class="plain-syntax"> </span><span class="identifier-syntax">fn</span><span class="plain-syntax"> </span><span class="identifier-syntax">action_fn</span><span class="plain-syntax"> </span><span class="identifier-syntax">speaker</span><span class="plain-syntax"> </span><span class="identifier-syntax">interlocutor</span><span class="plain-syntax"> </span><span class="identifier-syntax">manner</span><span class="plain-syntax"> </span><span class="identifier-syntax">mentioning</span><span class="plain-syntax"> </span><span class="identifier-syntax">nonverbal</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">dl</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">line_performance_count</span><span class="plain-syntax">++;</span>
|
||||
<span class="plain-syntax"> </span><span class="comment-syntax">Must either be unperformed or recurring</span>
|
||||
|
@ -261,32 +364,15 @@
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">tab</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TableOfDialogueLines</span><span class="plain-syntax">--></span><span class="identifier-syntax">dl</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="comment-syntax">Must be available</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">fn</span><span class="plain-syntax"> = </span><span class="identifier-syntax">tab</span><span class="plain-syntax">-->0; </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">fn</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">fn</span><span class="plain-syntax">() == </span><span class="reserved-syntax">false</span><span class="plain-syntax">)) </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">tab</span><span class="plain-syntax">-->7) & </span><span class="constant-syntax">2</span><span class="plain-syntax">) </span><span class="identifier-syntax">nonverbal</span><span class="plain-syntax"> = </span><span class="reserved-syntax">true</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="comment-syntax">A speaker matching the description must be found, unless it's narration</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">speaker</span><span class="plain-syntax"> = </span><span class="identifier-syntax">tab</span><span class="plain-syntax">-->1;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">speaker</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="reserved-syntax">metaclass</span><span class="plain-syntax">(</span><span class="identifier-syntax">speaker</span><span class="plain-syntax">) == </span><span class="identifier-syntax">Routine</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">fn</span><span class="plain-syntax"> = </span><span class="identifier-syntax">speaker</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">objectloop</span><span class="plain-syntax"> (</span><span class="identifier-syntax">speaker</span><span class="plain-syntax"> </span><span class="reserved-syntax">ofclass</span><span class="plain-syntax"> </span><span class="identifier-syntax">K8_person</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">speaker</span><span class="plain-syntax"> ~= </span><span class="identifier-syntax">player</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">fn</span><span class="plain-syntax">(</span><span class="identifier-syntax">speaker</span><span class="plain-syntax">)))</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">speaker</span><span class="plain-syntax"> == </span><span class="reserved-syntax">nothing</span><span class="plain-syntax">) </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TestVisibility</span><span class="plain-syntax">(</span><span class="identifier-syntax">player</span><span class="plain-syntax">, </span><span class="identifier-syntax">speaker</span><span class="plain-syntax">) == </span><span class="reserved-syntax">false</span><span class="plain-syntax">) </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">tab</span><span class="plain-syntax">-->1) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">speaker</span><span class="plain-syntax"> = </span><span class="identifier-syntax">DirectorSelectConverser</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">-->1, </span><span class="reserved-syntax">true</span><span class="plain-syntax">, </span><span class="identifier-syntax">nonverbal</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">speaker</span><span class="plain-syntax"> == </span><span class="reserved-syntax">nothing</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">DirectorTestAccessible</span><span class="plain-syntax">(</span><span class="identifier-syntax">player</span><span class="plain-syntax">, </span><span class="identifier-syntax">speaker</span><span class="plain-syntax">, </span><span class="identifier-syntax">nonverbal</span><span class="plain-syntax">) == </span><span class="reserved-syntax">false</span><span class="plain-syntax">)) </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="comment-syntax">This is optional</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">interlocutor</span><span class="plain-syntax"> = </span><span class="identifier-syntax">tab</span><span class="plain-syntax">-->2;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">interlocutor</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="reserved-syntax">metaclass</span><span class="plain-syntax">(</span><span class="identifier-syntax">interlocutor</span><span class="plain-syntax">) == </span><span class="identifier-syntax">Routine</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">fn</span><span class="plain-syntax"> = </span><span class="identifier-syntax">interlocutor</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">objectloop</span><span class="plain-syntax"> (</span><span class="identifier-syntax">interlocutor</span><span class="plain-syntax"> </span><span class="reserved-syntax">ofclass</span><span class="plain-syntax"> </span><span class="identifier-syntax">K8_person</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">interlocutor</span><span class="plain-syntax"> ~= </span><span class="identifier-syntax">speaker</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">fn</span><span class="plain-syntax">(</span><span class="identifier-syntax">interlocutor</span><span class="plain-syntax">)))</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">interlocutor</span><span class="plain-syntax"> == </span><span class="reserved-syntax">nothing</span><span class="plain-syntax">) </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TestVisibility</span><span class="plain-syntax">(</span><span class="identifier-syntax">speaker</span><span class="plain-syntax">, </span><span class="identifier-syntax">interlocutor</span><span class="plain-syntax">) == </span><span class="reserved-syntax">false</span><span class="plain-syntax">) </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">tab</span><span class="plain-syntax">-->2) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">interlocutor</span><span class="plain-syntax"> = </span><span class="identifier-syntax">DirectorSelectConverser</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">-->2, </span><span class="reserved-syntax">false</span><span class="plain-syntax">, </span><span class="identifier-syntax">nonverbal</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">interlocutor</span><span class="plain-syntax"> == </span><span class="reserved-syntax">nothing</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">DirectorTestAccessible</span><span class="plain-syntax">(</span><span class="identifier-syntax">speaker</span><span class="plain-syntax">, </span><span class="identifier-syntax">interlocutor</span><span class="plain-syntax">, </span><span class="identifier-syntax">nonverbal</span><span class="plain-syntax">) == </span><span class="reserved-syntax">false</span><span class="plain-syntax">)) </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">manner</span><span class="plain-syntax"> = </span><span class="identifier-syntax">tab</span><span class="plain-syntax">-->4;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">action_fn</span><span class="plain-syntax"> = </span><span class="identifier-syntax">tab</span><span class="plain-syntax">-->6;</span>
|
||||
|
@ -294,23 +380,23 @@
|
|||
<span class="plain-syntax"> </span><span class="comment-syntax">If the line is "after ..." some action, that action must succeed</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">action_fn</span><span class="plain-syntax">) </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">action_fn</span><span class="plain-syntax">(3, </span><span class="identifier-syntax">speaker</span><span class="plain-syntax">) == </span><span class="reserved-syntax">false</span><span class="plain-syntax">) </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">speaker</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> (</span><span class="identifier-syntax">name</span><span class="plain-syntax">) </span><span class="identifier-syntax">speaker</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">manner</span><span class="plain-syntax"> ~= </span><span class="constant-syntax">1</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">interlocutor</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">" ("</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">manner</span><span class="plain-syntax"> ~= </span><span class="constant-syntax">1</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> (</span><span class="identifier-syntax">PrintPerformanceStyleName</span><span class="plain-syntax">) </span><span class="identifier-syntax">manner</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">interlocutor</span><span class="plain-syntax">) </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">" "</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">interlocutor</span><span class="plain-syntax">) </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"to "</span><span class="plain-syntax">, (</span><span class="identifier-syntax">name</span><span class="plain-syntax">) </span><span class="identifier-syntax">interlocutor</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">")"</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">": ~"</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DirectorStackLastSpeaker</span><span class="plain-syntax">-->(</span><span class="identifier-syntax">director_sp</span><span class="plain-syntax">-1) = </span><span class="identifier-syntax">speaker</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DirectorStackLastInterlocutor</span><span class="plain-syntax">-->(</span><span class="identifier-syntax">director_sp</span><span class="plain-syntax">-1) = </span><span class="identifier-syntax">interlocutor</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DivideParagraphPoint</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">director_current_speaker</span><span class="plain-syntax"> = </span><span class="identifier-syntax">speaker</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">director_current_interlocutor</span><span class="plain-syntax"> = </span><span class="identifier-syntax">interlocutor</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">director_current_style</span><span class="plain-syntax"> = </span><span class="identifier-syntax">manner</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">PERFORMING_DIALOGUE</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="string-syntax">"*** no activity ***"</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BeginActivity</span><span class="plain-syntax">(</span><span class="identifier-syntax">PERFORMING_DIALOGUE</span><span class="plain-syntax">, </span><span class="identifier-syntax">dl</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">ForActivity</span><span class="plain-syntax">(</span><span class="identifier-syntax">PERFORMING_DIALOGUE</span><span class="plain-syntax">, </span><span class="identifier-syntax">dl</span><span class="plain-syntax">)) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">RulebookFailed</span><span class="plain-syntax">())) </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EndActivity</span><span class="plain-syntax">(</span><span class="identifier-syntax">PERFORMING_DIALOGUE</span><span class="plain-syntax">, </span><span class="identifier-syntax">dl</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEXT_TY_Say</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">-->3);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">speaker</span><span class="plain-syntax">) </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"~"</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"^"</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">say__p</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">director_current_speaker</span><span class="plain-syntax"> = </span><span class="reserved-syntax">nothing</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">director_current_interlocutor</span><span class="plain-syntax"> = </span><span class="reserved-syntax">nothing</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">director_current_style</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DivideParagraphPoint</span><span class="plain-syntax">();</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WriteGProperty</span><span class="plain-syntax">(</span><span class="identifier-syntax">DIALOGUE_LINE_TY</span><span class="plain-syntax">, </span><span class="identifier-syntax">dl</span><span class="plain-syntax">, </span><span class="identifier-syntax">performed</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
|
@ -367,14 +453,14 @@
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="identifier-syntax">decision</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">1</span><span class="plain-syntax">: </span><span class="string-syntax">"*** blank dtd ***"</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">2</span><span class="plain-syntax">: </span><span class="identifier-syntax">DivideParagraphPoint</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">n</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">: </span><span class="identifier-syntax">n</span><span class="plain-syntax"> <= </span><span class="identifier-syntax">count</span><span class="plain-syntax">: </span><span class="identifier-syntax">n</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"("</span><span class="plain-syntax">, </span><span class="identifier-syntax">n</span><span class="plain-syntax">, </span><span class="string-syntax">") "</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LIST_OF_TY_GetItem</span><span class="plain-syntax">(</span><span class="identifier-syntax">list</span><span class="plain-syntax">, </span><span class="identifier-syntax">n</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">tab</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TableOfDialogueChoices</span><span class="plain-syntax">--></span><span class="identifier-syntax">dc</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEXT_TY_Say</span><span class="plain-syntax">(</span><span class="identifier-syntax">tab</span><span class="plain-syntax">-->2);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"^"</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">OFFERING_A_DIALOGUE_CHOICE</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="string-syntax">"*** no activity ***"</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BeginActivity</span><span class="plain-syntax">(</span><span class="identifier-syntax">OFFERING_A_DIALOGUE_CHOICE</span><span class="plain-syntax">, </span><span class="identifier-syntax">list</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">ForActivity</span><span class="plain-syntax">(</span><span class="identifier-syntax">OFFERING_A_DIALOGUE_CHOICE</span><span class="plain-syntax">, </span><span class="identifier-syntax">list</span><span class="plain-syntax">)) &&</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">RulebookFailed</span><span class="plain-syntax">())) </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EndActivity</span><span class="plain-syntax">(</span><span class="identifier-syntax">OFFERING_A_DIALOGUE_CHOICE</span><span class="plain-syntax">, </span><span class="identifier-syntax">list</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">print</span><span class="plain-syntax"> </span><span class="string-syntax">"^"</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DivideParagraphPoint</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">n</span><span class="plain-syntax"> = </span><span class="identifier-syntax">DirectorPickANumber</span><span class="plain-syntax">(</span><span class="identifier-syntax">count</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LIST_OF_TY_GetItem</span><span class="plain-syntax">(</span><span class="identifier-syntax">list</span><span class="plain-syntax">, </span><span class="identifier-syntax">n</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LIST_OF_TY_SetLength</span><span class="plain-syntax">(</span><span class="identifier-syntax">list</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
|
@ -656,21 +742,43 @@
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">director_is_active</span><span class="plain-syntax"> = </span><span class="reserved-syntax">false</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">];</span>
|
||||
|
||||
<span class="plain-syntax">[ </span><span class="identifier-syntax">DirectorTestAccessible</span><span class="plain-syntax"> </span><span class="identifier-syntax">from</span><span class="plain-syntax"> </span><span class="reserved-syntax">to</span><span class="plain-syntax"> </span><span class="identifier-syntax">nonverbal</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">nonverbal</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TestVisibility</span><span class="plain-syntax">(</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="reserved-syntax">to</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TestAudibility</span><span class="plain-syntax">(</span><span class="identifier-syntax">from</span><span class="plain-syntax">, </span><span class="reserved-syntax">to</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">];</span>
|
||||
|
||||
<span class="plain-syntax">[ </span><span class="identifier-syntax">DirectorBeatAvailableToPlayer</span><span class="plain-syntax"> </span><span class="identifier-syntax">db</span><span class="plain-syntax"> </span><span class="identifier-syntax">tab</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> </span><span class="identifier-syntax">speaker</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">GProperty</span><span class="plain-syntax">(</span><span class="identifier-syntax">DIALOGUE_BEAT_TY</span><span class="plain-syntax">, </span><span class="identifier-syntax">db</span><span class="plain-syntax">, </span><span class="identifier-syntax">performed</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) ||</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">GProperty</span><span class="plain-syntax">(</span><span class="identifier-syntax">DIALOGUE_BEAT_TY</span><span class="plain-syntax">, </span><span class="identifier-syntax">db</span><span class="plain-syntax">, </span><span class="identifier-syntax">recurring</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">tab</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TableOfDialogueBeats</span><span class="plain-syntax">--></span><span class="identifier-syntax">db</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> = </span><span class="constant-syntax">3</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> = </span><span class="constant-syntax">4</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">while</span><span class="plain-syntax"> (</span><span class="reserved-syntax">true</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">speaker</span><span class="plain-syntax"> = </span><span class="identifier-syntax">tab</span><span class="plain-syntax">--></span><span class="identifier-syntax">i</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">speaker</span><span class="plain-syntax"> == </span><span class="reserved-syntax">nothing</span><span class="plain-syntax">) </span><span class="reserved-syntax">rtrue</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TestVisibility</span><span class="plain-syntax">(</span><span class="identifier-syntax">player</span><span class="plain-syntax">, </span><span class="identifier-syntax">speaker</span><span class="plain-syntax">) == </span><span class="reserved-syntax">false</span><span class="plain-syntax">) </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">TestAudibility</span><span class="plain-syntax">(</span><span class="identifier-syntax">player</span><span class="plain-syntax">, </span><span class="identifier-syntax">speaker</span><span class="plain-syntax">) == </span><span class="reserved-syntax">false</span><span class="plain-syntax">) </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">++;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">];</span>
|
||||
|
||||
<span class="plain-syntax">[ </span><span class="identifier-syntax">DirectorLiveRequiredList</span><span class="plain-syntax"> </span><span class="identifier-syntax">list</span><span class="plain-syntax"> </span><span class="identifier-syntax">db</span><span class="plain-syntax"> </span><span class="identifier-syntax">len</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> </span><span class="identifier-syntax">tab</span><span class="plain-syntax"> </span><span class="identifier-syntax">speaker</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">list</span><span class="plain-syntax">==0) || (</span><span class="identifier-syntax">BlkValueWeakKind</span><span class="plain-syntax">(</span><span class="identifier-syntax">list</span><span class="plain-syntax">) ~= </span><span class="identifier-syntax">LIST_OF_TY</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">len</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">tab</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TableOfDialogueBeats</span><span class="plain-syntax">--></span><span class="identifier-syntax">db</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> = </span><span class="constant-syntax">4</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">while</span><span class="plain-syntax"> (</span><span class="reserved-syntax">true</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">speaker</span><span class="plain-syntax"> = </span><span class="identifier-syntax">tab</span><span class="plain-syntax">--></span><span class="identifier-syntax">i</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">speaker</span><span class="plain-syntax"> == </span><span class="reserved-syntax">nothing</span><span class="plain-syntax">) </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">len</span><span class="plain-syntax">++;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">++;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LIST_OF_TY_SetLength</span><span class="plain-syntax">(</span><span class="identifier-syntax">list</span><span class="plain-syntax">, </span><span class="identifier-syntax">len</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax">=0: </span><span class="identifier-syntax">i</span><span class="plain-syntax"><</span><span class="identifier-syntax">len</span><span class="plain-syntax">: </span><span class="identifier-syntax">i</span><span class="plain-syntax">++)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LIST_OF_TY_PutItem</span><span class="plain-syntax">(</span><span class="identifier-syntax">list</span><span class="plain-syntax">, </span><span class="identifier-syntax">i</span><span class="plain-syntax">+1, </span><span class="identifier-syntax">tab</span><span class="plain-syntax">-->(</span><span class="identifier-syntax">i</span><span class="plain-syntax">+4));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">list</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">];</span>
|
||||
|
||||
<span class="plain-syntax">[ </span><span class="identifier-syntax">DIALOGUE_DIRECTION_R</span><span class="plain-syntax"> </span><span class="identifier-syntax">db</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> </span><span class="identifier-syntax">topic</span><span class="plain-syntax"> </span><span class="identifier-syntax">fn</span><span class="plain-syntax"> </span><span class="identifier-syntax">tab</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">director_is_active</span><span class="plain-syntax"> == </span><span class="reserved-syntax">false</span><span class="plain-syntax">) </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="comment-syntax">If nothing much has happened this turn...</span>
|
||||
|
@ -681,7 +789,11 @@
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">fn</span><span class="plain-syntax"> = </span><span class="identifier-syntax">tab</span><span class="plain-syntax">-->0;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">fn</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) || ((</span><span class="identifier-syntax">fn</span><span class="plain-syntax">)(</span><span class="identifier-syntax">latest_performed_beat</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">fn</span><span class="plain-syntax"> = </span><span class="identifier-syntax">tab</span><span class="plain-syntax">-->1;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">fn</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">fn</span><span class="plain-syntax">(</span><span class="identifier-syntax">DialogueTopicPool</span><span class="plain-syntax">))) { </span><span class="identifier-syntax">DirectorPerform</span><span class="plain-syntax">(</span><span class="identifier-syntax">db</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">; }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">fn</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">fn</span><span class="plain-syntax">(</span><span class="identifier-syntax">DialogueTopicPool</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DirectorPerform</span><span class="plain-syntax">(</span><span class="identifier-syntax">db</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">line_performance_count</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -689,7 +801,9 @@
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">GProperty</span><span class="plain-syntax">(</span><span class="identifier-syntax">DIALOGUE_BEAT_TY</span><span class="plain-syntax">, </span><span class="identifier-syntax">db</span><span class="plain-syntax">, </span><span class="identifier-syntax">spontaneous</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">DirectorBeatAvailableToPlayer</span><span class="plain-syntax">(</span><span class="identifier-syntax">db</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DirectorEmptyLiveSubjectList</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DirectorPerform</span><span class="plain-syntax">(</span><span class="identifier-syntax">db</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DirectorPerform</span><span class="plain-syntax">(</span><span class="identifier-syntax">db</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">line_performance_count</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -698,6 +812,20 @@
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">];</span>
|
||||
|
||||
<span class="plain-syntax">[ </span><span class="identifier-syntax">DirectorIntervenes</span><span class="plain-syntax"> </span><span class="identifier-syntax">obj</span><span class="plain-syntax"> </span><span class="identifier-syntax">tab</span><span class="plain-syntax"> </span><span class="identifier-syntax">fn</span><span class="plain-syntax"> </span><span class="identifier-syntax">db</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">db</span><span class="plain-syntax">=1: </span><span class="identifier-syntax">db</span><span class="plain-syntax"><=</span><span class="identifier-syntax">NO_DIALOGUE_BEATS</span><span class="plain-syntax">: </span><span class="identifier-syntax">db</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">DirectorBeatAvailableToPlayer</span><span class="plain-syntax">(</span><span class="identifier-syntax">db</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">tab</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TableOfDialogueBeats</span><span class="plain-syntax">--></span><span class="identifier-syntax">db</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">fn</span><span class="plain-syntax"> = </span><span class="identifier-syntax">tab</span><span class="plain-syntax">-->0;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">fn</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) || ((</span><span class="identifier-syntax">fn</span><span class="plain-syntax">)(</span><span class="identifier-syntax">latest_performed_beat</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">fn</span><span class="plain-syntax"> = </span><span class="identifier-syntax">tab</span><span class="plain-syntax">-->1;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">fn</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">fn</span><span class="plain-syntax">(</span><span class="identifier-syntax">DialogueTopicPool</span><span class="plain-syntax">))) { </span><span class="identifier-syntax">DirectorPerform</span><span class="plain-syntax">(</span><span class="identifier-syntax">db</span><span class="plain-syntax">); </span><span class="reserved-syntax">rtrue</span><span class="plain-syntax">; }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">];</span>
|
||||
|
||||
<span class="plain-syntax">[ </span><span class="identifier-syntax">DirectorTestLineContainment</span><span class="plain-syntax"> </span><span class="identifier-syntax">dl</span><span class="plain-syntax"> </span><span class="identifier-syntax">db</span><span class="plain-syntax"> </span><span class="identifier-syntax">tab</span><span class="plain-syntax"> </span><span class="identifier-syntax">structure</span><span class="plain-syntax"> </span><span class="identifier-syntax">pc</span><span class="plain-syntax"> </span><span class="identifier-syntax">instruction</span><span class="plain-syntax">;</span>
|
||||
<span class="comment-syntax">print "I.e. whether ", (PrintDialogueLineName) dl, " is in ", (PrintDialogueBeatName) db, "^";</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">db</span><span class="plain-syntax"> < </span><span class="constant-syntax">1</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">db</span><span class="plain-syntax"> > </span><span class="identifier-syntax">NO_DIALOGUE_BEATS</span><span class="plain-syntax">)) </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
|
||||
|
@ -713,6 +841,50 @@
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">];</span>
|
||||
|
||||
<span class="plain-syntax">[ </span><span class="identifier-syntax">DirectorLineContent</span><span class="plain-syntax"> </span><span class="identifier-syntax">dl</span><span class="plain-syntax"> </span><span class="identifier-syntax">text</span><span class="plain-syntax"> </span><span class="identifier-syntax">tab</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">dl</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">dl</span><span class="plain-syntax"> > </span><span class="identifier-syntax">NO_DIALOGUE_LINES</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">text</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">tab</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TableOfDialogueLines</span><span class="plain-syntax">--></span><span class="identifier-syntax">dl</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BlkValueCopy</span><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">tab</span><span class="plain-syntax">-->3);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">text</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">];</span>
|
||||
|
||||
<span class="plain-syntax">[ </span><span class="identifier-syntax">DirectorLineNarrated</span><span class="plain-syntax"> </span><span class="identifier-syntax">dl</span><span class="plain-syntax"> </span><span class="identifier-syntax">tab</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">dl</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">dl</span><span class="plain-syntax"> > </span><span class="identifier-syntax">NO_DIALOGUE_LINES</span><span class="plain-syntax">)) </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">tab</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TableOfDialogueLines</span><span class="plain-syntax">--></span><span class="identifier-syntax">dl</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">tab</span><span class="plain-syntax">-->1 == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">rtrue</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">];</span>
|
||||
|
||||
<span class="plain-syntax">[ </span><span class="identifier-syntax">DirectorLineNonverbal</span><span class="plain-syntax"> </span><span class="identifier-syntax">dl</span><span class="plain-syntax"> </span><span class="identifier-syntax">tab</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">dl</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">dl</span><span class="plain-syntax"> > </span><span class="identifier-syntax">NO_DIALOGUE_LINES</span><span class="plain-syntax">)) </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">tab</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TableOfDialogueLines</span><span class="plain-syntax">--></span><span class="identifier-syntax">dl</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">tab</span><span class="plain-syntax">-->7) & </span><span class="constant-syntax">2</span><span class="plain-syntax">) </span><span class="reserved-syntax">rtrue</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">];</span>
|
||||
|
||||
<span class="plain-syntax">[ </span><span class="identifier-syntax">DirectorLineStoryEnding</span><span class="plain-syntax"> </span><span class="identifier-syntax">dl</span><span class="plain-syntax"> </span><span class="identifier-syntax">tab</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">dl</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">dl</span><span class="plain-syntax"> > </span><span class="identifier-syntax">NO_DIALOGUE_LINES</span><span class="plain-syntax">)) </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">tab</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TableOfDialogueLines</span><span class="plain-syntax">--></span><span class="identifier-syntax">dl</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">tab</span><span class="plain-syntax">-->7) & </span><span class="constant-syntax">12</span><span class="plain-syntax">) </span><span class="reserved-syntax">rtrue</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">];</span>
|
||||
|
||||
<span class="plain-syntax">[ </span><span class="identifier-syntax">DirectorChoiceContent</span><span class="plain-syntax"> </span><span class="identifier-syntax">dc</span><span class="plain-syntax"> </span><span class="identifier-syntax">text</span><span class="plain-syntax"> </span><span class="identifier-syntax">tab</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">dc</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">dc</span><span class="plain-syntax"> > </span><span class="identifier-syntax">NO_DIALOGUE_CHOICES</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">text</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">tab</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TableOfDialogueChoices</span><span class="plain-syntax">--></span><span class="identifier-syntax">dc</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BlkValueCopy</span><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">tab</span><span class="plain-syntax">-->2);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">text</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">];</span>
|
||||
|
||||
<span class="plain-syntax">[ </span><span class="identifier-syntax">DirectorChoiceFlowing</span><span class="plain-syntax"> </span><span class="identifier-syntax">dc</span><span class="plain-syntax"> </span><span class="identifier-syntax">tab</span><span class="plain-syntax"> </span><span class="identifier-syntax">type</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">dc</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">dc</span><span class="plain-syntax"> > </span><span class="identifier-syntax">NO_DIALOGUE_CHOICES</span><span class="plain-syntax">)) </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">tab</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TableOfDialogueChoices</span><span class="plain-syntax">--></span><span class="identifier-syntax">dc</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">type</span><span class="plain-syntax"> = </span><span class="identifier-syntax">tab</span><span class="plain-syntax">-->0;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">type</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NEW_CHOICE_DSEL</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="identifier-syntax">AGAIN_DSEL</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="identifier-syntax">STOP_DSEL</span><span class="plain-syntax"> </span><span class="reserved-syntax">or</span><span class="plain-syntax"> </span><span class="identifier-syntax">PERFORM_DSEL</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">rtrue</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">rfalse</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">];</span>
|
||||
</pre>
|
||||
<!--End of weave-->
|
||||
|
||||
|
|
|
@ -65,7 +65,7 @@ MathJax = {
|
|||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../extensions.html">Kits</a></li><li><a href="index.html">WorldModelKit</a></li><li><b>WorldModel Template</b></li></ul></div>
|
||||
<p class="purpose">Testing and changing the fundamental spatial relations.</p>
|
||||
|
||||
<ul class="toc"><li><a href="S-wrl.html#SP1">§1. The Core Tree</a></li><li><a href="S-wrl.html#SP2">§2. Climbing the Core Tree</a></li><li><a href="S-wrl.html#SP3">§3. To Decide Whether In</a></li><li><a href="S-wrl.html#SP4">§4. Containment Relation</a></li><li><a href="S-wrl.html#SP5">§5. Support Relation</a></li><li><a href="S-wrl.html#SP6">§6. Carrying Relation</a></li><li><a href="S-wrl.html#SP7">§7. Wearing Relation</a></li><li><a href="S-wrl.html#SP8">§8. Having Relation</a></li><li><a href="S-wrl.html#SP9">§9. Making Parts</a></li><li><a href="S-wrl.html#SP10">§10. Movements</a></li><li><a href="S-wrl.html#SP11">§11. On Stage</a></li><li><a href="S-wrl.html#SP12">§12. Moving the Player</a></li><li><a href="S-wrl.html#SP13">§13. Move During Going</a></li><li><a href="S-wrl.html#SP14">§14. Being Everywhere</a></li><li><a href="S-wrl.html#SP15">§15. Testing Everywhere</a></li><li><a href="S-wrl.html#SP16">§16. Changing the Player</a></li><li><a href="S-wrl.html#SP17">§17. Floating Objects</a></li><li><a href="S-wrl.html#SP18">§18. Backdrop Location</a></li><li><a href="S-wrl.html#SP19">§19. Wearing Clothes</a></li><li><a href="S-wrl.html#SP20">§20. Map Connections</a></li><li><a href="S-wrl.html#SP21">§21. Adjacency Relation</a></li><li><a href="S-wrl.html#SP22">§22. Regional Containment Relation</a></li><li><a href="S-wrl.html#SP23">§23. Doors</a></li><li><a href="S-wrl.html#SP24">§24. Visibility Relation</a></li><li><a href="S-wrl.html#SP25">§25. Touchability Relation</a></li><li><a href="S-wrl.html#SP26">§26. Concealment Relation</a></li></ul><hr class="tocbar">
|
||||
<ul class="toc"><li><a href="S-wrl.html#SP1">§1. The Core Tree</a></li><li><a href="S-wrl.html#SP2">§2. Climbing the Core Tree</a></li><li><a href="S-wrl.html#SP3">§3. To Decide Whether In</a></li><li><a href="S-wrl.html#SP4">§4. Containment Relation</a></li><li><a href="S-wrl.html#SP5">§5. Support Relation</a></li><li><a href="S-wrl.html#SP6">§6. Carrying Relation</a></li><li><a href="S-wrl.html#SP7">§7. Wearing Relation</a></li><li><a href="S-wrl.html#SP8">§8. Having Relation</a></li><li><a href="S-wrl.html#SP9">§9. Making Parts</a></li><li><a href="S-wrl.html#SP10">§10. Movements</a></li><li><a href="S-wrl.html#SP11">§11. On Stage</a></li><li><a href="S-wrl.html#SP12">§12. Moving the Player</a></li><li><a href="S-wrl.html#SP13">§13. Move During Going</a></li><li><a href="S-wrl.html#SP14">§14. Being Everywhere</a></li><li><a href="S-wrl.html#SP15">§15. Testing Everywhere</a></li><li><a href="S-wrl.html#SP16">§16. Changing the Player</a></li><li><a href="S-wrl.html#SP17">§17. Floating Objects</a></li><li><a href="S-wrl.html#SP18">§18. Backdrop Location</a></li><li><a href="S-wrl.html#SP19">§19. Wearing Clothes</a></li><li><a href="S-wrl.html#SP20">§20. Map Connections</a></li><li><a href="S-wrl.html#SP21">§21. Adjacency Relation</a></li><li><a href="S-wrl.html#SP22">§22. Regional Containment Relation</a></li><li><a href="S-wrl.html#SP23">§23. Doors</a></li><li><a href="S-wrl.html#SP24">§24. Visibility Relation</a></li><li><a href="S-wrl.html#SP25">§25. Audibility Relation</a></li><li><a href="S-wrl.html#SP26">§26. Touchability Relation</a></li><li><a href="S-wrl.html#SP27">§27. Concealment Relation</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. The Core Tree. </b>Whereas I6 traditionally has a simple object tree hierarchy for containment,
|
||||
support, carrying and so on, the I7 template also uses the <span class="extract"><span class="extract-syntax">component_*</span></span>
|
||||
|
@ -842,7 +842,17 @@ it's a relation which cannot be asserted true or false.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TestScope</span><span class="plain-syntax">(</span><span class="identifier-syntax">B</span><span class="plain-syntax">, </span><span class="identifier-syntax">A</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">];</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP25" class="paragraph-anchor"></a><b>§25. Touchability Relation. </b>We use <span class="extract"><span class="extract-syntax">ObjectIsUntouchable</span></span> to decide whether there is physical access from
|
||||
<p class="commentary firstcommentary"><a id="SP25" class="paragraph-anchor"></a><b>§25. Audibility Relation. </b>For now, this is the same test as visibility except that it does not require
|
||||
light to see by.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax">[ </span><span class="identifier-syntax">TestAudibility</span><span class="plain-syntax"> </span><span class="identifier-syntax">A</span><span class="plain-syntax"> </span><span class="identifier-syntax">B</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">suppress_scope_loops</span><span class="plain-syntax">) </span><span class="reserved-syntax">rtrue</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TestScope</span><span class="plain-syntax">(</span><span class="identifier-syntax">B</span><span class="plain-syntax">, </span><span class="identifier-syntax">A</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">];</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP26" class="paragraph-anchor"></a><b>§26. Touchability Relation. </b>We use <span class="extract"><span class="extract-syntax">ObjectIsUntouchable</span></span> to decide whether there is physical access from
|
||||
A to B; it's a relation which cannot be asserted true or false.
|
||||
</p>
|
||||
|
||||
|
@ -857,7 +867,7 @@ A to B; it's a relation which cannot be asserted true or false.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">rtrue</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">];</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP26" class="paragraph-anchor"></a><b>§26. Concealment Relation. </b>An activity determines whether one object conceals another; it's a relation
|
||||
<p class="commentary firstcommentary"><a id="SP27" class="paragraph-anchor"></a><b>§27. Concealment Relation. </b>An activity determines whether one object conceals another; it's a relation
|
||||
which cannot be asserted true or false.
|
||||
</p>
|
||||
|
||||
|
|
|
@ -246,11 +246,12 @@ anything. We need to give the build-in "verb-means" meaning to "to mean":
|
|||
<span class="definition-keyword">define</span> <span class="constant-syntax">WEARING_RELATION_NAME</span><span class="plain-syntax"> </span><span class="constant-syntax">16</span>
|
||||
<span class="definition-keyword">define</span> <span class="constant-syntax">POSSESSION_RELATION_NAME</span><span class="plain-syntax"> </span><span class="constant-syntax">17</span>
|
||||
<span class="definition-keyword">define</span> <span class="constant-syntax">VISIBILITY_RELATION_NAME</span><span class="plain-syntax"> </span><span class="constant-syntax">18</span>
|
||||
<span class="definition-keyword">define</span> <span class="constant-syntax">TOUCHABILITY_RELATION_NAME</span><span class="plain-syntax"> </span><span class="constant-syntax">19</span>
|
||||
<span class="definition-keyword">define</span> <span class="constant-syntax">CONCEALMENT_RELATION_NAME</span><span class="plain-syntax"> </span><span class="constant-syntax">20</span>
|
||||
<span class="definition-keyword">define</span> <span class="constant-syntax">ENCLOSURE_RELATION_NAME</span><span class="plain-syntax"> </span><span class="constant-syntax">21</span>
|
||||
<span class="definition-keyword">define</span> <span class="constant-syntax">ROOM_CONTAINMENT_RELATION_NAME</span><span class="plain-syntax"> </span><span class="constant-syntax">22</span>
|
||||
<span class="definition-keyword">define</span> <span class="constant-syntax">DIALOGUE_CONTAINMENT_RELATION_NAME</span><span class="plain-syntax"> </span><span class="constant-syntax">23</span>
|
||||
<span class="definition-keyword">define</span> <span class="constant-syntax">AUDIBILITY_RELATION_NAME</span><span class="plain-syntax"> </span><span class="constant-syntax">19</span>
|
||||
<span class="definition-keyword">define</span> <span class="constant-syntax">TOUCHABILITY_RELATION_NAME</span><span class="plain-syntax"> </span><span class="constant-syntax">20</span>
|
||||
<span class="definition-keyword">define</span> <span class="constant-syntax">CONCEALMENT_RELATION_NAME</span><span class="plain-syntax"> </span><span class="constant-syntax">21</span>
|
||||
<span class="definition-keyword">define</span> <span class="constant-syntax">ENCLOSURE_RELATION_NAME</span><span class="plain-syntax"> </span><span class="constant-syntax">22</span>
|
||||
<span class="definition-keyword">define</span> <span class="constant-syntax">ROOM_CONTAINMENT_RELATION_NAME</span><span class="plain-syntax"> </span><span class="constant-syntax">23</span>
|
||||
<span class="definition-keyword">define</span> <span class="constant-syntax">DIALOGUE_CONTAINMENT_RELATION_NAME</span><span class="plain-syntax"> </span><span class="constant-syntax">24</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. </b>These are the English names of the built-in relations. The use of hyphenation
|
||||
here is a fossil from the times when Inform allowed only single-word relation
|
||||
|
@ -280,6 +281,7 @@ other languages may as well drop the hyphens.
|
|||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">wearing</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">possession</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">visibility</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">audibility</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">touchability</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">concealment</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">enclosure</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span>
|
||||
|
|
|
@ -217,6 +217,7 @@ organisation, and are not directly functional in themselves.
|
|||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">DIALOGUE_CUE_NT:</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">global_pass_state</span><span class="plain-syntax">.</span><span class="element-syntax">pass</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">DialogueBeats::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">global_pass_state</span><span class="plain-syntax">.</span><span class="element-syntax">pass</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) </span><span class="identifier-syntax">DialogueBeats::make_tied_scene</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">DIALOGUE_CHOICE_NT:</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">global_pass_state</span><span class="plain-syntax">.</span><span class="element-syntax">pass</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">DialogueChoices::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -879,6 +879,8 @@ to abbreviated forms of object names are normally allowed.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::forbid_assertion_creation</span><span class="plain-syntax">(</span><span class="identifier-syntax">create_as</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="4-tc.html#SP4_4_2_3_1" class="named-paragraph-link"><span class="named-paragraph">Issue a problem for certain forbidden kinds</span><span class="named-paragraph-number">4.4.2.3.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">pcalc_prop</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop</span><span class="plain-syntax"> = </span><a href="8-cu.html#SP1" class="function-link"><span class="function-syntax">Propositions::Abstract::to_create_something</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">create_as</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">pcalc_prop</span><span class="plain-syntax"> *</span><span class="identifier-syntax">such_that</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_creation_proposition</span><span class="plain-syntax">(</span><span class="identifier-syntax">governor</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">such_that</span><span class="plain-syntax">) </span><span class="identifier-syntax">prop</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Propositions::concatenate</span><span class="plain-syntax">(</span><span class="identifier-syntax">prop</span><span class="plain-syntax">, </span><span class="identifier-syntax">such_that</span><span class="plain-syntax">);</span>
|
||||
|
@ -1013,6 +1015,16 @@ if nothing has already been said:
|
|||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="4-tc.html#SP4_4_2">§4.4.2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP4_4_2_3_1" class="paragraph-anchor"></a><b>§4.4.2.3.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Issue a problem for certain forbidden kinds</span><span class="named-paragraph-number">4.4.2.3.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">UsingProblems::assertion_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::syntax_tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_InstancesExplicit</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"this kind of value cannot be made with direct sentences like this"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"because the instances of this kind are made by the compiler itself, "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"using other notation in the source text to deduce them."</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="4-tc.html#SP4_4_2_3">§4.4.2.3</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>§6. </b>It turns out to be useful to have the same policing rules elsewhere:
|
||||
</p>
|
||||
|
||||
|
|
|
@ -161,6 +161,9 @@ special Preform of its own; here is the subject phrase:
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">av</span><span class="plain-syntax">-></span><span class="element-syntax">after_rules</span><span class="plain-syntax"> = </span><a href="6-act.html#SP6" class="function-link"><span class="function-syntax">Activities::make_rulebook</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">av</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">, </span><span class="identifier-syntax">future_action_flag</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><a href="6-act.html#SP10" class="function-link"><span class="function-syntax">Activities::set_std</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">av</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginCalls::new_activity_notify</span><span class="plain-syntax">(</span><span class="identifier-syntax">av</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">av</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
|
|
@ -276,6 +276,40 @@ the predictability of results.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>§12. </b>Logging lists of lists:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SharedVariables::log_access_list</span><span class="plain-syntax">(</span><span class="reserved-syntax">shared_variable_access_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">list</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">list</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"Shared access list %d = { "</span><span class="plain-syntax">, </span><span class="identifier-syntax">list</span><span class="plain-syntax">-></span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">n</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">shared_variable_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">set</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">set</span><span class="plain-syntax">, </span><span class="reserved-syntax">shared_variable_set</span><span class="plain-syntax">, </span><span class="identifier-syntax">list</span><span class="plain-syntax">-></span><span class="element-syntax">sets</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">n</span><span class="plain-syntax">++ > </span><span class="constant-syntax">1</span><span class="plain-syntax">) </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">", "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="6-sv.html#SP12" class="function-link"><span class="function-syntax">SharedVariables::log_set</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">set</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">" }\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"No access list\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">SharedVariables::log_set</span><span class="plain-syntax">(</span><span class="reserved-syntax">shared_variable_set</span><span class="plain-syntax"> *</span><span class="identifier-syntax">set</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">set</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"{ "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">n</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">shared_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">shv</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">shv</span><span class="plain-syntax">, </span><span class="reserved-syntax">shared_variable</span><span class="plain-syntax">, </span><span class="identifier-syntax">set</span><span class="plain-syntax">-></span><span class="element-syntax">variables</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">n</span><span class="plain-syntax">++ > </span><span class="constant-syntax">1</span><span class="plain-syntax">) </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">", "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"%W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">shv</span><span class="plain-syntax">-></span><span class="element-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">" }"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"null"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="6-act.html">❮</a></li><li class="progresschapter"><a href="P-wtmd.html">P</a></li><li class="progresschapter"><a href="1-am.html">1</a></li><li class="progresschapter"><a href="2-bv.html">2</a></li><li class="progresschapter"><a href="3-dlr.html">3</a></li><li class="progresschapter"><a href="4-nr.html">4</a></li><li class="progresschapter"><a href="5-id.html">5</a></li><li class="progresscurrentchapter">6</li><li class="progresssection"><a href="6-rls.html">rls</a></li><li class="progresssection"><a href="6-rb.html">rb</a></li><li class="progresssection"><a href="6-bl.html">bl</a></li><li class="progresssection"><a href="6-rlb.html">rlb</a></li><li class="progresssection"><a href="6-fao.html">fao</a></li><li class="progresssection"><a href="6-act.html">act</a></li><li class="progresscurrent">sv</li><li class="progresschapter"><a href="7-tc.html">7</a></li><li class="progresschapter"><a href="8-kpr.html">8</a></li><li class="progressnext"><a href="7-tc.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
|
|
@ -389,7 +389,8 @@ which compilation unit the node belongs.
|
|||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>§11. Annotations of Level 2 nodes. </b></p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">classified_ANNOT</span><span class="plain-syntax"> </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">int</span></span><span class="comment-syntax">: this sentence has been classified</span>
|
||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">beat_defined_here_ANNOT</span><span class="plain-syntax"> </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">dialogue_beat</span></span><span class="comment-syntax">: for nodes of beat cues</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">classified_ANNOT</span><span class="plain-syntax"> </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">int</span></span><span class="comment-syntax">: this sentence has been classified</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">clears_pronouns_ANNOT</span><span class="plain-syntax"> </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">int</span></span><span class="comment-syntax">: this sentence erases the current value of "it"</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">dialogue_beat_clause_ANNOT</span><span class="plain-syntax"> </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">int</span></span><span class="comment-syntax">: for clauses of dialogue cues introducing beats</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">dialogue_choice_clause_ANNOT</span><span class="plain-syntax"> </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">int</span></span><span class="comment-syntax">: for clauses of dialogue choice points</span>
|
||||
|
@ -402,6 +403,7 @@ which compilation unit the node belongs.
|
|||
<span class="definition-keyword">enum</span> <span class="constant-syntax">you_can_ignore_ANNOT</span><span class="plain-syntax"> </span><span class="comment-syntax"> </span><span class="extract"><span class="extract-syntax">int</span></span><span class="comment-syntax">: for assertions now drained of meaning</span>
|
||||
</pre>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">beat_defined_here</span><span class="plain-syntax">, </span><span class="identifier-syntax">dialogue_beat</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">impdef</span><span class="plain-syntax">, </span><span class="identifier-syntax">imperative_defn</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">implicit_in_creation_of</span><span class="plain-syntax">, </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">DECLARE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">interpretation_of_subject</span><span class="plain-syntax">, </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax">)</span>
|
||||
|
@ -409,6 +411,7 @@ which compilation unit the node belongs.
|
|||
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>§12. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">beat_defined_here</span><span class="plain-syntax">, </span><span class="identifier-syntax">dialogue_beat</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">impdef</span><span class="plain-syntax">, </span><span class="identifier-syntax">imperative_defn</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">implicit_in_creation_of</span><span class="plain-syntax">, </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">interpretation_of_subject</span><span class="plain-syntax">, </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax">)</span>
|
||||
|
@ -418,6 +421,8 @@ which compilation unit the node belongs.
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CoreSyntax::declare_L2_annotations</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">CoreSyntax::declare_L2_annotations</span></span>:<br/><a href="1-inaa.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::declare_type</span><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">beat_defined_here_ANNOT</span><span class="plain-syntax">, </span><a href="1-inaa.html#SP13" class="function-link"><span class="function-syntax">CoreSyntax::write_beat_defined_here_ANNOT</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::declare_type</span><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">classified_ANNOT</span><span class="plain-syntax">, </span><a href="1-inaa.html#SP13" class="function-link"><span class="function-syntax">CoreSyntax::write_classified_ANNOT</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::declare_type</span><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">clears_pronouns_ANNOT</span><span class="plain-syntax">, </span><a href="1-inaa.html#SP13" class="function-link"><span class="function-syntax">CoreSyntax::write_clears_pronouns_ANNOT</span></a><span class="plain-syntax">);</span>
|
||||
|
@ -440,6 +445,10 @@ which compilation unit the node belongs.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::declare_type</span><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">you_can_ignore_ANNOT</span><span class="plain-syntax">, </span><a href="1-inaa.html#SP13" class="function-link"><span class="function-syntax">CoreSyntax::write_you_can_ignore_ANNOT</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CoreSyntax::write_beat_defined_here_ANNOT</span><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Node::get_beat_defined_here</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" {defines beat: %d}"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Node::get_beat_defined_here</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">)-></span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CoreSyntax::write_classified_ANNOT</span><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Annotations::read_int</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="constant-syntax">classified_ANNOT</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">" {classified}"</span><span class="plain-syntax">);</span>
|
||||
|
@ -498,6 +507,7 @@ which compilation unit the node belongs.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow_for_category</span><span class="plain-syntax">(</span><span class="identifier-syntax">L2_NCAT</span><span class="plain-syntax">, </span><span class="constant-syntax">clears_pronouns_ANNOT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow_for_category</span><span class="plain-syntax">(</span><span class="identifier-syntax">L2_NCAT</span><span class="plain-syntax">, </span><span class="constant-syntax">interpretation_of_subject_ANNOT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow_for_category</span><span class="plain-syntax">(</span><span class="identifier-syntax">L2_NCAT</span><span class="plain-syntax">, </span><span class="constant-syntax">verb_problem_issued_ANNOT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow</span><span class="plain-syntax">(</span><span class="identifier-syntax">DIALOGUE_CUE_NT</span><span class="plain-syntax">, </span><span class="constant-syntax">beat_defined_here_ANNOT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow</span><span class="plain-syntax">(</span><span class="identifier-syntax">IMPERATIVE_NT</span><span class="plain-syntax">, </span><span class="constant-syntax">impdef_ANNOT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow</span><span class="plain-syntax">(</span><span class="identifier-syntax">IMPERATIVE_NT</span><span class="plain-syntax">, </span><span class="constant-syntax">indentation_level_ANNOT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow</span><span class="plain-syntax">(</span><span class="identifier-syntax">SENTENCE_NT</span><span class="plain-syntax">, </span><span class="constant-syntax">implicit_in_creation_of_ANNOT</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -60,7 +60,7 @@ function togglePopup(material_id) {
|
|||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../inform7n.html">Inform7</a></li><li><a href="index.html">core</a></li><li><a href="index.html#3">Chapter 3: Plugins</a></li><li><b>Plugin Calls</b></li></ul></div>
|
||||
<p class="purpose">Giving compiler features the ability to install plugin functions.</p>
|
||||
|
||||
<ul class="toc"><li><a href="3-pc.html#SP5">§5. Influencing core</a></li><li><a href="3-pc.html#SP6">§6. Influencing assertions</a></li><li><a href="3-pc.html#SP21">§21. Influencing values</a></li><li><a href="3-pc.html#SP26">§26. Influencing knowledge</a></li><li><a href="3-pc.html#SP39">§39. Influencing the imperative module</a></li><li><a href="3-pc.html#SP44">§44. Influencing the actions feature</a></li></ul><hr class="tocbar">
|
||||
<ul class="toc"><li><a href="3-pc.html#SP5">§5. Influencing core</a></li><li><a href="3-pc.html#SP6">§6. Influencing assertions</a></li><li><a href="3-pc.html#SP21">§21. Influencing values</a></li><li><a href="3-pc.html#SP26">§26. Influencing knowledge</a></li><li><a href="3-pc.html#SP40">§40. Influencing the imperative module</a></li><li><a href="3-pc.html#SP45">§45. Influencing the actions feature</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b>The three Inform compiler tools <a href="../inform7/index.html" class="internal">inform7</a>, <a href="../inbuild/index.html" class="internal">inbuild</a> and <a href="../inter/index.html" class="internal">inter</a>
|
||||
share a set of named compiler features, managed by <a href="../arch-module/3-fm.html" class="internal">Feature Manager (in arch)</a>.
|
||||
|
@ -570,6 +570,18 @@ been created, which they can use to spot properties with special significance
|
|||
to them.
|
||||
</p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">NEW_ACTIVITY_NOTIFY_PLUG</span>
|
||||
</pre>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">PluginCalls::new_activity_notify</span><span class="plain-syntax">(</span><span class="identifier-syntax">activity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">act</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">NEW_ACTIVITY_NOTIFY_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">act</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP35" class="paragraph-anchor"></a><b>§35. </b>Called from <a href="../knowledge-module/3-prp.html" class="internal">Properties (in knowledge)</a> to warn plugins that a property has
|
||||
been created, which they can use to spot properties with special significance
|
||||
to them.
|
||||
</p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">NEW_PROPERTY_NOTIFY_PLUG</span>
|
||||
</pre>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -577,7 +589,7 @@ to them.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">NEW_PROPERTY_NOTIFY_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">prn</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP35" class="paragraph-anchor"></a><b>§35. </b>Called from <a href="../knowledge-module/4-is.html" class="internal">Inference Subjects (in knowledge)</a> to warn plugins that a subject
|
||||
<p class="commentary firstcommentary"><a id="SP36" class="paragraph-anchor"></a><b>§36. </b>Called from <a href="../knowledge-module/4-is.html" class="internal">Inference Subjects (in knowledge)</a> to warn plugins that a subject
|
||||
has been created, which they can use to spot subjects with special significance
|
||||
to them.
|
||||
</p>
|
||||
|
@ -589,7 +601,7 @@ to them.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">NEW_SUBJECT_NOTIFY_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">subj</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP36" class="paragraph-anchor"></a><b>§36. </b>Called from <a href="../knowledge-module/2-nv.html" class="internal">Nonlocal Variables (in knowledge)</a> to warn plugins that a new
|
||||
<p class="commentary firstcommentary"><a id="SP37" class="paragraph-anchor"></a><b>§37. </b>Called from <a href="../knowledge-module/2-nv.html" class="internal">Nonlocal Variables (in knowledge)</a> to warn plugins that a new
|
||||
variable has been created, which they can use to spot variables with special
|
||||
significance to them.
|
||||
</p>
|
||||
|
@ -601,7 +613,7 @@ significance to them.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">NEW_VARIABLE_NOTIFY_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">q</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP37" class="paragraph-anchor"></a><b>§37. </b>Called from <a href="../knowledge-module/2-ins.html" class="internal">Instances (in knowledge)</a> to warn plugins that the kind of an
|
||||
<p class="commentary firstcommentary"><a id="SP38" class="paragraph-anchor"></a><b>§38. </b>Called from <a href="../knowledge-module/2-ins.html" class="internal">Instances (in knowledge)</a> to warn plugins that the kind of an
|
||||
instance is about to be set. This happens most often when the instance is
|
||||
created, but can also happen again, refining the kind to a subkind, when
|
||||
the instance is an object.
|
||||
|
@ -614,7 +626,7 @@ the instance is an object.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">SET_KIND_NOTIFY_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">k</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP38" class="paragraph-anchor"></a><b>§38. </b>Called from <a href="../knowledge-module/4-ks.html" class="internal">Kind Subjects (in knowledge)</a> when one kind of object is made a
|
||||
<p class="commentary firstcommentary"><a id="SP39" class="paragraph-anchor"></a><b>§39. </b>Called from <a href="../knowledge-module/4-ks.html" class="internal">Kind Subjects (in knowledge)</a> when one kind of object is made a
|
||||
subkind of another, as for example when "container" is a made a subkind of
|
||||
"thing". The plugin should return <span class="extract"><span class="extract-syntax">TRUE</span></span> if it wishes to forbid this,
|
||||
and if so, it had better throw a problem message, or the user will be
|
||||
|
@ -632,7 +644,7 @@ regions plugin does with the "region" kind.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">SET_SUBKIND_NOTIFY_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">sub</span><span class="plain-syntax">, </span><span class="identifier-syntax">super</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP39" class="paragraph-anchor"></a><b>§39. Influencing the imperative module. </b>Called from <a href="../assertions-module/6-rb.html" class="internal">Rule Bookings (in assertions)</a> to give plugins a chance to move
|
||||
<p class="commentary firstcommentary"><a id="SP40" class="paragraph-anchor"></a><b>§40. Influencing the imperative module. </b>Called from <a href="../assertions-module/6-rb.html" class="internal">Rule Bookings (in assertions)</a> to give plugins a chance to move
|
||||
automatically placed rules from one rulebook to another. The actions feature
|
||||
uses this to break up what would otherwise be unwieldy before and after
|
||||
rulebooks into smaller ones for each action.
|
||||
|
@ -649,7 +661,7 @@ and return <span class="extract"><span class="extract-syntax">TRUE</span></span>
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">PLACE_RULE_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="identifier-syntax">original_owner</span><span class="plain-syntax">, </span><span class="identifier-syntax">new_owner</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP40" class="paragraph-anchor"></a><b>§40. </b>Called from <a href="../assertions-module/6-rlb.html" class="internal">Rulebooks (in assertions)</a>. This is very similar, but runs in all cases,
|
||||
<p class="commentary firstcommentary"><a id="SP41" class="paragraph-anchor"></a><b>§41. </b>Called from <a href="../assertions-module/6-rlb.html" class="internal">Rulebooks (in assertions)</a>. This is very similar, but runs in all cases,
|
||||
and not only for automatic placement.
|
||||
</p>
|
||||
|
||||
|
@ -660,7 +672,7 @@ and not only for automatic placement.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">RULE_PLACEMENT_NOTIFY_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="identifier-syntax">original_owner</span><span class="plain-syntax">, </span><span class="identifier-syntax">side</span><span class="plain-syntax">, </span><span class="identifier-syntax">ref_rule</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP41" class="paragraph-anchor"></a><b>§41. </b></p>
|
||||
<p class="commentary firstcommentary"><a id="SP42" class="paragraph-anchor"></a><b>§42. </b></p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">COMPILE_TEST_HEAD_PLUG</span>
|
||||
</pre>
|
||||
|
@ -669,7 +681,7 @@ and not only for automatic placement.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">COMPILE_TEST_HEAD_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">idb</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="identifier-syntax">tests</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP42" class="paragraph-anchor"></a><b>§42. </b></p>
|
||||
<p class="commentary firstcommentary"><a id="SP43" class="paragraph-anchor"></a><b>§43. </b></p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">COMPILE_TEST_TAIL_PLUG</span>
|
||||
</pre>
|
||||
|
@ -678,7 +690,7 @@ and not only for automatic placement.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">COMPILE_TEST_TAIL_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">idb</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP43" class="paragraph-anchor"></a><b>§43. </b>Called from <a href="../imperative-module/5-cii.html" class="internal">Compile Invocations Inline (in imperative)</a>, but only when an
|
||||
<p class="commentary firstcommentary"><a id="SP44" class="paragraph-anchor"></a><b>§44. </b>Called from <a href="../imperative-module/5-cii.html" class="internal">Compile Invocations Inline (in imperative)</a>, but only when an
|
||||
annotation arises which the regular machinery doesn't know how to handle.
|
||||
This is currently only used by <a href="../if-module/3-tr.html" class="internal">Timed Rules (in if)</a>.
|
||||
</p>
|
||||
|
@ -690,7 +702,7 @@ This is currently only used by <a href="../if-module/3-tr.html" class="internal"
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">INLINE_ANNOTATION_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">annot</span><span class="plain-syntax">, </span><span class="identifier-syntax">supplied</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP44" class="paragraph-anchor"></a><b>§44. Influencing the actions feature. </b>We now have a whole run of functions called only by the actions feature, and
|
||||
<p class="commentary firstcommentary"><a id="SP45" class="paragraph-anchor"></a><b>§45. Influencing the actions feature. </b>We now have a whole run of functions called only by the actions feature, and
|
||||
therefore only when it is active.
|
||||
</p>
|
||||
|
||||
|
@ -705,7 +717,7 @@ created. For example, the going feature uses this to spot the arrival of "going"
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">NEW_ACTION_NOTIFY_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">an</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP45" class="paragraph-anchor"></a><b>§45. </b>Called from <a href="../if-module/4-apc.html" class="internal">Action Pattern Clauses (in if)</a> to invite plugins to change the
|
||||
<p class="commentary firstcommentary"><a id="SP46" class="paragraph-anchor"></a><b>§46. </b>Called from <a href="../if-module/4-apc.html" class="internal">Action Pattern Clauses (in if)</a> to invite plugins to change the
|
||||
action pattern clause ID associated with a given action variable. This may be
|
||||
needed in order to cross-reference between multiple such clauses, as with
|
||||
the going action variables.
|
||||
|
@ -719,7 +731,7 @@ the going action variables.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">DIVERT_AP_CLAUSE_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">stv</span><span class="plain-syntax">, </span><span class="identifier-syntax">id</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP46" class="paragraph-anchor"></a><b>§46. </b>Called from <a href="../if-module/4-apc.html" class="internal">Action Pattern Clauses (in if)</a> to ask plugins to print a helpful
|
||||
<p class="commentary firstcommentary"><a id="SP47" class="paragraph-anchor"></a><b>§47. </b>Called from <a href="../if-module/4-apc.html" class="internal">Action Pattern Clauses (in if)</a> to ask plugins to print a helpful
|
||||
name for the debugging log for any new clause ID <span class="extract"><span class="extract-syntax">C</span></span> which they have created.
|
||||
</p>
|
||||
|
||||
|
@ -730,7 +742,7 @@ name for the debugging log for any new clause ID <span class="extract"><span cla
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">WRITE_AP_CLAUSE_ID_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP47" class="paragraph-anchor"></a><b>§47. </b>Called from <a href="../if-module/4-apc.html" class="internal">Action Pattern Clauses (in if)</a> to ask for the <span class="extract"><span class="extract-syntax">*_APCA</span></span> aspect
|
||||
<p class="commentary firstcommentary"><a id="SP48" class="paragraph-anchor"></a><b>§48. </b>Called from <a href="../if-module/4-apc.html" class="internal">Action Pattern Clauses (in if)</a> to ask for the <span class="extract"><span class="extract-syntax">*_APCA</span></span> aspect
|
||||
for the clause ID <span class="extract"><span class="extract-syntax">C</span></span>, where <span class="extract"><span class="extract-syntax">C</span></span> is a new clause ID created by the plugin. If
|
||||
this is not given, then the aspect will be <span class="extract"><span class="extract-syntax">MISC_APCA</span></span>.
|
||||
</p>
|
||||
|
@ -742,7 +754,7 @@ this is not given, then the aspect will be <span class="extract"><span class="ex
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">ASPECT_OF_AP_CLAUSE_ID_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">C</span><span class="plain-syntax">, </span><span class="identifier-syntax">A</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP48" class="paragraph-anchor"></a><b>§48. </b>Called from <a href="../if-module/4-apc.html" class="internal">Action Pattern Clauses (in if)</a> to give plugins a chance to
|
||||
<p class="commentary firstcommentary"><a id="SP49" class="paragraph-anchor"></a><b>§49. </b>Called from <a href="../if-module/4-apc.html" class="internal">Action Pattern Clauses (in if)</a> to give plugins a chance to
|
||||
decide which AP is more specific, on the basis of the extra clauses defined
|
||||
in the plugin.
|
||||
</p>
|
||||
|
@ -766,7 +778,7 @@ to let the usual machinery take its course.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">COMPARE_AP_SPECIFICITY_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">ap1</span><span class="plain-syntax">, </span><span class="identifier-syntax">ap2</span><span class="plain-syntax">, </span><span class="identifier-syntax">rv</span><span class="plain-syntax">, </span><span class="identifier-syntax">ignore_in</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP49" class="paragraph-anchor"></a><b>§49. </b>Called from <a href="../if-module/4-apc.html" class="internal">Action Pattern Clauses (in if)</a> to notify plugins that a clause
|
||||
<p class="commentary firstcommentary"><a id="SP50" class="paragraph-anchor"></a><b>§50. </b>Called from <a href="../if-module/4-apc.html" class="internal">Action Pattern Clauses (in if)</a> to notify plugins that a clause
|
||||
matching an action variable has just been added to an action pattern.
|
||||
</p>
|
||||
|
||||
|
@ -777,7 +789,7 @@ matching an action variable has just been added to an action pattern.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">NEW_AP_CLAUSE_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">ap</span><span class="plain-syntax">, </span><span class="identifier-syntax">apoc</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP50" class="paragraph-anchor"></a><b>§50. </b>Called from <a href="../if-module/4-pc.html" class="internal">Parse Clauses (in if)</a> to give plugins a chance to intervene in
|
||||
<p class="commentary firstcommentary"><a id="SP51" class="paragraph-anchor"></a><b>§51. </b>Called from <a href="../if-module/4-pc.html" class="internal">Parse Clauses (in if)</a> to give plugins a chance to intervene in
|
||||
the normal process of evaluating the meaning of text in an action pattern
|
||||
clause: for example, in parsing "going nowhere", the going feature uses this
|
||||
to detect that the <span class="extract"><span class="extract-syntax">NOUN_AP_CLAUSE</span></span>, with text "nowhere", should not be parsed
|
||||
|
@ -796,7 +808,7 @@ text of the clause in the normal way.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">PARSE_AP_CLAUSE_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">an</span><span class="plain-syntax">, </span><span class="identifier-syntax">c</span><span class="plain-syntax">, </span><span class="identifier-syntax">bits</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP51" class="paragraph-anchor"></a><b>§51. </b>Called from <a href="../if-module/4-pc.html" class="internal">Parse Clauses (in if)</a> to give plugins a chance to intervene in
|
||||
<p class="commentary firstcommentary"><a id="SP52" class="paragraph-anchor"></a><b>§52. </b>Called from <a href="../if-module/4-pc.html" class="internal">Parse Clauses (in if)</a> to give plugins a chance to intervene in
|
||||
the type-checking process for a clause. Ordinarily, this would just check that
|
||||
the contents have the right kind: if matching an action variable of kind <span class="extract"><span class="extract-syntax">K</span></span>
|
||||
then it must be a value compatible with <span class="extract"><span class="extract-syntax">K</span></span> or a description of such.
|
||||
|
@ -814,7 +826,7 @@ or <span class="extract"><span class="extract-syntax">FALSE</span></span> (it is
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">VALIDATE_AP_CLAUSE_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">an</span><span class="plain-syntax">, </span><span class="identifier-syntax">c</span><span class="plain-syntax">, </span><span class="identifier-syntax">outcome</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP52" class="paragraph-anchor"></a><b>§52. </b>Called from <a href="../if-module/4-pc.html" class="internal">Parse Clauses (in if)</a> to deal with the options bitmap set
|
||||
<p class="commentary firstcommentary"><a id="SP53" class="paragraph-anchor"></a><b>§53. </b>Called from <a href="../if-module/4-pc.html" class="internal">Parse Clauses (in if)</a> to deal with the options bitmap set
|
||||
previously by a <span class="extract"><span class="extract-syntax">PARSE_AP_CLAUSE_PLUG</span></span> call: see above.
|
||||
</p>
|
||||
|
||||
|
@ -825,7 +837,7 @@ previously by a <span class="extract"><span class="extract-syntax">PARSE_AP_CLAU
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">ACT_ON_ANL_ENTRY_OPTIONS_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">entry</span><span class="plain-syntax">, </span><span class="identifier-syntax">entry_options</span><span class="plain-syntax">, </span><span class="identifier-syntax">fail</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP53" class="paragraph-anchor"></a><b>§53. </b>Called from <a href="../imperative-module/2-map.html" class="internal">Matching Action Patterns (in imperative)</a> when assembling the requirement
|
||||
<p class="commentary firstcommentary"><a id="SP54" class="paragraph-anchor"></a><b>§54. </b>Called from <a href="../imperative-module/2-map.html" class="internal">Matching Action Patterns (in imperative)</a> when assembling the requirement
|
||||
clauses for compiling a mattern match; this gives plugins a chance to act
|
||||
extra stipulations, which are not explicit in clauses already in the pattern.
|
||||
</p>
|
||||
|
@ -838,7 +850,7 @@ extra stipulations, which are not explicit in clauses already in the pattern.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PLUGINS_CALL</span><span class="plain-syntax">(</span><span class="constant-syntax">SET_PATTERN_MATCH_REQUIREMENTS_PLUG</span><span class="plain-syntax">, </span><span class="identifier-syntax">ap</span><span class="plain-syntax">, </span><span class="identifier-syntax">cpm</span><span class="plain-syntax">, </span><span class="identifier-syntax">needed</span><span class="plain-syntax">, </span><span class="identifier-syntax">needed_apoc</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP54" class="paragraph-anchor"></a><b>§54. </b>Called from <a href="../imperative-module/2-map.html" class="internal">Matching Action Patterns (in imperative)</a> when compiling any additional
|
||||
<p class="commentary firstcommentary"><a id="SP55" class="paragraph-anchor"></a><b>§55. </b>Called from <a href="../imperative-module/2-map.html" class="internal">Matching Action Patterns (in imperative)</a> when compiling any additional
|
||||
requirements set by <span class="extract"><span class="extract-syntax">SET_PATTERN_MATCH_REQUIREMENTS_PLUG</span></span>.
|
||||
</p>
|
||||
|
||||
|
|
|
@ -60,7 +60,7 @@ function togglePopup(material_id) {
|
|||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../inform7n.html">Inform7</a></li><li><a href="index.html">if</a></li><li><a href="index.html#3">Chapter 3: Space and Time</a></li><li><b>Scenes</b></li></ul></div>
|
||||
<p class="purpose">A feature to support named periods of time during an interactive story.</p>
|
||||
|
||||
<ul class="toc"><li><a href="3-scn.html#SP1">§1. Introduction</a></li><li><a href="3-scn.html#SP10">§10. Conceptual model of scenes</a></li><li><a href="3-scn.html#SP12">§12. Scene structures</a></li><li><a href="3-scn.html#SP14">§14. Creating and parsing ends</a></li><li><a href="3-scn.html#SP15">§15. Scene end rulebooks</a></li><li><a href="3-scn.html#SP16">§16. Anchors</a></li><li><a href="3-scn.html#SP27">§27. Rules predicated on scenes</a></li></ul><hr class="tocbar">
|
||||
<ul class="toc"><li><a href="3-scn.html#SP1">§1. Introduction</a></li><li><a href="3-scn.html#SP10">§10. Conceptual model of scenes</a></li><li><a href="3-scn.html#SP12">§12. Scene structures</a></li><li><a href="3-scn.html#SP14">§14. Creating and parsing ends</a></li><li><a href="3-scn.html#SP15">§15. Tie the ends of a scene to a dialogue beat</a></li><li><a href="3-scn.html#SP16">§16. Scene end rulebooks</a></li><li><a href="3-scn.html#SP17">§17. Anchors</a></li><li><a href="3-scn.html#SP28">§28. Rules predicated on scenes</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. Introduction. </b>Scenes are periods of time during play: at any given moment, several may be
|
||||
going on, or none. They are started and stopped when certain conditions are
|
||||
|
@ -74,8 +74,8 @@ met, or by virtue of having been anchored together.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginCalls::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">NEW_INSTANCE_NOTIFY_PLUG</span><span class="plain-syntax">, </span><a href="3-scn.html#SP6" class="function-link"><span class="function-syntax">Scenes::new_named_instance_notify</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginCalls::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">NEW_BASE_KIND_NOTIFY_PLUG</span><span class="plain-syntax">, </span><a href="3-scn.html#SP5" class="function-link"><span class="function-syntax">Scenes::new_base_kind_notify</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginCalls::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">COMPARE_CONSTANT_PLUG</span><span class="plain-syntax">, </span><a href="3-scn.html#SP5" class="function-link"><span class="function-syntax">Scenes::compare_CONSTANT</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginCalls::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">MAKE_SPECIAL_MEANINGS_PLUG</span><span class="plain-syntax">, </span><a href="3-scn.html#SP16" class="function-link"><span class="function-syntax">Scenes::make_special_meanings</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginCalls::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">NEW_RCD_NOTIFY_PLUG</span><span class="plain-syntax">, </span><a href="3-scn.html#SP27" class="function-link"><span class="function-syntax">Scenes::new_rcd</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginCalls::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">MAKE_SPECIAL_MEANINGS_PLUG</span><span class="plain-syntax">, </span><a href="3-scn.html#SP17" class="function-link"><span class="function-syntax">Scenes::make_special_meanings</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginCalls::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">NEW_RCD_NOTIFY_PLUG</span><span class="plain-syntax">, </span><a href="3-scn.html#SP28" class="function-link"><span class="function-syntax">Scenes::new_rcd</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b>This feature needs one extra syntax tree annotation:
|
||||
|
@ -198,6 +198,7 @@ scenes — to express which, the <a href="3-scn.html#SP10" class="internal">
|
|||
<span class="reserved-syntax">typedef</span><span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">scene_end</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">end_names</span><span class="plain-syntax">; </span><span class="comment-syntax"> for ends 2, 3, ...: e.g. "badly"</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">rulebook</span><span class="plain-syntax"> *</span><span class="identifier-syntax">end_rulebook</span><span class="plain-syntax">; </span><span class="comment-syntax"> rules to apply then</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">dialogue_beat</span><span class="plain-syntax"> *</span><span class="identifier-syntax">as_beat</span><span class="plain-syntax">; </span><span class="comment-syntax"> only for those scenes equated to beats</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">anchor_condition</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">scene_connector</span><span class="plain-syntax"> *</span><span class="identifier-syntax">anchor_connectors</span><span class="plain-syntax">; </span><span class="comment-syntax"> linked list</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">anchor_condition_set</span><span class="plain-syntax">; </span><span class="comment-syntax"> where set</span>
|
||||
|
@ -216,6 +217,10 @@ scenes — to express which, the <a href="3-scn.html#SP10" class="internal">
|
|||
<span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="function-syntax">Scenes::get_name</span><span class="plain-syntax">(</span><span class="reserved-syntax">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">Instances::get_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="element-syntax">as_instance</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="function-syntax">Scenes::get_instance</span><span class="plain-syntax">(</span><span class="reserved-syntax">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="element-syntax">as_instance</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure scene is accessed in 6/dlg, 6/db, 6/dl, 6/dc, 6/ps and here.</li><li>The structure scene_end is private to this section.</li><li>The structure scene_connector is accessed in 2/ri, 3/tm, 3/ts, 3/mhr, 4/ap, 4/av, 4/apc, 5/us, 6/db, 6/dl, 6/dc and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>§11. </b>A feature called <span class="extract"><span class="extract-syntax">xyzzy</span></span> generally has a hunk of subject data called <span class="extract"><span class="extract-syntax">xyzzy_data</span></span>,
|
||||
|
@ -250,8 +255,9 @@ is created:
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="element-syntax">start_of_play</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">end</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">end</span><span class="function-syntax"><sc-></span><span class="element-syntax">no_ends</span><span class="plain-syntax">; </span><span class="identifier-syntax">end</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="element-syntax">ends</span><span class="plain-syntax">[</span><span class="identifier-syntax">end</span><span class="plain-syntax">].</span><span class="element-syntax">anchor_condition</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="element-syntax">ends</span><span class="plain-syntax">[</span><span class="identifier-syntax">end</span><span class="plain-syntax">].</span><span class="element-syntax">as_beat</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="element-syntax">ends</span><span class="plain-syntax">[</span><span class="identifier-syntax">end</span><span class="plain-syntax">].</span><span class="element-syntax">anchor_connectors</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="3-scn.html#SP15" class="function-link"><span class="function-syntax">Scenes::new_scene_rulebook</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">, </span><span class="identifier-syntax">end</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-scn.html#SP16" class="function-link"><span class="function-syntax">Scenes::new_scene_rulebook</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">, </span><span class="identifier-syntax">end</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP12">§12</a>.</li></ul>
|
||||
|
@ -279,7 +285,7 @@ to translate this to other languages.)
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">scene</span><span class="plain-syntax"> *</span><span class="function-syntax">Scenes::from_named_constant</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">Scenes::from_named_constant</span></span>:<br/><a href="3-scn.html#SP23_1">§23.1</a>, <a href="3-scn.html#SP28">§28</a><br/>Dialogue Beats - <a href="6-db.html#SP4_1">§4.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">scene</span><span class="plain-syntax"> *</span><span class="function-syntax">Scenes::from_named_constant</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">Scenes::from_named_constant</span></span>:<br/><a href="3-scn.html#SP24_1">§24.1</a>, <a href="3-scn.html#SP29">§29</a><br/>Dialogue Beats - <a href="6-db.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K_scene</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::to_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_scene</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FEATURE_DATA_ON_SUBJECT</span><span class="plain-syntax">(</span><span class="identifier-syntax">scenes</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="plain-syntax">-></span><span class="identifier-syntax">as_subject</span><span class="plain-syntax">);</span>
|
||||
|
@ -295,7 +301,7 @@ to translate this to other languages.)
|
|||
<p class="commentary firstcommentary"><a id="SP14" class="paragraph-anchor"></a><b>§14. Creating and parsing ends. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Scenes::parse_scene_end_name</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">Scenes::parse_scene_end_name</span></span>:<br/><a href="3-scn.html#SP24">§24</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">EW</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">create</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Scenes::parse_scene_end_name</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">Scenes::parse_scene_end_name</span></span>:<br/><a href="3-scn.html#SP25">§25</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">EW</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">create</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=2; </span><span class="identifier-syntax">i</span><span class="function-syntax"><sc-></span><span class="element-syntax">no_ends</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Wordings::match</span><span class="plain-syntax">(</span><span class="identifier-syntax">EW</span><span class="plain-syntax">, </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="element-syntax">ends</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="element-syntax">end_names</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">;</span>
|
||||
|
@ -306,7 +312,7 @@ to translate this to other languages.)
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">end</span><span class="plain-syntax"> >= </span><span class="identifier-syntax">max</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP14_1" class="named-paragraph-link"><span class="named-paragraph">Issue a too-many-ends problem message</span><span class="named-paragraph-number">14.1</span></a></span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="element-syntax">ends</span><span class="plain-syntax">[</span><span class="identifier-syntax">end</span><span class="plain-syntax">].</span><span class="element-syntax">end_names</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EW</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="3-scn.html#SP15" class="function-link"><span class="function-syntax">Scenes::new_scene_rulebook</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">, </span><span class="identifier-syntax">end</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-scn.html#SP16" class="function-link"><span class="function-syntax">Scenes::new_scene_rulebook</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">, </span><span class="identifier-syntax">end</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">end</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -326,27 +332,35 @@ to translate this to other languages.)
|
|||
<span class="plain-syntax"> </span><span class="string-syntax">"ways for the scene to end.)"</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP14">§14</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>§15. Scene end rulebooks. </b></p>
|
||||
<p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>§15. Tie the ends of a scene to a dialogue beat. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Scenes::new_scene_rulebook</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">Scenes::new_scene_rulebook</span></span>:<br/><a href="3-scn.html#SP12_1">§12.1</a>, <a href="3-scn.html#SP14">§14</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">end</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Scenes::set_beat</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">Scenes::set_beat</span></span>:<br/>Dialogue Beats - <a href="6-db.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc</span><span class="plain-syntax">, </span><span class="reserved-syntax">dialogue_beat</span><span class="plain-syntax"> *</span><span class="identifier-syntax">db</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="element-syntax">ends</span><span class="plain-syntax">[0].</span><span class="element-syntax">as_beat</span><span class="plain-syntax"> = </span><span class="identifier-syntax">db</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="element-syntax">ends</span><span class="plain-syntax">[1].</span><span class="element-syntax">as_beat</span><span class="plain-syntax"> = </span><span class="identifier-syntax">db</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP16" class="paragraph-anchor"></a><b>§16. Scene end rulebooks. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Scenes::new_scene_rulebook</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">Scenes::new_scene_rulebook</span></span>:<br/><a href="3-scn.html#SP12_1">§12.1</a>, <a href="3-scn.html#SP14">§14</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">end</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">RW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">, </span><span class="identifier-syntax">AW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP15_1" class="named-paragraph-link"><span class="named-paragraph">Compose a name and alternate name for the new scene end rulebook</span><span class="named-paragraph-number">15.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP16_1" class="named-paragraph-link"><span class="named-paragraph">Compose a name and alternate name for the new scene end rulebook</span><span class="named-paragraph-number">16.1</span></a></span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">rulebook</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rb</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Rulebooks::new_automatic</span><span class="plain-syntax">(</span><span class="identifier-syntax">RW</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_action_name</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">NO_OUTCOME</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Rulebooks::set_alt_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">rb</span><span class="plain-syntax">, </span><span class="identifier-syntax">AW</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="element-syntax">ends</span><span class="plain-syntax">[</span><span class="identifier-syntax">end</span><span class="plain-syntax">].</span><span class="element-syntax">end_rulebook</span><span class="plain-syntax"> = </span><span class="identifier-syntax">rb</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">end</span><span class="plain-syntax"> >= </span><span class="constant-syntax">2</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP15_2" class="named-paragraph-link"><span class="named-paragraph">Define phrases detecting whether or not the scene has ended this way</span><span class="named-paragraph-number">15.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">end</span><span class="plain-syntax"> >= </span><span class="constant-syntax">2</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP16_2" class="named-paragraph-link"><span class="named-paragraph">Define phrases detecting whether or not the scene has ended this way</span><span class="named-paragraph-number">16.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP15_1" class="paragraph-anchor"></a><b>§15.1. </b>For example, if a scene is called "Banquet Entertainment" and it ends
|
||||
<p class="commentary firstcommentary"><a id="SP16_1" class="paragraph-anchor"></a><b>§16.1. </b>For example, if a scene is called "Banquet Entertainment" and it ends
|
||||
"merrily", then the rulebook has two names: "when Banquet Entertainment
|
||||
ends merrily" and "when the Banquet Entertainment ends merrily".
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compose a name and alternate name for the new scene end rulebook</span><span class="named-paragraph-number">15.1</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compose a name and alternate name for the new scene end rulebook</span><span class="named-paragraph-number">16.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -367,8 +381,8 @@ ends merrily" and "when the Banquet Entertainment ends merrily".
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">end</span><span class="plain-syntax"> >= </span><span class="constant-syntax">2</span><span class="plain-syntax">) </span><span class="identifier-syntax">Feeds::feed_wording</span><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="element-syntax">ends</span><span class="plain-syntax">[</span><span class="identifier-syntax">end</span><span class="plain-syntax">].</span><span class="element-syntax">end_names</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">AW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Feeds::end</span><span class="plain-syntax">(</span><span class="identifier-syntax">id</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP15">§15</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP15_2" class="paragraph-anchor"></a><b>§15.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define phrases detecting whether or not the scene has ended this way</span><span class="named-paragraph-number">15.2</span></span><span class="comment-syntax"> =</span>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP16">§16</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP16_2" class="paragraph-anchor"></a><b>§16.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Define phrases detecting whether or not the scene has ended this way</span><span class="named-paragraph-number">16.2</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -405,23 +419,23 @@ ends merrily" and "when the Banquet Entertainment ends merrily".
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">ImperativeSubtrees::accept_all</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">i6_code</span><span class="plain-syntax">)</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP15">§15</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP16" class="paragraph-anchor"></a><b>§16. Anchors. </b>These are joins between the endings of different scenes, and there are two
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP16">§16</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP17" class="paragraph-anchor"></a><b>§17. Anchors. </b>These are joins between the endings of different scenes, and there are two
|
||||
assertion sentences to create them:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Scenes::make_special_meanings</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">Scenes::make_special_meanings</span></span>:<br/><a href="3-scn.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SpecialMeanings::declare</span><span class="plain-syntax">(</span><a href="3-scn.html#SP17" class="function-link"><span class="function-syntax">Scenes::begins_when_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"scene-begins-when"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SpecialMeanings::declare</span><span class="plain-syntax">(</span><a href="3-scn.html#SP18" class="function-link"><span class="function-syntax">Scenes::ends_when_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"scene-ends-when"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Scenes::make_special_meanings</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">Scenes::make_special_meanings</span></span>:<br/><a href="3-scn.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SpecialMeanings::declare</span><span class="plain-syntax">(</span><a href="3-scn.html#SP18" class="function-link"><span class="function-syntax">Scenes::begins_when_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"scene-begins-when"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SpecialMeanings::declare</span><span class="plain-syntax">(</span><a href="3-scn.html#SP19" class="function-link"><span class="function-syntax">Scenes::ends_when_SMF</span></a><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"scene-ends-when"</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP17" class="paragraph-anchor"></a><b>§17. </b>This one handles the special meaning "X begins when...".
|
||||
<p class="commentary firstcommentary"><a id="SP18" class="paragraph-anchor"></a><b>§18. </b>This one handles the special meaning "X begins when...".
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Scenes::begins_when_SMF</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">Scenes::begins_when_SMF</span></span>:<br/><a href="3-scn.html#SP16">§16</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">task</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> *</span><span class="identifier-syntax">NPs</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Scenes::begins_when_SMF</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">Scenes::begins_when_SMF</span></span>:<br/><a href="3-scn.html#SP17">§17</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">task</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> *</span><span class="identifier-syntax">NPs</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">SW</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">NPs</span><span class="plain-syntax">)?(</span><span class="identifier-syntax">NPs</span><span class="plain-syntax">[0]):</span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">OW</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">NPs</span><span class="plain-syntax">)?(</span><span class="identifier-syntax">NPs</span><span class="plain-syntax">[1]):</span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="identifier-syntax">task</span><span class="plain-syntax">) { </span><span class="comment-syntax"> "The Ballroom Scene begins when..."</span>
|
||||
|
@ -433,21 +447,21 @@ assertion sentences to create them:
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">V</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax"> = </span><span class="identifier-syntax">O</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">PASS_1_SMFT:</span>
|
||||
<span class="plain-syntax"> </span><a href="3-scn.html#SP25" class="function-link"><span class="function-syntax">Scenes::new_scene_anchor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-scn.html#SP26" class="function-link"><span class="function-syntax">Scenes::new_scene_anchor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">PASS_2_SMFT:</span>
|
||||
<span class="plain-syntax"> </span><a href="3-scn.html#SP25" class="function-link"><span class="function-syntax">Scenes::new_scene_anchor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-scn.html#SP26" class="function-link"><span class="function-syntax">Scenes::new_scene_anchor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP18" class="paragraph-anchor"></a><b>§18. </b>This handles the special meaning "X ends when...", which sometimes takes
|
||||
<p class="commentary firstcommentary"><a id="SP19" class="paragraph-anchor"></a><b>§19. </b>This handles the special meaning "X ends when...", which sometimes takes
|
||||
two noun phrases and sometimes three.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Scenes::ends_when_SMF</span><button class="popup" onclick="togglePopup('usagePopup13')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup13">Usage of <span class="code-font"><span class="function-syntax">Scenes::ends_when_SMF</span></span>:<br/><a href="3-scn.html#SP16">§16</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">task</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> *</span><span class="identifier-syntax">NPs</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Scenes::ends_when_SMF</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">Scenes::ends_when_SMF</span></span>:<br/><a href="3-scn.html#SP17">§17</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">task</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> *</span><span class="identifier-syntax">NPs</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">SW</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">NPs</span><span class="plain-syntax">)?(</span><span class="identifier-syntax">NPs</span><span class="plain-syntax">[0]):</span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">OW</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">NPs</span><span class="plain-syntax">)?(</span><span class="identifier-syntax">NPs</span><span class="plain-syntax">[1]):</span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">O2W</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">NPs</span><span class="plain-syntax">)?(</span><span class="identifier-syntax">NPs</span><span class="plain-syntax">[2]):</span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">;</span>
|
||||
|
@ -466,23 +480,23 @@ two noun phrases and sometimes three.
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">PASS_1_SMFT:</span>
|
||||
<span class="plain-syntax"> </span><a href="3-scn.html#SP25" class="function-link"><span class="function-syntax">Scenes::new_scene_anchor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-scn.html#SP26" class="function-link"><span class="function-syntax">Scenes::new_scene_anchor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">PASS_2_SMFT:</span>
|
||||
<span class="plain-syntax"> </span><a href="3-scn.html#SP25" class="function-link"><span class="function-syntax">Scenes::new_scene_anchor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-scn.html#SP26" class="function-link"><span class="function-syntax">Scenes::new_scene_anchor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">V</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP19" class="paragraph-anchor"></a><b>§19. </b>This rather clumsy global variable is a convenience when parsing the
|
||||
<p class="commentary firstcommentary"><a id="SP20" class="paragraph-anchor"></a><b>§20. </b>This rather clumsy global variable is a convenience when parsing the
|
||||
Preform grammar below.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">scene_end_of_which_parsed</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP20" class="paragraph-anchor"></a><b>§20. </b>Sentences giving scene boundaries have a simple form:
|
||||
<p class="commentary firstcommentary"><a id="SP21" class="paragraph-anchor"></a><b>§21. </b>Sentences giving scene boundaries have a simple form:
|
||||
</p>
|
||||
|
||||
<blockquote>
|
||||
|
@ -506,10 +520,10 @@ have to be worded as one.
|
|||
<pre class="Preform-displayed-code all-displayed-code code-font">
|
||||
<span class="Preform-function-syntax"><scene-ends-sentence-subject></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><scene-name></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> { TRUE, RP[1] }</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP20_1" class="named-paragraph-link"><span class="named-paragraph">Issue PM_ScenesOnly problem</span><span class="named-paragraph-number">20.1</span></a></span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP21_1" class="named-paragraph-link"><span class="named-paragraph">Issue PM_ScenesOnly problem</span><span class="named-paragraph-number">21.1</span></a></span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is <a href="../words-module/4-ap.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP20_1" class="paragraph-anchor"></a><b>§20.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Issue PM_ScenesOnly problem</span><span class="named-paragraph-number">20.1</span></span><span class="Preform-comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP21_1" class="paragraph-anchor"></a><b>§21.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Issue PM_ScenesOnly problem</span><span class="named-paragraph-number">21.1</span></span><span class="Preform-comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -519,8 +533,8 @@ have to be worded as one.
|
|||
<span class="plain-syntax"> </span><span class="string-syntax">"confrontation is a scene.'"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> ==> { </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax"> };</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP20">§20</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP21" class="paragraph-anchor"></a><b>§21. </b>The adverb, if present, always matches, since the scene end is created
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP21">§21</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP22" class="paragraph-anchor"></a><b>§22. </b>The adverb, if present, always matches, since the scene end is created
|
||||
if it doesn't already exist:
|
||||
</p>
|
||||
|
||||
|
@ -529,24 +543,24 @@ if it doesn't already exist:
|
|||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><scene-end-name-creating></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> { pass 1 }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is <a href="../words-module/4-ap.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP22" class="paragraph-anchor"></a><b>§22. </b>The following is elementary enough, but we want to be careful because
|
||||
<p class="commentary firstcommentary"><a id="SP23" class="paragraph-anchor"></a><b>§23. </b>The following is elementary enough, but we want to be careful because
|
||||
there are possible ambiguities: the condition might contain the word "ends"
|
||||
in a different context, for instance, and could still be valid in that case.
|
||||
</p>
|
||||
|
||||
<pre class="Preform-displayed-code all-displayed-code code-font">
|
||||
<span class="Preform-function-syntax"><scene-ends-sentence-object></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><text-including-a-calling></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP22_1" class="named-paragraph-link"><span class="named-paragraph">Issue PM_ScenesDisallowCalled problem</span><span class="named-paragraph-number">22.1</span></a></span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><text-including-a-calling></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP23_1" class="named-paragraph-link"><span class="named-paragraph">Issue PM_ScenesDisallowCalled problem</span><span class="named-paragraph-number">23.1</span></a></span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">play</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">begins</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> { -1, - }</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">play</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">ends</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP22_2" class="named-paragraph-link"><span class="named-paragraph">Issue PM_ScenesNotPlay problem</span><span class="named-paragraph-number">22.2</span></a></span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">play</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">ends</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP23_2" class="named-paragraph-link"><span class="named-paragraph">Issue PM_ScenesNotPlay problem</span><span class="named-paragraph-number">23.2</span></a></span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><scene-name></span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">begins</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> { 0, -, <<scene:named>> = RP[1] }</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><scene-name></span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">ends</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> { 1, -, <<scene:named>> = RP[1] }</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><scene-name></span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">ends</span><span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><scene-end-name></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> { R[2], -, <<scene:named>> = RP[1] }</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><scene-name></span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">ends</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP22_3" class="named-paragraph-link"><span class="named-paragraph">Issue PM_ScenesUnknownEnd problem</span><span class="named-paragraph-number">22.3</span></a></span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><scene-name></span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">ends</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP23_3" class="named-paragraph-link"><span class="named-paragraph">Issue PM_ScenesUnknownEnd problem</span><span class="named-paragraph-number">23.3</span></a></span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><s-condition></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> { -2, -, <<parse_node:cond>> = RP[1] }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is <a href="../words-module/4-ap.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP22_1" class="paragraph-anchor"></a><b>§22.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Issue PM_ScenesDisallowCalled problem</span><span class="named-paragraph-number">22.1</span></span><span class="Preform-comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP23_1" class="paragraph-anchor"></a><b>§23.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Issue PM_ScenesDisallowCalled problem</span><span class="named-paragraph-number">23.1</span></span><span class="Preform-comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -558,8 +572,8 @@ in a different context, for instance, and could still be valid in that case.
|
|||
<span class="plain-syntax"> </span><span class="string-syntax">"not allowed!"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> ==> { -1, - };</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP22">§22</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP22_2" class="paragraph-anchor"></a><b>§22.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Issue PM_ScenesNotPlay problem</span><span class="named-paragraph-number">22.2</span></span><span class="comment-syntax"> =</span>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP23">§23</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP23_2" class="paragraph-anchor"></a><b>§23.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Issue PM_ScenesNotPlay problem</span><span class="named-paragraph-number">23.2</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -570,8 +584,8 @@ in a different context, for instance, and could still be valid in that case.
|
|||
<span class="plain-syntax"> </span><span class="string-syntax">"all scenes end."</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> ==> { -1, - };</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP22">§22</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP22_3" class="paragraph-anchor"></a><b>§22.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Issue PM_ScenesUnknownEnd problem</span><span class="named-paragraph-number">22.3</span></span><span class="comment-syntax"> =</span>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP23">§23</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP23_3" class="paragraph-anchor"></a><b>§23.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Issue PM_ScenesUnknownEnd problem</span><span class="named-paragraph-number">23.3</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -581,8 +595,8 @@ in a different context, for instance, and could still be valid in that case.
|
|||
<span class="plain-syntax"> </span><span class="string-syntax">"when...' or 'Confrontation ends tragically when...'."</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> ==> { -1, - };</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP22">§22</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP23" class="paragraph-anchor"></a><b>§23. </b>Where the following filters instance names to allow those of scenes only,
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP23">§23</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP24" class="paragraph-anchor"></a><b>§24. </b>Where the following filters instance names to allow those of scenes only,
|
||||
and also internally converts the result:
|
||||
</p>
|
||||
|
||||
|
@ -592,10 +606,10 @@ and also internally converts the result:
|
|||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><scene-name-unarticled></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> { pass 1 }</span>
|
||||
|
||||
<span class="Preform-function-syntax"><scene-name-unarticled></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><instance-of-non-object></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP23_1" class="named-paragraph-link"><span class="named-paragraph">Convert instance result to scene result, if possible</span><span class="named-paragraph-number">23.1</span></a></span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><instance-of-non-object></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP24_1" class="named-paragraph-link"><span class="named-paragraph">Convert instance result to scene result, if possible</span><span class="named-paragraph-number">24.1</span></a></span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is <a href="../words-module/4-ap.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP23_1" class="paragraph-anchor"></a><b>§23.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Convert instance result to scene result, if possible</span><span class="named-paragraph-number">23.1</span></span><span class="Preform-comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP24_1" class="paragraph-anchor"></a><b>§24.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Convert instance result to scene result, if possible</span><span class="named-paragraph-number">24.1</span></span><span class="Preform-comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -604,8 +618,8 @@ and also internally converts the result:
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">scene_end_of_which_parsed</span><span class="plain-syntax"> = </span><a href="3-scn.html#SP13" class="function-link"><span class="function-syntax">Scenes::from_named_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> ==> { -, </span><span class="identifier-syntax">scene_end_of_which_parsed</span><span class="plain-syntax"> };</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP23">§23</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP24" class="paragraph-anchor"></a><b>§24. </b>Lastly, scene end names are parsed by these internals. They are identical
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP24">§24</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP25" class="paragraph-anchor"></a><b>§25. </b>Lastly, scene end names are parsed by these internals. They are identical
|
||||
except that the creating case will create a new end if need be so that it
|
||||
never fails.
|
||||
</p>
|
||||
|
@ -625,7 +639,7 @@ never fails.
|
|||
<span class="Preform-plain-syntax">}</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is <a href="../words-module/4-ap.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP25" class="paragraph-anchor"></a><b>§25. </b>In a sentence like
|
||||
<p class="commentary firstcommentary"><a id="SP26" class="paragraph-anchor"></a><b>§26. </b>In a sentence like
|
||||
</p>
|
||||
|
||||
<blockquote>
|
||||
|
@ -637,7 +651,7 @@ ends" the other end.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Scenes::new_scene_anchor</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">Scenes::new_scene_anchor</span></span>:<br/><a href="3-scn.html#SP17">§17</a>, <a href="3-scn.html#SP18">§18</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">phase</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">given_end</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Scenes::new_scene_anchor</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">Scenes::new_scene_anchor</span></span>:<br/><a href="3-scn.html#SP18">§18</a>, <a href="3-scn.html#SP19">§19</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">phase</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">given_end</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">this_scene</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="comment-syntax"> scene whose end is being caused: must be set</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">end</span><span class="plain-syntax"> = -1; </span><span class="comment-syntax"> end which is being anchored: must be set</span>
|
||||
|
||||
|
@ -656,11 +670,11 @@ ends" the other end.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">CW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP25_4" class="named-paragraph-link"><span class="named-paragraph">Parse the scene and end to be anchored</span><span class="named-paragraph-number">25.4</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP26_4" class="named-paragraph-link"><span class="named-paragraph">Parse the scene and end to be anchored</span><span class="named-paragraph-number">26.4</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">this_scene</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">end</span><span class="plain-syntax"> < </span><span class="constant-syntax">0</span><span class="plain-syntax">)) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"scene misparsed"</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">phase</span><span class="plain-syntax"> == </span><span class="constant-syntax">2</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP25_5" class="named-paragraph-link"><span class="named-paragraph">Parse which form of anchor we have</span><span class="named-paragraph-number">25.5</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP26_5" class="named-paragraph-link"><span class="named-paragraph">Parse which form of anchor we have</span><span class="named-paragraph-number">26.5</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">this_scene</span><span class="plain-syntax"> == </span><span class="identifier-syntax">SC_entire_game</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">external_condition</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">StandardProblems::sentence_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::syntax_tree</span><span class="plain-syntax">(),</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_EntireGameHardwired</span><span class="plain-syntax">),</span>
|
||||
|
@ -668,23 +682,23 @@ ends" the other end.
|
|||
<span class="plain-syntax"> </span><span class="string-syntax">"because it is a built-in scene designed to be going on whenever there "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"is play going on in the story."</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">when_play_begins</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP25_1" class="named-paragraph-link"><span class="named-paragraph">Connect this end to the start of play</span><span class="named-paragraph-number">25.1</span></a></span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP26_1" class="named-paragraph-link"><span class="named-paragraph">Connect this end to the start of play</span><span class="named-paragraph-number">26.1</span></a></span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">other_scene</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP25_3" class="named-paragraph-link"><span class="named-paragraph">Connect this end to an end of another scene</span><span class="named-paragraph-number">25.3</span></a></span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP26_3" class="named-paragraph-link"><span class="named-paragraph">Connect this end to an end of another scene</span><span class="named-paragraph-number">26.3</span></a></span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">external_condition</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP25_2" class="named-paragraph-link"><span class="named-paragraph">Make this an external scene end condition</span><span class="named-paragraph-number">25.2</span></a></span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP26_2" class="named-paragraph-link"><span class="named-paragraph">Make this an external scene end condition</span><span class="named-paragraph-number">26.2</span></a></span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"failed to obtain an anchor condition"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP25_1" class="paragraph-anchor"></a><b>§25.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Connect this end to the start of play</span><span class="named-paragraph-number">25.1</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP26_1" class="paragraph-anchor"></a><b>§26.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Connect this end to the start of play</span><span class="named-paragraph-number">26.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">this_scene</span><span class="plain-syntax">-></span><span class="element-syntax">start_of_play</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP25">§25</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP25_2" class="paragraph-anchor"></a><b>§25.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Make this an external scene end condition</span><span class="named-paragraph-number">25.2</span></span><span class="comment-syntax"> =</span>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP26">§26</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP26_2" class="paragraph-anchor"></a><b>§26.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Make this an external scene end condition</span><span class="named-paragraph-number">26.2</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -700,8 +714,8 @@ ends" the other end.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">this_scene</span><span class="plain-syntax">-></span><span class="element-syntax">ends</span><span class="plain-syntax">[</span><span class="identifier-syntax">end</span><span class="plain-syntax">].</span><span class="element-syntax">anchor_condition</span><span class="plain-syntax"> = </span><span class="identifier-syntax">external_condition</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">this_scene</span><span class="plain-syntax">-></span><span class="element-syntax">ends</span><span class="plain-syntax">[</span><span class="identifier-syntax">end</span><span class="plain-syntax">].</span><span class="element-syntax">anchor_condition_set</span><span class="plain-syntax"> = </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP25">§25</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP25_3" class="paragraph-anchor"></a><b>§25.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Connect this end to an end of another scene</span><span class="named-paragraph-number">25.3</span></span><span class="comment-syntax"> =</span>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP26">§26</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP26_3" class="paragraph-anchor"></a><b>§26.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Connect this end to an end of another scene</span><span class="named-paragraph-number">26.3</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -712,8 +726,8 @@ ends" the other end.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">scon</span><span class="plain-syntax">-></span><span class="identifier-syntax">next</span><span class="plain-syntax"> = </span><span class="identifier-syntax">this_scene</span><span class="plain-syntax">-></span><span class="element-syntax">ends</span><span class="plain-syntax">[</span><span class="identifier-syntax">end</span><span class="plain-syntax">].</span><span class="element-syntax">anchor_connectors</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">this_scene</span><span class="plain-syntax">-></span><span class="element-syntax">ends</span><span class="plain-syntax">[</span><span class="identifier-syntax">end</span><span class="plain-syntax">].</span><span class="element-syntax">anchor_connectors</span><span class="plain-syntax"> = </span><span class="identifier-syntax">scon</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP25">§25</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP25_4" class="paragraph-anchor"></a><b>§25.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Parse the scene and end to be anchored</span><span class="named-paragraph-number">25.4</span></span><span class="comment-syntax"> =</span>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP26">§26</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP26_4" class="paragraph-anchor"></a><b>§26.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Parse the scene and end to be anchored</span><span class="named-paragraph-number">26.4</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -728,8 +742,8 @@ ends" the other end.
|
|||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">end</span><span class="plain-syntax"> = </span><span class="identifier-syntax">given_end</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">end</span><span class="plain-syntax"> < </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">; </span><span class="comment-syntax"> to recover from any parsing Problems</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP25">§25</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP25_5" class="paragraph-anchor"></a><b>§25.5. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Parse which form of anchor we have</span><span class="named-paragraph-number">25.5</span></span><span class="comment-syntax"> =</span>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP26">§26</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP26_5" class="paragraph-anchor"></a><b>§26.5. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Parse which form of anchor we have</span><span class="named-paragraph-number">26.5</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -742,8 +756,8 @@ ends" the other end.
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">external_condition</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Specifications::new_UNKNOWN</span><span class="plain-syntax">(</span><span class="identifier-syntax">CW</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP25">§25</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP26" class="paragraph-anchor"></a><b>§26. </b>One use of scenes is to kick off rulebooks when they begin or end. The other
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP26">§26</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP27" class="paragraph-anchor"></a><b>§27. </b>One use of scenes is to kick off rulebooks when they begin or end. The other
|
||||
use for them is to predicate rules on whether they are currently playing or
|
||||
not, using a "during" clause, and this is used when parsing those in rule
|
||||
headers. Note that a match here can name a specific scene, or describe a
|
||||
|
@ -752,10 +766,10 @@ collection of them:
|
|||
|
||||
<pre class="Preform-displayed-code all-displayed-code code-font">
|
||||
<span class="Preform-function-syntax"><s-scene-description></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><s-value></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP26_1" class="named-paragraph-link"><span class="named-paragraph">Filter to force this to be a scene description</span><span class="named-paragraph-number">26.1</span></a></span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-function-syntax"><s-value></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-scn.html#SP27_1" class="named-paragraph-link"><span class="named-paragraph">Filter to force this to be a scene description</span><span class="named-paragraph-number">27.1</span></a></span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is <a href="../words-module/4-ap.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP26_1" class="paragraph-anchor"></a><b>§26.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Filter to force this to be a scene description</span><span class="named-paragraph-number">26.1</span></span><span class="Preform-comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP27_1" class="paragraph-anchor"></a><b>§27.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Filter to force this to be a scene description</span><span class="named-paragraph-number">27.1</span></span><span class="Preform-comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -768,8 +782,8 @@ collection of them:
|
|||
<span class="plain-syntax"> ==> { -, </span><span class="identifier-syntax">spec</span><span class="plain-syntax"> };</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP26">§26</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP27" class="paragraph-anchor"></a><b>§27. Rules predicated on scenes. </b>Rules can be set to fire only during a certain scene, or a scene matching some
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP27">§27</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP28" class="paragraph-anchor"></a><b>§28. Rules predicated on scenes. </b>Rules can be set to fire only during a certain scene, or a scene matching some
|
||||
description. This is stored in the following scenes-feature corner of the
|
||||
<a href="../assertions-module/5-rcd.html" class="internal">Runtime Context Data (in assertions)</a> for the rule:
|
||||
</p>
|
||||
|
@ -786,8 +800,8 @@ description. This is stored in the following scenes-feature corner of the
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">srd</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Scenes::new_rcd</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">Scenes::new_rcd</span></span>:<br/><a href="3-scn.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">id_runtime_context_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">idrcd</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CREATE_RCD_FEATURE_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">scenes</span><span class="plain-syntax">, </span><span class="identifier-syntax">idrcd</span><span class="plain-syntax">, </span><a href="3-scn.html#SP27" class="function-link"><span class="function-syntax">Scenes::new_rcd_data</span></a><span class="plain-syntax">)</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Scenes::new_rcd</span><button class="popup" onclick="togglePopup('usagePopup16')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup16">Usage of <span class="code-font"><span class="function-syntax">Scenes::new_rcd</span></span>:<br/><a href="3-scn.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">id_runtime_context_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">idrcd</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CREATE_RCD_FEATURE_DATA</span><span class="plain-syntax">(</span><span class="identifier-syntax">scenes</span><span class="plain-syntax">, </span><span class="identifier-syntax">idrcd</span><span class="plain-syntax">, </span><a href="3-scn.html#SP28" class="function-link"><span class="function-syntax">Scenes::new_rcd_data</span></a><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
|
@ -805,7 +819,7 @@ description. This is stored in the following scenes-feature corner of the
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure scenes_rcd_data is private to this section.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP28" class="paragraph-anchor"></a><b>§28. </b>The reason we store a whole specification, rather than a scene constant,
|
||||
<p class="commentary firstcommentary"><a id="SP29" class="paragraph-anchor"></a><b>§29. </b>The reason we store a whole specification, rather than a scene constant,
|
||||
here is that we sometimes want rules which happen during "a recurring scene",
|
||||
or some other description of scenes in general. But the following function
|
||||
extracts a single specified scene if there is one:
|
||||
|
@ -824,7 +838,7 @@ extracts a single specified scene if there is one:
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP29" class="paragraph-anchor"></a><b>§29. </b>And this is used to make metadata for indexing.
|
||||
<p class="commentary firstcommentary"><a id="SP30" class="paragraph-anchor"></a><b>§30. </b>And this is used to make metadata for indexing.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
|
|
@ -90,6 +90,7 @@ MathJax = {
|
|||
|
||||
<span class="comment-syntax"> indirect spatial relationships</span>
|
||||
<span class="identifier-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R_visibility</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="identifier-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R_audibility</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="identifier-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R_touchability</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="identifier-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R_concealment</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="identifier-syntax">binary_predicate</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R_enclosure</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
@ -220,6 +221,13 @@ can be tested at run-time, but which can't be asserted or made true or false.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="string-syntax">"can-see"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"can-be-seen-by"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">Calculus::Schemas::new</span><span class="plain-syntax">(</span><span class="string-syntax">"TestVisibility(*1,*2)"</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PreformUtilities::wording</span><span class="plain-syntax">(</span><span class="function-syntax"><relation-names></span><span class="plain-syntax">, </span><span class="identifier-syntax">VISIBILITY_RELATION_NAME</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">R_audibility</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BinaryPredicates::make_pair</span><span class="plain-syntax">(</span><span class="identifier-syntax">spatial_bp_family</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BPTerms::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">infs_thing</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BPTerms::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">infs_thing</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="string-syntax">"can-hear"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"can-be-heard-by"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">Calculus::Schemas::new</span><span class="plain-syntax">(</span><span class="string-syntax">"TestAudibility(*1,*2)"</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PreformUtilities::wording</span><span class="plain-syntax">(</span><span class="function-syntax"><relation-names></span><span class="plain-syntax">, </span><span class="identifier-syntax">AUDIBILITY_RELATION_NAME</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">R_touchability</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BinaryPredicates::make_pair</span><span class="plain-syntax">(</span><span class="identifier-syntax">spatial_bp_family</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">BPTerms::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">infs_thing</span><span class="plain-syntax">),</span>
|
||||
|
|
|
@ -60,7 +60,7 @@ function togglePopup(material_id) {
|
|||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../inform7n.html">Inform7</a></li><li><a href="index.html">if</a></li><li><a href="index.html#6">Chapter 6: Dialogue</a></li><li><b>Dialogue Beats</b></li></ul></div>
|
||||
<p class="purpose">To manage dialogue beats and to parse their cue paragraphs.</p>
|
||||
|
||||
<ul class="toc"><li><a href="6-db.html#SP1">§1. Dialogue</a></li><li><a href="6-db.html#SP2">§2. Scanning the dialogue sections in pass 0</a></li><li><a href="6-db.html#SP3">§3. Beats</a></li><li><a href="6-db.html#SP4">§4. Processing beats after pass 1</a></li><li><a href="6-db.html#SP6">§6. Processing beats after pass 2</a></li></ul><hr class="tocbar">
|
||||
<ul class="toc"><li><a href="6-db.html#SP1">§1. Dialogue</a></li><li><a href="6-db.html#SP2">§2. Scanning the dialogue sections in pass 0</a></li><li><a href="6-db.html#SP3">§3. Beats</a></li><li><a href="6-db.html#SP5">§5. During pass 1</a></li><li><a href="6-db.html#SP6">§6. Processing beats after pass 1</a></li><li><a href="6-db.html#SP8">§8. Processing beats after pass 2</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. Dialogue. </b>This is still only partially implemented, and is aiming to implement the evolution
|
||||
proposal IE-0009. See the test group <span class="extract"><span class="extract-syntax">:dialogue</span></span> to exercise problem messages
|
||||
|
@ -113,6 +113,7 @@ each of which is a <span class="extract"><span class="extract-syntax">DIALOGUE_C
|
|||
<span class="reserved-syntax">dialogue_beat</span><span class="plain-syntax"> *</span><span class="function-syntax">DialogueBeats::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">PN</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="6-db.html#SP3_1" class="named-paragraph-link"><span class="named-paragraph">See if we are expecting a dialogue beat</span><span class="named-paragraph-number">3.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">dialogue_beat</span><span class="plain-syntax"> *</span><span class="identifier-syntax">db</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">dialogue_beat</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Node::set_beat_defined_here</span><span class="plain-syntax">(</span><span class="identifier-syntax">PN</span><span class="plain-syntax">, </span><span class="identifier-syntax">db</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="6-db.html#SP3_3" class="named-paragraph-link"><span class="named-paragraph">Initialise the beat</span><span class="named-paragraph-number">3.3</span></a></span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">previous_dialogue_beat</span><span class="plain-syntax"> = </span><span class="identifier-syntax">current_dialogue_beat</span><span class="plain-syntax">;</span>
|
||||
|
@ -154,6 +155,8 @@ dialogue, so the internal error here should be impossible to hit.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">heading</span><span class="plain-syntax"> *</span><span class="identifier-syntax">under_heading</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">as_instance</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">as_scene</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">required</span><span class="plain-syntax">; </span><span class="comment-syntax"> of </span><span class="extract"><span class="extract-syntax">instance</span></span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">starting_beat</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">immediately_after</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">some_time_after</span><span class="plain-syntax">; </span><span class="comment-syntax"> of </span><span class="extract"><span class="extract-syntax">parse_node</span></span>
|
||||
|
@ -176,6 +179,8 @@ dialogue, so the internal error here should be impossible to hit.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="element-syntax">under_heading</span><span class="plain-syntax"> = </span><span class="identifier-syntax">dialogue_section_being_scanned</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="element-syntax">as_instance</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="element-syntax">as_scene</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="element-syntax">required</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="element-syntax">starting_beat</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="element-syntax">immediately_after</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="element-syntax">some_time_after</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="element-syntax">some_time_before</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax">);</span>
|
||||
|
@ -202,6 +207,7 @@ We annotate each clause with the answer. Thus we might have:
|
|||
<span class="definition-keyword">enum</span> <span class="constant-syntax">AFTER_DBC</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">IMMEDIATELY_AFTER_DBC</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">BEFORE_DBC</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">REQUIRING_DBC</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">LATER_DBC</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">NEXT_DBC</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">PROPERTY_DBC</span>
|
||||
|
@ -231,9 +237,13 @@ We annotate each clause with the answer. Thus we might have:
|
|||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">after</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> { AFTER_DBC, - }</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">immediately</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">after</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> { IMMEDIATELY_AFTER_DBC, - }</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">before</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> { BEFORE_DBC, - }</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">requiring</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> { REQUIRING_DBC, - }</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">later</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> { LATER_DBC, - }</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">next</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> { NEXT_DBC, - }</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> { PROPERTY_DBC, - }</span>
|
||||
|
||||
<span class="Preform-function-syntax"><dialogue-beat-starting-name></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">starting</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">beat</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is <a href="../words-module/4-ap.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3_6" class="paragraph-anchor"></a><b>§3.6. </b>It's convenient to be able to read this back in the debugging log, so:
|
||||
|
@ -250,6 +260,7 @@ We annotate each clause with the answer. Thus we might have:
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">AFTER_DBC:</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"AFTER"</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">IMMEDIATELY_AFTER_DBC:</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"IMMEDIATELY_AFTER"</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">BEFORE_DBC:</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"BEFORE"</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">REQUIRING_DBC:</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"REQUIRING"</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">LATER_DBC:</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"LATER"</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">NEXT_DBC:</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"NEXT"</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">PROPERTY_DBC:</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"PROPERTY"</span><span class="plain-syntax">); </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
|
@ -272,7 +283,15 @@ but not of course both. If the latter, we construct the beat name itself as
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Annotations::read_int</span><span class="plain-syntax">(</span><span class="identifier-syntax">clause</span><span class="plain-syntax">, </span><span class="identifier-syntax">dialogue_beat_clause_ANNOT</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">BEAT_NAME_DBC:</span>
|
||||
<span class="plain-syntax"> </span><span class="function-syntax"><dialogue-beat-clause></span><span class="plain-syntax">(</span><span class="identifier-syntax">CW</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">current_dialogue_beat</span><span class="plain-syntax">-></span><span class="element-syntax">beat_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax"><dialogue-beat-clause></span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">NW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax"><dialogue-beat-clause></span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax"><instance></span><span class="plain-syntax">(</span><span class="identifier-syntax">NW</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><span class="function-syntax"><<rp>></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="6-db.html#SP4" class="function-link"><span class="function-syntax">DialogueBeats::non_unique_instance_problem</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_dialogue_beat</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">current_dialogue_beat</span><span class="plain-syntax">-></span><span class="element-syntax">beat_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NW</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax"><dialogue-beat-starting-name></span><span class="plain-syntax">(</span><span class="identifier-syntax">NW</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">current_dialogue_beat</span><span class="plain-syntax">-></span><span class="element-syntax">starting_beat</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dialogue_beat_name_count</span><span class="plain-syntax">++;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">SCENE_NAME_DBC:</span>
|
||||
|
@ -337,42 +356,59 @@ here, it will be the first to be created, and will thus become the default.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="element-syntax">as_instance</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::latest</span><span class="plain-syntax">();</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="6-db.html#SP3">§3</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. Processing beats after pass 1. </b>It's now a little later, and the following is called to look at each beat and
|
||||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. </b>This is useful in other contexts, too.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">DialogueBeats::non_unique_instance_problem</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">DialogueBeats::non_unique_instance_problem</span></span>:<br/><a href="6-db.html#SP3_7">§3.7</a><br/>Dialogue Lines - <a href="6-dl.html#SP1_7">§1.7</a><br/>Dialogue Choices - <a href="6-dc.html#SP2_3">§2.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_source</span><span class="plain-syntax">(1, </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_wording</span><span class="plain-syntax">(2, </span><span class="identifier-syntax">Instances::get_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_source</span><span class="plain-syntax">(3, </span><span class="identifier-syntax">Instances::get_creating_sentence</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_kind</span><span class="plain-syntax">(4, </span><span class="identifier-syntax">Instances::to_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_kind</span><span class="plain-syntax">(5, </span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">StandardProblems::handmade_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::syntax_tree</span><span class="plain-syntax">(),</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_BeatNameNotUnique</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_segment</span><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"%1 would like to make %5 called '%2', but there is %4 already called that "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"(created at %3)."</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_end</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>§5. During pass 1. </b>This is unfinished business (see above):
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">DialogueBeats::make_tied_scene</span><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">dialogue_beat</span><span class="plain-syntax"> *</span><span class="identifier-syntax">db</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_beat_defined_here</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">db</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="element-syntax">scene_name</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">pcalc_prop</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Propositions::Abstract::to_create_something</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_scene</span><span class="plain-syntax">, </span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="element-syntax">scene_name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Assert::true</span><span class="plain-syntax">(</span><span class="identifier-syntax">prop</span><span class="plain-syntax">, </span><span class="identifier-syntax">CERTAIN_CE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="element-syntax">as_scene</span><span class="plain-syntax"> = </span><a href="3-scn.html#SP13" class="function-link"><span class="function-syntax">Scenes::from_named_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Instances::latest</span><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><a href="3-scn.html#SP15" class="function-link"><span class="function-syntax">Scenes::set_beat</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="element-syntax">as_scene</span><span class="plain-syntax">, </span><span class="identifier-syntax">db</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>§6. Processing beats after pass 1. </b>It's now a little later, and the following is called to look at each beat and
|
||||
parse its clauses further.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">DialogueBeats::decide_cue_sequencing</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">DialogueBeats::decide_cue_sequencing</span></span>:<br/>Dialogue - <a href="6-dlg.html#SP11">§11</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">DialogueBeats::decide_cue_sequencing</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">DialogueBeats::decide_cue_sequencing</span></span>:<br/>Dialogue - <a href="6-dlg.html#SP11">§11</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">dialogue_beat</span><span class="plain-syntax"> *</span><span class="identifier-syntax">db</span><span class="plain-syntax">, *</span><span class="identifier-syntax">previous</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">db</span><span class="plain-syntax">, </span><span class="reserved-syntax">dialogue_beat</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax"> = </span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="element-syntax">cue_at</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="6-db.html#SP4_1" class="named-paragraph-link"><span class="named-paragraph">Create any scene instance needed</span><span class="named-paragraph-number">4.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="6-db.html#SP4_2" class="named-paragraph-link"><span class="named-paragraph">Parse sequencing clauses</span><span class="named-paragraph-number">4.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="6-db.html#SP6_1" class="named-paragraph-link"><span class="named-paragraph">Parse sequencing clauses</span><span class="named-paragraph-number">6.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="6-dn.html#SP5" class="function-link"><span class="function-syntax">DialogueNodes::find_decisions_in_beat</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">db</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">previous</span><span class="plain-syntax"> = </span><span class="identifier-syntax">db</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP4_1" class="paragraph-anchor"></a><b>§4.1. </b>This is unfinished business (see above), and not in fact to with beat
|
||||
sequencing.
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Create any scene instance needed</span><span class="named-paragraph-number">4.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="element-syntax">scene_name</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">pcalc_prop</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Propositions::Abstract::to_create_something</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_scene</span><span class="plain-syntax">, </span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="element-syntax">scene_name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Assert::true</span><span class="plain-syntax">(</span><span class="identifier-syntax">prop</span><span class="plain-syntax">, </span><span class="identifier-syntax">CERTAIN_CE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="element-syntax">as_scene</span><span class="plain-syntax"> = </span><a href="3-scn.html#SP13" class="function-link"><span class="function-syntax">Scenes::from_named_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Instances::latest</span><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="6-db.html#SP4">§4</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP4_2" class="paragraph-anchor"></a><b>§4.2. </b>But now we take care of another five clause types, all to do with the beat being
|
||||
<p class="commentary firstcommentary"><a id="SP6_1" class="paragraph-anchor"></a><b>§6.1. </b>But now we take care of another five clause types, all to do with the beat being
|
||||
performed only after or before other beats.
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Parse sequencing clauses</span><span class="named-paragraph-number">4.2</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Parse sequencing clauses</span><span class="named-paragraph-number">6.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -386,7 +422,7 @@ performed only after or before other beats.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">iac</span><span class="plain-syntax">++;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="element-syntax">immediately_after</span><span class="plain-syntax"> = </span><a href="6-dlg.html#SP7" class="function-link"><span class="function-syntax">Dialogue::rvalue_from_dialogue_beat</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">previous</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="6-db.html#SP4_2_1" class="named-paragraph-link"><span class="named-paragraph">Issue PM_NoPreviousBeat problem</span><span class="named-paragraph-number">4.2.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="6-db.html#SP6_1_1" class="named-paragraph-link"><span class="named-paragraph">Issue PM_NoPreviousBeat problem</span><span class="named-paragraph-number">6.1.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">LATER_DBC:</span>
|
||||
|
@ -394,7 +430,7 @@ performed only after or before other beats.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">desc</span><span class="plain-syntax"> = </span><a href="6-dlg.html#SP7" class="function-link"><span class="function-syntax">Dialogue::rvalue_from_dialogue_beat</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">previous</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ADD_TO_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax">, </span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="element-syntax">some_time_after</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="6-db.html#SP4_2_1" class="named-paragraph-link"><span class="named-paragraph">Issue PM_NoPreviousBeat problem</span><span class="named-paragraph-number">4.2.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="6-db.html#SP6_1_1" class="named-paragraph-link"><span class="named-paragraph">Issue PM_NoPreviousBeat problem</span><span class="named-paragraph-number">6.1.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">IMMEDIATELY_AFTER_DBC:</span>
|
||||
|
@ -404,7 +440,15 @@ performed only after or before other beats.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">A</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax"><dialogue-beat-clause></span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="function-syntax"><np-articled-list></span><span class="plain-syntax">(</span><span class="identifier-syntax">A</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">AL</span><span class="plain-syntax"> = </span><span class="function-syntax"><<rp>></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="6-db.html#SP5" class="function-link"><span class="function-syntax">DialogueBeats::parse_beat_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">c</span><span class="plain-syntax">, </span><span class="identifier-syntax">db</span><span class="plain-syntax">, </span><span class="identifier-syntax">AL</span><span class="plain-syntax">, &</span><span class="identifier-syntax">iac</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="6-db.html#SP7" class="function-link"><span class="function-syntax">DialogueBeats::parse_beat_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">c</span><span class="plain-syntax">, </span><span class="identifier-syntax">db</span><span class="plain-syntax">, </span><span class="identifier-syntax">AL</span><span class="plain-syntax">, &</span><span class="identifier-syntax">iac</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">REQUIRING_DBC:</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="function-syntax"><dialogue-beat-clause></span><span class="plain-syntax">(</span><span class="identifier-syntax">CW</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">A</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax"><dialogue-beat-clause></span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="function-syntax"><np-articled-list></span><span class="plain-syntax">(</span><span class="identifier-syntax">A</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">AL</span><span class="plain-syntax"> = </span><span class="function-syntax"><<rp>></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="6-db.html#SP7" class="function-link"><span class="function-syntax">DialogueBeats::parse_required_speaker_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">db</span><span class="plain-syntax">, </span><span class="identifier-syntax">AL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -414,8 +458,8 @@ performed only after or before other beats.
|
|||
<span class="plain-syntax"> </span><span class="string-syntax">"this dialogue beat asks to be immediately after two or more other beats"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"either with 'next' or 'immediately after'. It can only give one."</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="6-db.html#SP4">§4</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP4_2_1" class="paragraph-anchor"></a><b>§4.2.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Issue PM_NoPreviousBeat problem</span><span class="named-paragraph-number">4.2.1</span></span><span class="comment-syntax"> =</span>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="6-db.html#SP6">§6</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP6_1_1" class="paragraph-anchor"></a><b>§6.1.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Issue PM_NoPreviousBeat problem</span><span class="named-paragraph-number">6.1.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -423,8 +467,8 @@ performed only after or before other beats.
|
|||
<span class="plain-syntax"> </span><span class="string-syntax">"this dialogue beat asks to be performed after the previous one"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"but in this dialogue section, there is no previous one."</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="6-db.html#SP4_2">§4.2</a> (twice).</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>§5. </b>Syntactically, these clauses all take articled lists: <span class="extract"><span class="extract-syntax">after X, Y and Z</span></span>, for
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="6-db.html#SP6_1">§6.1</a> (twice).</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>§7. </b>Syntactically, these clauses all take articled lists: <span class="extract"><span class="extract-syntax">after X, Y and Z</span></span>, for
|
||||
example. The following burrows through the resulting subtree, in which each of
|
||||
<span class="extract"><span class="extract-syntax">X</span></span>, <span class="extract"><span class="extract-syntax">Y</span></span> and <span class="extract"><span class="extract-syntax">Z</span></span> would be an <span class="extract"><span class="extract-syntax">UNPARSED_NOUN_NT</span></span> node.
|
||||
</p>
|
||||
|
@ -435,15 +479,15 @@ and "before", there are no limits.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">DialogueBeats::parse_beat_list</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">DialogueBeats::parse_beat_list</span></span>:<br/><a href="6-db.html#SP4_2">§4.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">c</span><span class="plain-syntax">, </span><span class="reserved-syntax">dialogue_beat</span><span class="plain-syntax"> *</span><span class="identifier-syntax">db</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">AL</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iac</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">DialogueBeats::parse_beat_list</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">DialogueBeats::parse_beat_list</span></span>:<br/><a href="6-db.html#SP6_1">§6.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">c</span><span class="plain-syntax">, </span><span class="reserved-syntax">dialogue_beat</span><span class="plain-syntax"> *</span><span class="identifier-syntax">db</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">AL</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iac</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Node::is</span><span class="plain-syntax">(</span><span class="identifier-syntax">AL</span><span class="plain-syntax">, </span><span class="identifier-syntax">AND_NT</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><a href="6-db.html#SP5" class="function-link"><span class="function-syntax">DialogueBeats::parse_beat_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">c</span><span class="plain-syntax">, </span><span class="identifier-syntax">db</span><span class="plain-syntax">, </span><span class="identifier-syntax">AL</span><span class="plain-syntax">-></span><span class="identifier-syntax">down</span><span class="plain-syntax">, </span><span class="identifier-syntax">iac</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="6-db.html#SP5" class="function-link"><span class="function-syntax">DialogueBeats::parse_beat_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">c</span><span class="plain-syntax">, </span><span class="identifier-syntax">db</span><span class="plain-syntax">, </span><span class="identifier-syntax">AL</span><span class="plain-syntax">-></span><span class="identifier-syntax">down</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax">, </span><span class="identifier-syntax">iac</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="6-db.html#SP7" class="function-link"><span class="function-syntax">DialogueBeats::parse_beat_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">c</span><span class="plain-syntax">, </span><span class="identifier-syntax">db</span><span class="plain-syntax">, </span><span class="identifier-syntax">AL</span><span class="plain-syntax">-></span><span class="identifier-syntax">down</span><span class="plain-syntax">, </span><span class="identifier-syntax">iac</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="6-db.html#SP7" class="function-link"><span class="function-syntax">DialogueBeats::parse_beat_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">c</span><span class="plain-syntax">, </span><span class="identifier-syntax">db</span><span class="plain-syntax">, </span><span class="identifier-syntax">AL</span><span class="plain-syntax">-></span><span class="identifier-syntax">down</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax">, </span><span class="identifier-syntax">iac</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Node::is</span><span class="plain-syntax">(</span><span class="identifier-syntax">AL</span><span class="plain-syntax">, </span><span class="identifier-syntax">UNPARSED_NOUN_NT</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax">(</span><span class="identifier-syntax">c</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">IMMEDIATELY_AFTER_DBC:</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">B</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax"><dialogue-beat-clause></span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">desc</span><span class="plain-syntax"> = </span><a href="6-db.html#SP5" class="function-link"><span class="function-syntax">DialogueBeats::parse_beat_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">B</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">B</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">AL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">desc</span><span class="plain-syntax"> = </span><a href="6-db.html#SP7" class="function-link"><span class="function-syntax">DialogueBeats::parse_beat_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">B</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">desc</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> (*</span><span class="identifier-syntax">iac</span><span class="plain-syntax">)++;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="element-syntax">immediately_after</span><span class="plain-syntax"> = </span><span class="identifier-syntax">desc</span><span class="plain-syntax">;</span>
|
||||
|
@ -451,14 +495,14 @@ and "before", there are no limits.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">AFTER_DBC:</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">B</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax"><dialogue-beat-clause></span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">desc</span><span class="plain-syntax"> = </span><a href="6-db.html#SP5" class="function-link"><span class="function-syntax">DialogueBeats::parse_beat_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">B</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">B</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">AL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">desc</span><span class="plain-syntax"> = </span><a href="6-db.html#SP7" class="function-link"><span class="function-syntax">DialogueBeats::parse_beat_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">B</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">desc</span><span class="plain-syntax">) </span><span class="identifier-syntax">ADD_TO_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax">, </span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="element-syntax">some_time_after</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">BEFORE_DBC:</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">B</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax"><dialogue-beat-clause></span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">desc</span><span class="plain-syntax"> = </span><a href="6-db.html#SP5" class="function-link"><span class="function-syntax">DialogueBeats::parse_beat_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">B</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">B</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">AL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">desc</span><span class="plain-syntax"> = </span><a href="6-db.html#SP7" class="function-link"><span class="function-syntax">DialogueBeats::parse_beat_name</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">B</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">desc</span><span class="plain-syntax">) </span><span class="identifier-syntax">ADD_TO_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax">, </span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="element-syntax">some_time_before</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -466,6 +510,34 @@ and "before", there are no limits.
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">DialogueBeats::parse_required_speaker_list</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">DialogueBeats::parse_required_speaker_list</span></span>:<br/><a href="6-db.html#SP6_1">§6.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">dialogue_beat</span><span class="plain-syntax"> *</span><span class="identifier-syntax">db</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">AL</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Node::is</span><span class="plain-syntax">(</span><span class="identifier-syntax">AL</span><span class="plain-syntax">, </span><span class="identifier-syntax">AND_NT</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><a href="6-db.html#SP7" class="function-link"><span class="function-syntax">DialogueBeats::parse_required_speaker_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">db</span><span class="plain-syntax">, </span><span class="identifier-syntax">AL</span><span class="plain-syntax">-></span><span class="identifier-syntax">down</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="6-db.html#SP7" class="function-link"><span class="function-syntax">DialogueBeats::parse_required_speaker_list</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">db</span><span class="plain-syntax">, </span><span class="identifier-syntax">AL</span><span class="plain-syntax">-></span><span class="identifier-syntax">down</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Node::is</span><span class="plain-syntax">(</span><span class="identifier-syntax">AL</span><span class="plain-syntax">, </span><span class="identifier-syntax">UNPARSED_NOUN_NT</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">B</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">AL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax"><s-type-expression-uncached></span><span class="plain-syntax">(</span><span class="identifier-syntax">B</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">desc</span><span class="plain-syntax"> = </span><span class="function-syntax"><<rp>></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Rvalues::to_instance</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::to_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ADD_TO_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">instance</span><span class="plain-syntax">, </span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="element-syntax">required</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_source</span><span class="plain-syntax">(1, </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_wording</span><span class="plain-syntax">(2, </span><span class="identifier-syntax">B</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">StandardProblems::handmade_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::syntax_tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_NotASpeaker</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_segment</span><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"The dialogue beat %1 apparently requires a speaker (other than the player) "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"called '%2' to be present in order for it to be performed, but there's "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"nobody of that name."</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_end</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">DialogueBeats::parse_beat_name</span><span class="plain-syntax">(</span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">CW</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax"><s-type-expression-uncached></span><span class="plain-syntax">(</span><span class="identifier-syntax">CW</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">desc</span><span class="plain-syntax"> = </span><span class="function-syntax"><<rp>></span><span class="plain-syntax">;</span>
|
||||
|
@ -494,7 +566,7 @@ and "before", there are no limits.
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>§6. Processing beats after pass 2. </b>It's now later still. At this point all constant values have been created, and
|
||||
<p class="commentary firstcommentary"><a id="SP8" class="paragraph-anchor"></a><b>§8. Processing beats after pass 2. </b>It's now later still. At this point all constant values have been created, and
|
||||
therefore we can safely parse <span class="extract"><span class="extract-syntax">ABOUT</span></span> and <span class="extract"><span class="extract-syntax">PROPERTY</span></span> clauses. Again, these are
|
||||
syntactically articled lists.
|
||||
</p>
|
||||
|
@ -512,7 +584,7 @@ syntactically articled lists.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">A</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax"><dialogue-beat-clause></span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="function-syntax"><np-articled-list></span><span class="plain-syntax">(</span><span class="identifier-syntax">A</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">AL</span><span class="plain-syntax"> = </span><span class="function-syntax"><<rp>></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="6-db.html#SP7" class="function-link"><span class="function-syntax">DialogueBeats::parse_topic</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="element-syntax">about_list</span><span class="plain-syntax">, </span><span class="identifier-syntax">AL</span><span class="plain-syntax">, </span><span class="identifier-syntax">DIALOGUE_CUE_NT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="6-db.html#SP9" class="function-link"><span class="function-syntax">DialogueBeats::parse_topic</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="element-syntax">about_list</span><span class="plain-syntax">, </span><span class="identifier-syntax">AL</span><span class="plain-syntax">, </span><span class="identifier-syntax">DIALOGUE_CUE_NT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">PROPERTY_DBC:</span><span class="plain-syntax"> {</span>
|
||||
|
@ -520,7 +592,7 @@ syntactically articled lists.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">A</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax"><dialogue-beat-clause></span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="function-syntax"><np-articled-list></span><span class="plain-syntax">(</span><span class="identifier-syntax">A</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">AL</span><span class="plain-syntax"> = </span><span class="function-syntax"><<rp>></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="6-db.html#SP8" class="function-link"><span class="function-syntax">DialogueBeats::parse_property</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">db</span><span class="plain-syntax">, </span><span class="identifier-syntax">AL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="6-db.html#SP10" class="function-link"><span class="function-syntax">DialogueBeats::parse_property</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">db</span><span class="plain-syntax">, </span><span class="identifier-syntax">AL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -528,15 +600,15 @@ syntactically articled lists.
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>§7. </b>Topics are picked up here. For example, <span class="extract"><span class="extract-syntax">about the carriage clock</span></span> results
|
||||
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>§9. </b>Topics are picked up here. For example, <span class="extract"><span class="extract-syntax">about the carriage clock</span></span> results
|
||||
in the <span class="extract"><span class="extract-syntax">UNPARSED_NOUN_NT</span></span> node "carriage clock".
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">DialogueBeats::parse_topic</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">DialogueBeats::parse_topic</span></span>:<br/><a href="6-db.html#SP6">§6</a><br/>Dialogue Lines - <a href="6-dl.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">about_list</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">AL</span><span class="plain-syntax">, </span><span class="reserved-syntax">unsigned</span><span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">nt</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">DialogueBeats::parse_topic</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">DialogueBeats::parse_topic</span></span>:<br/><a href="6-db.html#SP8">§8</a><br/>Dialogue Lines - <a href="6-dl.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">about_list</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">AL</span><span class="plain-syntax">, </span><span class="reserved-syntax">unsigned</span><span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">nt</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Node::is</span><span class="plain-syntax">(</span><span class="identifier-syntax">AL</span><span class="plain-syntax">, </span><span class="identifier-syntax">AND_NT</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><a href="6-db.html#SP7" class="function-link"><span class="function-syntax">DialogueBeats::parse_topic</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">about_list</span><span class="plain-syntax">, </span><span class="identifier-syntax">AL</span><span class="plain-syntax">-></span><span class="identifier-syntax">down</span><span class="plain-syntax">, </span><span class="identifier-syntax">nt</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="6-db.html#SP7" class="function-link"><span class="function-syntax">DialogueBeats::parse_topic</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">about_list</span><span class="plain-syntax">, </span><span class="identifier-syntax">AL</span><span class="plain-syntax">-></span><span class="identifier-syntax">down</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax">, </span><span class="identifier-syntax">nt</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="6-db.html#SP9" class="function-link"><span class="function-syntax">DialogueBeats::parse_topic</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">about_list</span><span class="plain-syntax">, </span><span class="identifier-syntax">AL</span><span class="plain-syntax">-></span><span class="identifier-syntax">down</span><span class="plain-syntax">, </span><span class="identifier-syntax">nt</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="6-db.html#SP9" class="function-link"><span class="function-syntax">DialogueBeats::parse_topic</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">about_list</span><span class="plain-syntax">, </span><span class="identifier-syntax">AL</span><span class="plain-syntax">-></span><span class="identifier-syntax">down</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax">, </span><span class="identifier-syntax">nt</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Node::is</span><span class="plain-syntax">(</span><span class="identifier-syntax">AL</span><span class="plain-syntax">, </span><span class="identifier-syntax">UNPARSED_NOUN_NT</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">A</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">AL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax"><s-type-expression-uncached></span><span class="plain-syntax">(</span><span class="identifier-syntax">A</span><span class="plain-syntax">)) {</span>
|
||||
|
@ -584,16 +656,16 @@ in the <span class="extract"><span class="extract-syntax">UNPARSED_NOUN_NT</span
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP8" class="paragraph-anchor"></a><b>§8. </b>And properties are picked up here. So <span class="extract"><span class="extract-syntax">recurring</span></span> or <span class="extract"><span class="extract-syntax">spontaneous</span></span>, for
|
||||
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>§10. </b>And properties are picked up here. So <span class="extract"><span class="extract-syntax">recurring</span></span> or <span class="extract"><span class="extract-syntax">spontaneous</span></span>, for
|
||||
example, might be valid. The rule is that any text given must be either the
|
||||
name of an either/or property or condition which a dialogue beat can have.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">DialogueBeats::parse_property</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">DialogueBeats::parse_property</span></span>:<br/><a href="6-db.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">dialogue_beat</span><span class="plain-syntax"> *</span><span class="identifier-syntax">db</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">AL</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">DialogueBeats::parse_property</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">DialogueBeats::parse_property</span></span>:<br/><a href="6-db.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">dialogue_beat</span><span class="plain-syntax"> *</span><span class="identifier-syntax">db</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">AL</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Node::is</span><span class="plain-syntax">(</span><span class="identifier-syntax">AL</span><span class="plain-syntax">, </span><span class="identifier-syntax">AND_NT</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><a href="6-db.html#SP8" class="function-link"><span class="function-syntax">DialogueBeats::parse_property</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">db</span><span class="plain-syntax">, </span><span class="identifier-syntax">AL</span><span class="plain-syntax">-></span><span class="identifier-syntax">down</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="6-db.html#SP8" class="function-link"><span class="function-syntax">DialogueBeats::parse_property</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">db</span><span class="plain-syntax">, </span><span class="identifier-syntax">AL</span><span class="plain-syntax">-></span><span class="identifier-syntax">down</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="6-db.html#SP10" class="function-link"><span class="function-syntax">DialogueBeats::parse_property</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">db</span><span class="plain-syntax">, </span><span class="identifier-syntax">AL</span><span class="plain-syntax">-></span><span class="identifier-syntax">down</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="6-db.html#SP10" class="function-link"><span class="function-syntax">DialogueBeats::parse_property</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">db</span><span class="plain-syntax">, </span><span class="identifier-syntax">AL</span><span class="plain-syntax">-></span><span class="identifier-syntax">down</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Node::is</span><span class="plain-syntax">(</span><span class="identifier-syntax">AL</span><span class="plain-syntax">, </span><span class="identifier-syntax">UNPARSED_NOUN_NT</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">subj</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::as_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="element-syntax">as_instance</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">A</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">AL</span><span class="plain-syntax">);</span>
|
||||
|
@ -602,12 +674,12 @@ name of an either/or property or condition which a dialogue beat can have.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Rvalues::is_CONSTANT_construction</span><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="identifier-syntax">CON_property</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Rvalues::to_property</span><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Properties::is_either_or</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="6-db.html#SP8_1" class="named-paragraph-link"><span class="named-paragraph">Assert that the beat has this property</span><span class="named-paragraph-number">8.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="6-db.html#SP10_1" class="named-paragraph-link"><span class="named-paragraph">Assert that the beat has this property</span><span class="named-paragraph-number">10.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Specifications::is_description</span><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">)) || (</span><span class="identifier-syntax">Node::is</span><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="identifier-syntax">TEST_VALUE_NT</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="6-db.html#SP8_2" class="named-paragraph-link"><span class="named-paragraph">Assert that the beat has this property value</span><span class="named-paragraph-number">8.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="6-db.html#SP10_2" class="named-paragraph-link"><span class="named-paragraph">Assert that the beat has this property value</span><span class="named-paragraph-number">10.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"Unexpected prop: $T\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">val</span><span class="plain-syntax">);</span>
|
||||
|
@ -625,7 +697,7 @@ name of an either/or property or condition which a dialogue beat can have.
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP8_1" class="paragraph-anchor"></a><b>§8.1. </b>Note the introduction into the propositions of the atom <span class="extract"><span class="extract-syntax">dialogue-beat(x)</span></span>,
|
||||
<p class="commentary firstcommentary"><a id="SP10_1" class="paragraph-anchor"></a><b>§10.1. </b>Note the introduction into the propositions of the atom <span class="extract"><span class="extract-syntax">dialogue-beat(x)</span></span>,
|
||||
in order to ensure that typechecking of the proposition will correctly spot
|
||||
that <span class="extract"><span class="extract-syntax">x</span></span> has kind <span class="extract"><span class="extract-syntax">dialogue beat</span></span>; without that, there would be problem
|
||||
messages because <span class="extract"><span class="extract-syntax">x</span></span> would be assumed as an <span class="extract"><span class="extract-syntax">object</span></span>.
|
||||
|
@ -635,7 +707,7 @@ messages because <span class="extract"><span class="extract-syntax">x</span></sp
|
|||
sentences would do, and using all of the same machinery.
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Assert that the beat has this property</span><span class="named-paragraph-number">8.1</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Assert that the beat has this property</span><span class="named-paragraph-number">10.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -645,8 +717,8 @@ sentences would do, and using all of the same machinery.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Propositions::Abstract::prop_to_set_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_dialogue_beat</span><span class="plain-syntax">), </span><span class="identifier-syntax">prop</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Assert::true_about</span><span class="plain-syntax">(</span><span class="identifier-syntax">prop</span><span class="plain-syntax">, </span><span class="identifier-syntax">subj</span><span class="plain-syntax">, </span><span class="identifier-syntax">CERTAIN_CE</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="6-db.html#SP8">§8</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP8_2" class="paragraph-anchor"></a><b>§8.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Assert that the beat has this property value</span><span class="named-paragraph-number">8.2</span></span><span class="comment-syntax"> =</span>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="6-db.html#SP10">§10</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP10_2" class="paragraph-anchor"></a><b>§10.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Assert that the beat has this property value</span><span class="named-paragraph-number">10.2</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -658,8 +730,8 @@ sentences would do, and using all of the same machinery.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="6-db.html#SP8">§8</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP9" class="paragraph-anchor"></a><b>§9. </b>So what remains to be done? Only the parsing of <span class="extract"><span class="extract-syntax">IF</span></span> and <span class="extract"><span class="extract-syntax">UNLESS</span></span> clauses,
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="6-db.html#SP10">§10</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>§11. </b>So what remains to be done? Only the parsing of <span class="extract"><span class="extract-syntax">IF</span></span> and <span class="extract"><span class="extract-syntax">UNLESS</span></span> clauses,
|
||||
which take arbitrary conditions. There's no need to do that here: we can do
|
||||
that when compiling the runtime representation of a beat. See <a href="../runtime-module/5-dbi.html" class="internal">Dialogue Beat Instances (in runtime)</a>.
|
||||
</p>
|
||||
|
|
|
@ -60,7 +60,7 @@ function togglePopup(material_id) {
|
|||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../inform7n.html">Inform7</a></li><li><a href="index.html">if</a></li><li><a href="index.html#6">Chapter 6: Dialogue</a></li><li><b>Dialogue Choices</b></li></ul></div>
|
||||
<p class="purpose">To manage dialogue choices.</p>
|
||||
|
||||
<ul class="toc"><li><a href="6-dc.html#SP1">§1. Scanning the dialogue choices in pass 0</a></li><li><a href="6-dc.html#SP7">§7. Processing choices after pass 1</a></li></ul><hr class="tocbar">
|
||||
<ul class="toc"><li><a href="6-dc.html#SP1">§1. Scanning the dialogue choices in pass 0</a></li><li><a href="6-dc.html#SP3">§3. Processing choices after pass 1</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. Scanning the dialogue choices in pass 0. </b>Choices have already been parsed a little. For example,
|
||||
</p>
|
||||
|
@ -82,10 +82,11 @@ function togglePopup(material_id) {
|
|||
<span class="reserved-syntax">dialogue_choice</span><span class="plain-syntax"> *</span><span class="function-syntax">DialogueChoices::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">PN</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Annotations::read_int</span><span class="plain-syntax">(</span><span class="identifier-syntax">PN</span><span class="plain-syntax">, </span><span class="identifier-syntax">dialogue_level_ANNOT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">L</span><span class="plain-syntax"> < </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">flow_control</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">dialogue_choice</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">dialogue_choice</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="6-dc.html#SP2_2" class="named-paragraph-link"><span class="named-paragraph">Initialise the choice</span><span class="named-paragraph-number">2.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="6-dc.html#SP2_4" class="named-paragraph-link"><span class="named-paragraph">Parse the clauses just enough to classify them</span><span class="named-paragraph-number">2.4</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="6-dc.html#SP2_3" class="named-paragraph-link"><span class="named-paragraph">Add the choice to the world model</span><span class="named-paragraph-number">2.3</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="6-dc.html#SP2_3" class="named-paragraph-link"><span class="named-paragraph">Parse the clauses just enough to classify them</span><span class="named-paragraph-number">2.3</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="6-dc.html#SP2_8" class="named-paragraph-link"><span class="named-paragraph">Add the choice to the world model</span><span class="named-paragraph-number">2.8</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dc</span><span class="plain-syntax">-></span><span class="element-syntax">as_node</span><span class="plain-syntax"> = </span><a href="6-dn.html#SP3" class="function-link"><span class="function-syntax">DialogueNodes::add_to_current_beat</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">dc</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">dc</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -121,28 +122,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">dc</span><span class="plain-syntax">-></span><span class="element-syntax">compilation_data</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RTDialogueChoices::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">PN</span><span class="plain-syntax">, </span><span class="identifier-syntax">dc</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="6-dc.html#SP2">§2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_3" class="paragraph-anchor"></a><b>§2.3. </b>Each choice produces an instance of the kind <span class="extract"><span class="extract-syntax">dialogue choice</span></span>, using the name
|
||||
given in its clauses if one was.
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Add the choice to the world model</span><span class="named-paragraph-number">2.3</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K_dialogue_choice</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"DialogueKit has not created K_dialogue_choice"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><span class="identifier-syntax">dc</span><span class="plain-syntax">-></span><span class="element-syntax">choice_name</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Wordings::empty</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">faux_name</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">faux_name</span><span class="plain-syntax">, </span><span class="string-syntax">"choice-%d"</span><span class="plain-syntax">, </span><span class="identifier-syntax">dc</span><span class="plain-syntax">-></span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax"> + </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Feeds::feed_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">faux_name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">faux_name</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">pcalc_prop</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Propositions::Abstract::to_create_something</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_dialogue_choice</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Assert::true</span><span class="plain-syntax">(</span><span class="identifier-syntax">prop</span><span class="plain-syntax">, </span><span class="identifier-syntax">CERTAIN_CE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dc</span><span class="plain-syntax">-></span><span class="element-syntax">as_instance</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::latest</span><span class="plain-syntax">();</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="6-dc.html#SP2">§2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_4" class="paragraph-anchor"></a><b>§2.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Parse the clauses just enough to classify them</span><span class="named-paragraph-number">2.4</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP2_3" class="paragraph-anchor"></a><b>§2.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Parse the clauses just enough to classify them</span><span class="named-paragraph-number">2.3</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -153,7 +133,13 @@ given in its clauses if one was.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax"><dialogue-choice-clause></span><span class="plain-syntax">(</span><span class="identifier-syntax">CW</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::write_int</span><span class="plain-syntax">(</span><span class="identifier-syntax">clause</span><span class="plain-syntax">, </span><span class="identifier-syntax">dialogue_choice_clause_ANNOT</span><span class="plain-syntax">, </span><span class="function-syntax"><<r>></span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax"><<r>></span><span class="plain-syntax"> == </span><span class="constant-syntax">CHOICE_NAME_DCC</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dc</span><span class="plain-syntax">-></span><span class="element-syntax">choice_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax"><dialogue-choice-clause></span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">NW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax"><dialogue-choice-clause></span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax"><instance></span><span class="plain-syntax">(</span><span class="identifier-syntax">NW</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><span class="function-syntax"><<rp>></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="6-db.html#SP4" class="function-link"><span class="function-syntax">DialogueBeats::non_unique_instance_problem</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_dialogue_choice</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dc</span><span class="plain-syntax">-></span><span class="element-syntax">choice_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NW</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Node::is</span><span class="plain-syntax">(</span><span class="identifier-syntax">clause</span><span class="plain-syntax">, </span><span class="identifier-syntax">DIALOGUE_SELECTION_NT</span><span class="plain-syntax">)) {</span>
|
||||
|
@ -181,10 +167,10 @@ given in its clauses if one was.
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"damaged DIALOGUE_CHOICE_NT subtree"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">failed_already</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="6-dc.html#SP2_4_1" class="named-paragraph-link"><span class="named-paragraph">Check the flow notation</span><span class="named-paragraph-number">2.4.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">failed_already</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="6-dc.html#SP2_3_1" class="named-paragraph-link"><span class="named-paragraph">Check the flow notation</span><span class="named-paragraph-number">2.3.1</span></a></span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="6-dc.html#SP2">§2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_4_1" class="paragraph-anchor"></a><b>§2.4.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Check the flow notation</span><span class="named-paragraph-number">2.4.1</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP2_3_1" class="paragraph-anchor"></a><b>§2.3.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Check the flow notation</span><span class="named-paragraph-number">2.3.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -248,9 +234,10 @@ given in its clauses if one was.
|
|||
<span class="plain-syntax"> </span><span class="string-syntax">"rather than '<-' (backwards flow) or '--' (an option)."</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_end</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">left_arrow</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">right_arrow</span><span class="plain-syntax">)) </span><span class="identifier-syntax">flow_control</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="6-dc.html#SP2_4">§2.4</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. </b>As with the analogous clauses for <a href="6-db.html" class="internal">Dialogue Beats</a>, each clause can be one
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="6-dc.html#SP2_3">§2.3</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_4" class="paragraph-anchor"></a><b>§2.4. </b>As with the analogous clauses for <a href="6-db.html" class="internal">Dialogue Beats</a>, each clause can be one
|
||||
of the following possibilities:
|
||||
</p>
|
||||
|
||||
|
@ -259,7 +246,7 @@ of the following possibilities:
|
|||
<span class="definition-keyword">enum</span> <span class="constant-syntax">UNLESS_DCC</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">PROPERTY_DCC</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. </b>Using:
|
||||
<p class="commentary firstcommentary"><a id="SP2_5" class="paragraph-anchor"></a><b>§2.5. </b>Using:
|
||||
</p>
|
||||
|
||||
<pre class="Preform-displayed-code all-displayed-code code-font">
|
||||
|
@ -270,7 +257,7 @@ of the following possibilities:
|
|||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> { PROPERTY_DCC, - }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is <a href="../words-module/4-ap.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>§5. </b></p>
|
||||
<p class="commentary firstcommentary"><a id="SP2_6" class="paragraph-anchor"></a><b>§2.6. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">DialogueChoices::write_dcc</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">c</span><span class="plain-syntax">) {</span>
|
||||
|
@ -283,7 +270,7 @@ of the following possibilities:
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>§6. </b></p>
|
||||
<p class="commentary firstcommentary"><a id="SP2_7" class="paragraph-anchor"></a><b>§2.7. </b></p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">NEW_CHOICE_DSEL</span><span class="plain-syntax"> </span><span class="identifier-syntax">from</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">TEXTUAL_DSEL</span>
|
||||
|
@ -308,7 +295,31 @@ of the following possibilities:
|
|||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">perform</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> { PERFORM_DSEL, - }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is <a href="../words-module/4-ap.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP7" class="paragraph-anchor"></a><b>§7. Processing choices after pass 1. </b>It's now a little later, and the following is called to look at each choice.
|
||||
<p class="commentary firstcommentary"><a id="SP2_8" class="paragraph-anchor"></a><b>§2.8. </b>Each choice produces an instance of the kind <span class="extract"><span class="Preform-extract-syntax">dialogue choice</span></span>, using the name
|
||||
given in its clauses if one was.
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Add the choice to the world model</span><span class="named-paragraph-number">2.8</span></span><span class="Preform-comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K_dialogue_choice</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"DialogueKit has not created K_dialogue_choice"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><span class="identifier-syntax">dc</span><span class="plain-syntax">-></span><span class="element-syntax">choice_name</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Wordings::empty</span><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">faux_name</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">flow_control</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">faux_name</span><span class="plain-syntax">, </span><span class="string-syntax">"flow-%d"</span><span class="plain-syntax">, </span><span class="identifier-syntax">dc</span><span class="plain-syntax">-></span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax"> + </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">faux_name</span><span class="plain-syntax">, </span><span class="string-syntax">"choice-%d"</span><span class="plain-syntax">, </span><span class="identifier-syntax">dc</span><span class="plain-syntax">-></span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax"> + </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Feeds::feed_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">faux_name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">faux_name</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">pcalc_prop</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Propositions::Abstract::to_create_something</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_dialogue_choice</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Assert::true</span><span class="plain-syntax">(</span><span class="identifier-syntax">prop</span><span class="plain-syntax">, </span><span class="identifier-syntax">CERTAIN_CE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dc</span><span class="plain-syntax">-></span><span class="element-syntax">as_instance</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::latest</span><span class="plain-syntax">();</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="6-dc.html#SP2">§2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. Processing choices after pass 1. </b>It's now a little later, and the following is called to look at each choice.
|
||||
There's not much to do: just to identify the beat to be performed, if there
|
||||
is one.
|
||||
</p>
|
||||
|
@ -328,7 +339,7 @@ is one.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">A</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax"><dialogue-choice-clause></span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="function-syntax"><np-articled-list></span><span class="plain-syntax">(</span><span class="identifier-syntax">A</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">AL</span><span class="plain-syntax"> = </span><span class="function-syntax"><<rp>></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="6-dc.html#SP7" class="function-link"><span class="function-syntax">DialogueChoices::parse_property</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dc</span><span class="plain-syntax">, </span><span class="identifier-syntax">AL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="6-dc.html#SP3" class="function-link"><span class="function-syntax">DialogueChoices::parse_property</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dc</span><span class="plain-syntax">, </span><span class="identifier-syntax">AL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -357,8 +368,8 @@ is one.
|
|||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">DialogueChoices::parse_property</span><span class="plain-syntax">(</span><span class="reserved-syntax">dialogue_choice</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dc</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">AL</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Node::is</span><span class="plain-syntax">(</span><span class="identifier-syntax">AL</span><span class="plain-syntax">, </span><span class="identifier-syntax">AND_NT</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><a href="6-dc.html#SP7" class="function-link"><span class="function-syntax">DialogueChoices::parse_property</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dc</span><span class="plain-syntax">, </span><span class="identifier-syntax">AL</span><span class="plain-syntax">-></span><span class="identifier-syntax">down</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="6-dc.html#SP7" class="function-link"><span class="function-syntax">DialogueChoices::parse_property</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dc</span><span class="plain-syntax">, </span><span class="identifier-syntax">AL</span><span class="plain-syntax">-></span><span class="identifier-syntax">down</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="6-dc.html#SP3" class="function-link"><span class="function-syntax">DialogueChoices::parse_property</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dc</span><span class="plain-syntax">, </span><span class="identifier-syntax">AL</span><span class="plain-syntax">-></span><span class="identifier-syntax">down</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="6-dc.html#SP3" class="function-link"><span class="function-syntax">DialogueChoices::parse_property</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dc</span><span class="plain-syntax">, </span><span class="identifier-syntax">AL</span><span class="plain-syntax">-></span><span class="identifier-syntax">down</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Node::is</span><span class="plain-syntax">(</span><span class="identifier-syntax">AL</span><span class="plain-syntax">, </span><span class="identifier-syntax">UNPARSED_NOUN_NT</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">subj</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::as_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">dc</span><span class="plain-syntax">-></span><span class="element-syntax">as_instance</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">A</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">AL</span><span class="plain-syntax">);</span>
|
||||
|
@ -367,12 +378,12 @@ is one.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Rvalues::is_CONSTANT_construction</span><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="identifier-syntax">CON_property</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Rvalues::to_property</span><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Properties::is_either_or</span><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="6-dc.html#SP7_1" class="named-paragraph-link"><span class="named-paragraph">Assert that the choice has this property</span><span class="named-paragraph-number">7.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="6-dc.html#SP3_1" class="named-paragraph-link"><span class="named-paragraph">Assert that the choice has this property</span><span class="named-paragraph-number">3.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">Specifications::is_description</span><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">)) || (</span><span class="identifier-syntax">Node::is</span><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="identifier-syntax">TEST_VALUE_NT</span><span class="plain-syntax">))) {</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="6-dc.html#SP7_2" class="named-paragraph-link"><span class="named-paragraph">Assert that the choice has this property value</span><span class="named-paragraph-number">7.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="6-dc.html#SP3_2" class="named-paragraph-link"><span class="named-paragraph">Assert that the choice has this property value</span><span class="named-paragraph-number">3.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"Unexpected prop: $T\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">val</span><span class="plain-syntax">);</span>
|
||||
|
@ -390,7 +401,7 @@ is one.
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP7_1" class="paragraph-anchor"></a><b>§7.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Assert that the choice has this property</span><span class="named-paragraph-number">7.1</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP3_1" class="paragraph-anchor"></a><b>§3.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Assert that the choice has this property</span><span class="named-paragraph-number">3.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -400,8 +411,8 @@ is one.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Propositions::Abstract::prop_to_set_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_dialogue_choice</span><span class="plain-syntax">), </span><span class="identifier-syntax">prop</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Assert::true_about</span><span class="plain-syntax">(</span><span class="identifier-syntax">prop</span><span class="plain-syntax">, </span><span class="identifier-syntax">subj</span><span class="plain-syntax">, </span><span class="identifier-syntax">CERTAIN_CE</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="6-dc.html#SP7">§7</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP7_2" class="paragraph-anchor"></a><b>§7.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Assert that the choice has this property value</span><span class="named-paragraph-number">7.2</span></span><span class="comment-syntax"> =</span>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="6-dc.html#SP3">§3</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3_2" class="paragraph-anchor"></a><b>§3.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Assert that the choice has this property value</span><span class="named-paragraph-number">3.2</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -413,8 +424,8 @@ is one.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="6-dc.html#SP7">§7</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP8" class="paragraph-anchor"></a><b>§8. </b>So what remains to be done? Everything is done except for code to be compiled
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="6-dc.html#SP3">§3</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. </b>So what remains to be done? Everything is done except for code to be compiled
|
||||
at runtime. See <a href="../runtime-module/5-dci.html" class="internal">Dialogue Choice Instances (in runtime)</a>.
|
||||
</p>
|
||||
|
||||
|
|
|
@ -89,9 +89,10 @@ any number of <span class="extract"><span class="extract-syntax">DIALOGUE_CLAUSE
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">dialogue_line</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dl</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">dialogue_line</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="6-dl.html#SP1_2" class="named-paragraph-link"><span class="named-paragraph">Initialise the line</span><span class="named-paragraph-number">1.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="6-dl.html#SP1_3" class="named-paragraph-link"><span class="named-paragraph">Parse the clauses just enough to classify them</span><span class="named-paragraph-number">1.3</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="6-dl.html#SP1_6" class="named-paragraph-link"><span class="named-paragraph">Look for a line name</span><span class="named-paragraph-number">1.6</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="6-dl.html#SP1_4" class="named-paragraph-link"><span class="named-paragraph">Decide if this is elaborated</span><span class="named-paragraph-number">1.4</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="6-dl.html#SP1_7" class="named-paragraph-link"><span class="named-paragraph">Look for a line name</span><span class="named-paragraph-number">1.7</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="element-syntax">as_node</span><span class="plain-syntax"> = </span><a href="6-dn.html#SP3" class="function-link"><span class="function-syntax">DialogueNodes::add_to_current_beat</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="plain-syntax">, </span><span class="identifier-syntax">dl</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="6-dl.html#SP1_9" class="named-paragraph-link"><span class="named-paragraph">Add the line to the world model</span><span class="named-paragraph-number">1.9</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="6-dl.html#SP1_10" class="named-paragraph-link"><span class="named-paragraph">Add the line to the world model</span><span class="named-paragraph-number">1.10</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">dl</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
@ -103,13 +104,15 @@ any number of <span class="extract"><span class="extract-syntax">DIALOGUE_CLAUSE
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">as_instance</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">line_at</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">narration</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">elaborated</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">without_speaking</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">speaker_text</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">speech_text</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">speaker_description</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">interlocutor_text</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">interlocutor_description</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">mentioning</span><span class="plain-syntax">; </span><span class="comment-syntax"> of </span><span class="extract"><span class="extract-syntax">parse_node</span></span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">performance_style</span><span class="plain-syntax"> *</span><span class="identifier-syntax">how_performed</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">interlocutor</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">dialogue_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">as_node</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">dialogue_line_compilation_data</span><span class="plain-syntax"> </span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CLASS_DEFINITION</span>
|
||||
|
@ -123,14 +126,16 @@ any number of <span class="extract"><span class="extract-syntax">DIALOGUE_CLAUSE
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="element-syntax">line_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="element-syntax">line_at</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PN</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="element-syntax">narration</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="element-syntax">elaborated</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="element-syntax">speaker_text</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="element-syntax">interlocutor_text</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="element-syntax">speaker_description</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="element-syntax">without_speaking</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="element-syntax">compilation_data</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RTDialogueLines::new</span><span class="plain-syntax">(</span><span class="identifier-syntax">PN</span><span class="plain-syntax">, </span><span class="identifier-syntax">dl</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="element-syntax">speech_text</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="element-syntax">mentioning</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="element-syntax">how_performed</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="element-syntax">interlocutor</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="element-syntax">interlocutor_description</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="6-dl.html#SP1">§1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_3" class="paragraph-anchor"></a><b>§1.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Parse the clauses just enough to classify them</span><span class="named-paragraph-number">1.3</span></span><span class="comment-syntax"> =</span>
|
||||
|
@ -142,6 +147,9 @@ any number of <span class="extract"><span class="extract-syntax">DIALOGUE_CLAUSE
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Node::is</span><span class="plain-syntax">(</span><span class="identifier-syntax">clause</span><span class="plain-syntax">, </span><span class="identifier-syntax">DIALOGUE_CLAUSE_NT</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="function-syntax"><dialogue-line-clause></span><span class="plain-syntax">(</span><span class="identifier-syntax">CW</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::write_int</span><span class="plain-syntax">(</span><span class="identifier-syntax">clause</span><span class="plain-syntax">, </span><span class="identifier-syntax">dialogue_line_clause_ANNOT</span><span class="plain-syntax">, </span><span class="function-syntax"><<r>></span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax"><<r>></span><span class="plain-syntax"> == </span><span class="constant-syntax">TO_DLC</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="element-syntax">interlocutor_text</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax"><dialogue-line-clause></span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Node::is</span><span class="plain-syntax">(</span><span class="identifier-syntax">clause</span><span class="plain-syntax">, </span><span class="identifier-syntax">DIALOGUE_SPEAKER_NT</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax"><dialogue-is-narration></span><span class="plain-syntax">(</span><span class="identifier-syntax">CW</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="element-syntax">narration</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
|
@ -153,7 +161,25 @@ any number of <span class="extract"><span class="extract-syntax">DIALOGUE_CLAUSE
|
|||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="6-dl.html#SP1">§1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_4" class="paragraph-anchor"></a><b>§1.4. </b>The special speaker "narration" marks out a line which isn't a speech at all:
|
||||
<p class="commentary firstcommentary"><a id="SP1_4" class="paragraph-anchor"></a><b>§1.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Decide if this is elaborated</span><span class="named-paragraph-number">1.4</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">wn</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="element-syntax">speech_text</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">wn</span><span class="plain-syntax"> >= </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">quote_marks</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wchar_t</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Lexer::word_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">wn</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">p</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">]; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">p</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">] == </span><span class="character-syntax">'\''</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> ((</span><span class="identifier-syntax">i</span><span class="plain-syntax"><=1) || (</span><span class="identifier-syntax">p</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">+1] == </span><span class="character-syntax">'\"'</span><span class="plain-syntax">) ||</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">Characters::is_whitespace</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">+1])) || (</span><span class="identifier-syntax">Characters::is_whitespace</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">-1]))))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">quote_marks</span><span class="plain-syntax">++;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">quote_marks</span><span class="plain-syntax"> >= </span><span class="constant-syntax">2</span><span class="plain-syntax">) </span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="element-syntax">elaborated</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="element-syntax">narration</span><span class="plain-syntax">) </span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="element-syntax">elaborated</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="6-dl.html#SP1">§1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_5" class="paragraph-anchor"></a><b>§1.5. </b>The special speaker "narration" marks out a line which isn't a speech at all:
|
||||
</p>
|
||||
|
||||
<pre class="Preform-displayed-code all-displayed-code code-font">
|
||||
|
@ -161,7 +187,7 @@ any number of <span class="extract"><span class="extract-syntax">DIALOGUE_CLAUSE
|
|||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">narration</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is <a href="../words-module/4-ap.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_5" class="paragraph-anchor"></a><b>§1.5. </b>As with the analogous clauses for <a href="6-db.html" class="internal">Dialogue Beats</a>, each clause can be one
|
||||
<p class="commentary firstcommentary"><a id="SP1_6" class="paragraph-anchor"></a><b>§1.6. </b>As with the analogous clauses for <a href="6-db.html" class="internal">Dialogue Beats</a>, each clause can be one
|
||||
of the following possibilities:
|
||||
</p>
|
||||
|
||||
|
@ -180,7 +206,7 @@ of the following possibilities:
|
|||
<span class="definition-keyword">enum</span> <span class="Preform-constant-syntax">ENDING_FINALLY_SAYING_DLC</span>
|
||||
<span class="definition-keyword">enum</span> <span class="Preform-constant-syntax">STYLE_DLC</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP1_6" class="paragraph-anchor"></a><b>§1.6. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Look for a line name</span><span class="named-paragraph-number">1.6</span></span><span class="Preform-comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP1_7" class="paragraph-anchor"></a><b>§1.7. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Look for a line name</span><span class="named-paragraph-number">1.7</span></span><span class="Preform-comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -190,7 +216,13 @@ of the following possibilities:
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Annotations::read_int</span><span class="plain-syntax">(</span><span class="identifier-syntax">clause</span><span class="plain-syntax">, </span><span class="identifier-syntax">dialogue_line_clause_ANNOT</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">LINE_NAME_DLC:</span>
|
||||
<span class="plain-syntax"> </span><span class="function-syntax"><dialogue-line-clause></span><span class="plain-syntax">(</span><span class="identifier-syntax">CW</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="element-syntax">line_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax"><dialogue-line-clause></span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">NW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax"><dialogue-line-clause></span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax"><instance></span><span class="plain-syntax">(</span><span class="identifier-syntax">NW</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><span class="function-syntax"><<rp>></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="6-db.html#SP4" class="function-link"><span class="function-syntax">DialogueBeats::non_unique_instance_problem</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_dialogue_line</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="element-syntax">line_name</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NW</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dialogue_line_name_count</span><span class="plain-syntax">++;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -202,7 +234,7 @@ of the following possibilities:
|
|||
<span class="plain-syntax"> </span><span class="string-syntax">"one name."</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="6-dl.html#SP1">§1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_7" class="paragraph-anchor"></a><b>§1.7. </b>Using:
|
||||
<p class="commentary firstcommentary"><a id="SP1_8" class="paragraph-anchor"></a><b>§1.8. </b>Using:
|
||||
</p>
|
||||
|
||||
<pre class="Preform-displayed-code all-displayed-code code-font">
|
||||
|
@ -224,7 +256,7 @@ of the following possibilities:
|
|||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">==></span><span class="Preform-plain-syntax"> { STYLE_DLC, - }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is <a href="../words-module/4-ap.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_8" class="paragraph-anchor"></a><b>§1.8. </b></p>
|
||||
<p class="commentary firstcommentary"><a id="SP1_9" class="paragraph-anchor"></a><b>§1.9. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">DialogueLines::write_dlc</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">c</span><span class="plain-syntax">) {</span>
|
||||
|
@ -246,11 +278,11 @@ of the following possibilities:
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP1_9" class="paragraph-anchor"></a><b>§1.9. </b>Each line produces an instance of the kind <span class="extract"><span class="extract-syntax">dialogue line</span></span>, using the name
|
||||
<p class="commentary firstcommentary"><a id="SP1_10" class="paragraph-anchor"></a><b>§1.10. </b>Each line produces an instance of the kind <span class="extract"><span class="extract-syntax">dialogue line</span></span>, using the name
|
||||
given in its clauses if one was.
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Add the line to the world model</span><span class="named-paragraph-number">1.9</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Add the line to the world model</span><span class="named-paragraph-number">1.10</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -289,13 +321,7 @@ so we can also deal with style clauses.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">A</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax"><dialogue-line-clause></span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="function-syntax"><np-articled-list></span><span class="plain-syntax">(</span><span class="identifier-syntax">A</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">AL</span><span class="plain-syntax"> = </span><span class="function-syntax"><<rp>></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="6-db.html#SP7" class="function-link"><span class="function-syntax">DialogueBeats::parse_topic</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="element-syntax">mentioning</span><span class="plain-syntax">, </span><span class="identifier-syntax">AL</span><span class="plain-syntax">, </span><span class="identifier-syntax">DIALOGUE_LINE_NT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">TO_DLC:</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="function-syntax"><dialogue-line-clause></span><span class="plain-syntax">(</span><span class="identifier-syntax">CW</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">A</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax"><dialogue-line-clause></span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="element-syntax">interlocutor</span><span class="plain-syntax"> = </span><a href="6-dl.html#SP3" class="function-link"><span class="function-syntax">DialogueLines::parse_interlocutor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">A</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="6-db.html#SP9" class="function-link"><span class="function-syntax">DialogueBeats::parse_topic</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="element-syntax">mentioning</span><span class="plain-syntax">, </span><span class="identifier-syntax">AL</span><span class="plain-syntax">, </span><span class="identifier-syntax">DIALOGUE_LINE_NT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="identifier-syntax">WITHOUT_SPEAKING_DLC:</span>
|
||||
|
@ -325,8 +351,19 @@ so we can also deal with style clauses.
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="element-syntax">narration</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="6-dl.html#SP2_3" class="named-paragraph-link"><span class="named-paragraph">Parse the speaker description</span><span class="named-paragraph-number">2.3</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="element-syntax">narration</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="6-dl.html#SP2_3" class="named-paragraph-link"><span class="named-paragraph">Parse the speaker description</span><span class="named-paragraph-number">2.3</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="element-syntax">interlocutor_text</span><span class="plain-syntax">)) </span><span class="named-paragraph-container code-font"><a href="6-dl.html#SP2_4" class="named-paragraph-link"><span class="named-paragraph">Parse the interlocutor description</span><span class="named-paragraph-number">2.4</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="element-syntax">how_performed</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="element-syntax">how_performed</span><span class="plain-syntax"> = </span><a href="6-ps.html#SP9" class="function-link"><span class="function-syntax">PerformanceStyles::default</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="element-syntax">elaborated</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">P_elaborated</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">subj</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::as_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="element-syntax">as_instance</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">pcalc_prop</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop</span><span class="plain-syntax"> = </span><span class="identifier-syntax">AdjectivalPredicates::new_atom_on_x</span><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EitherOrProperties::as_adjective</span><span class="plain-syntax">(</span><span class="identifier-syntax">P_elaborated</span><span class="plain-syntax">), </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">prop</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Propositions::concatenate</span><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Propositions::Abstract::prop_to_set_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">K_dialogue_line</span><span class="plain-syntax">), </span><span class="identifier-syntax">prop</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Assert::true_about</span><span class="plain-syntax">(</span><span class="identifier-syntax">prop</span><span class="plain-syntax">, </span><span class="identifier-syntax">subj</span><span class="plain-syntax">, </span><span class="identifier-syntax">LIKELY_CE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
@ -386,43 +423,39 @@ so we can also deal with style clauses.
|
|||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="6-dl.html#SP2">§2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. </b>Note that the interlocutor — the person addressed "to", if any — must be
|
||||
specified exactly, and not simply given a generic description like "somebody".
|
||||
<p class="commentary firstcommentary"><a id="SP2_4" class="paragraph-anchor"></a><b>§2.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Parse the interlocutor description</span><span class="named-paragraph-number">2.4</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="function-syntax">DialogueLines::parse_interlocutor</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">DialogueLines::parse_interlocutor</span></span>:<br/><a href="6-dl.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">CW</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax"><s-type-expression-uncached></span><span class="plain-syntax">(</span><span class="identifier-syntax">CW</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">S</span><span class="plain-syntax"> = </span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="element-syntax">interlocutor_text</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax"><s-type-expression-uncached></span><span class="plain-syntax">(</span><span class="identifier-syntax">S</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">desc</span><span class="plain-syntax"> = </span><span class="function-syntax"><<rp>></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Rvalues::to_instance</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::to_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Specifications::to_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"Interlocutor parsed as $T\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">desc</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_source</span><span class="plain-syntax">(1, </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_wording</span><span class="plain-syntax">(2, </span><span class="identifier-syntax">CW</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_kind</span><span class="plain-syntax">(3, </span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">StandardProblems::handmade_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::syntax_tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_LineToNonObject</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_segment</span><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"The dialogue line %1 is apparently spoken to '%2', but that "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"seems to describe %3, not an object."</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_end</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::Behaviour::is_object</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="element-syntax">interlocutor_description</span><span class="plain-syntax"> = </span><span class="identifier-syntax">desc</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"interlocutor parsed as $T\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">desc</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_source</span><span class="plain-syntax">(1, </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_wording</span><span class="plain-syntax">(2, </span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_kind</span><span class="plain-syntax">(3, </span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">StandardProblems::handmade_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::syntax_tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_LineToNonObject</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_segment</span><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"The dialogue line %1 is apparently spoken to '%2', but that "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"seems to describe %3, not a person or some other object."</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_end</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_source</span><span class="plain-syntax">(1, </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_wording</span><span class="plain-syntax">(2, </span><span class="identifier-syntax">CW</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_wording</span><span class="plain-syntax">(2, </span><span class="identifier-syntax">S</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">StandardProblems::handmade_problem</span><span class="plain-syntax">(</span><span class="identifier-syntax">Task::syntax_tree</span><span class="plain-syntax">(), </span><span class="identifier-syntax">_p_</span><span class="plain-syntax">(</span><span class="identifier-syntax">PM_LineToUnknown</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_segment</span><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"The dialogue line %1 is apparently spoken to '%2', but that "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"isn't something I recognise as the name of a thing or person."</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_end</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. </b>So what remains to be done? The unparsed clauses remaining are <span class="extract"><span class="extract-syntax">IF</span></span> and <span class="extract"><span class="extract-syntax">UNLESS</span></span>,
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="6-dl.html#SP2">§2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. </b>So what remains to be done? The unparsed clauses remaining are <span class="extract"><span class="extract-syntax">IF</span></span> and <span class="extract"><span class="extract-syntax">UNLESS</span></span>,
|
||||
<span class="extract"><span class="extract-syntax">BEFORE</span></span> and <span class="extract"><span class="extract-syntax">AFTER</span></span>, <span class="extract"><span class="extract-syntax">NOW</span></span>, and the various story-ending clauses: but all of those
|
||||
are essentially code rather than data, and we will parse those in <a href="../runtime-module/5-dli.html" class="internal">Dialogue Line Instances (in runtime)</a>.
|
||||
</p>
|
||||
|
|
|
@ -71,6 +71,7 @@ handles that kind, so it won't be dealt with in the code for this feature.
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Dialogue::start</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="6-dlg.html#SP10" class="function-link"><span class="function-syntax">Dialogue::declare_annotations</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginCalls::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">NEW_ACTIVITY_NOTIFY_PLUG</span><span class="plain-syntax">, </span><a href="6-dlg.html#SP6" class="function-link"><span class="function-syntax">Dialogue::new_activity_notify</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginCalls::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">NEW_PROPERTY_NOTIFY_PLUG</span><span class="plain-syntax">, </span><a href="6-dlg.html#SP6" class="function-link"><span class="function-syntax">Dialogue::new_property_notify</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginCalls::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">NEW_BASE_KIND_NOTIFY_PLUG</span><span class="plain-syntax">, </span><a href="6-dlg.html#SP3" class="function-link"><span class="function-syntax">Dialogue::new_base_kind_notify</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginCalls::plug</span><span class="plain-syntax">(</span><span class="identifier-syntax">COMPARE_CONSTANT_PLUG</span><span class="plain-syntax">, </span><a href="6-dlg.html#SP8" class="function-link"><span class="function-syntax">Dialogue::compare_CONSTANT</span></a><span class="plain-syntax">);</span>
|
||||
|
@ -101,12 +102,16 @@ and are recognised by their Inter identifiers:
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. </b>The following either/or properties need some compiler support:
|
||||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. </b>The following need some compiler support:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P_performed</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P_spontaneous</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">P_elaborated</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="identifier-syntax">activity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">AV_offering_a_dialogue_choice</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="identifier-syntax">activity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">AV_performing_dialogue</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>§5. </b>We will need to compile code using this.
|
||||
</p>
|
||||
|
@ -114,7 +119,12 @@ and are recognised by their Inter identifiers:
|
|||
<pre class="Preform-displayed-code all-displayed-code code-font">
|
||||
<span class="Preform-function-syntax"><notable-dialogue-properties></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">performed</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">spontaneous</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">spontaneous</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">elaborated</span>
|
||||
|
||||
<span class="Preform-function-syntax"><notable-dialogue-activities></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">offering</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">performing</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is <a href="../words-module/4-ap.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>§6. </b></p>
|
||||
|
@ -125,6 +135,17 @@ and are recognised by their Inter identifiers:
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="function-syntax"><<r>></span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">: </span><span class="identifier-syntax">P_performed</span><span class="plain-syntax"> = </span><span class="identifier-syntax">prn</span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span><span class="plain-syntax">: </span><span class="identifier-syntax">P_spontaneous</span><span class="plain-syntax"> = </span><span class="identifier-syntax">prn</span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">2</span><span class="plain-syntax">: </span><span class="identifier-syntax">P_elaborated</span><span class="plain-syntax"> = </span><span class="identifier-syntax">prn</span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Dialogue::new_activity_notify</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">Dialogue::new_activity_notify</span></span>:<br/><a href="6-dlg.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">activity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">av</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax"><notable-dialogue-activities>(av-></span><span class="element-syntax">name</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="function-syntax"><<r>></span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">: </span><span class="identifier-syntax">AV_offering_a_dialogue_choice</span><span class="plain-syntax"> = </span><span class="identifier-syntax">av</span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span><span class="plain-syntax">: </span><span class="identifier-syntax">AV_performing_dialogue</span><span class="plain-syntax"> = </span><span class="identifier-syntax">av</span><span class="plain-syntax">; </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
|
@ -136,22 +157,22 @@ specific beats and lines to be represented as rvalues, both inside the compiler
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Dialogue::rvalue_from_dialogue_beat</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">Dialogue::rvalue_from_dialogue_beat</span></span>:<br/>Dialogue Beats - <a href="6-db.html#SP4_2">§4.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">dialogue_beat</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Dialogue::rvalue_from_dialogue_beat</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">Dialogue::rvalue_from_dialogue_beat</span></span>:<br/>Dialogue Beats - <a href="6-db.html#SP6_1">§6.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">dialogue_beat</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CONV_FROM</span><span class="plain-syntax">(</span><span class="reserved-syntax">dialogue_beat</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_dialogue_beat</span><span class="plain-syntax">) }</span>
|
||||
<span class="reserved-syntax">dialogue_beat</span><span class="plain-syntax"> *</span><span class="function-syntax">Dialogue::rvalue_to_dialogue_beat</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">Dialogue::rvalue_to_dialogue_beat</span></span>:<br/><a href="6-dlg.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">spec</span><span class="plain-syntax">) { </span><span class="identifier-syntax">CONV_TO</span><span class="plain-syntax">(</span><span class="reserved-syntax">dialogue_beat</span><span class="plain-syntax">) }</span>
|
||||
<span class="reserved-syntax">dialogue_beat</span><span class="plain-syntax"> *</span><span class="function-syntax">Dialogue::rvalue_to_dialogue_beat</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">Dialogue::rvalue_to_dialogue_beat</span></span>:<br/><a href="6-dlg.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">spec</span><span class="plain-syntax">) { </span><span class="identifier-syntax">CONV_TO</span><span class="plain-syntax">(</span><span class="reserved-syntax">dialogue_beat</span><span class="plain-syntax">) }</span>
|
||||
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Dialogue::rvalue_from_dialogue_line</span><span class="plain-syntax">(</span><span class="reserved-syntax">dialogue_line</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CONV_FROM</span><span class="plain-syntax">(</span><span class="reserved-syntax">dialogue_line</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_dialogue_line</span><span class="plain-syntax">) }</span>
|
||||
<span class="reserved-syntax">dialogue_line</span><span class="plain-syntax"> *</span><span class="function-syntax">Dialogue::rvalue_to_dialogue_line</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">Dialogue::rvalue_to_dialogue_line</span></span>:<br/><a href="6-dlg.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">spec</span><span class="plain-syntax">) { </span><span class="identifier-syntax">CONV_TO</span><span class="plain-syntax">(</span><span class="reserved-syntax">dialogue_line</span><span class="plain-syntax">) }</span>
|
||||
<span class="reserved-syntax">dialogue_line</span><span class="plain-syntax"> *</span><span class="function-syntax">Dialogue::rvalue_to_dialogue_line</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Dialogue::rvalue_to_dialogue_line</span></span>:<br/><a href="6-dlg.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">spec</span><span class="plain-syntax">) { </span><span class="identifier-syntax">CONV_TO</span><span class="plain-syntax">(</span><span class="reserved-syntax">dialogue_line</span><span class="plain-syntax">) }</span>
|
||||
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Dialogue::rvalue_from_dialogue_choice</span><span class="plain-syntax">(</span><span class="reserved-syntax">dialogue_choice</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CONV_FROM</span><span class="plain-syntax">(</span><span class="reserved-syntax">dialogue_choice</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_dialogue_choice</span><span class="plain-syntax">) }</span>
|
||||
<span class="reserved-syntax">dialogue_choice</span><span class="plain-syntax"> *</span><span class="function-syntax">Dialogue::rvalue_to_dialogue_choice</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">Dialogue::rvalue_to_dialogue_choice</span></span>:<br/><a href="6-dlg.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">spec</span><span class="plain-syntax">) { </span><span class="identifier-syntax">CONV_TO</span><span class="plain-syntax">(</span><span class="reserved-syntax">dialogue_choice</span><span class="plain-syntax">) }</span>
|
||||
<span class="reserved-syntax">dialogue_choice</span><span class="plain-syntax"> *</span><span class="function-syntax">Dialogue::rvalue_to_dialogue_choice</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Dialogue::rvalue_to_dialogue_choice</span></span>:<br/><a href="6-dlg.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">spec</span><span class="plain-syntax">) { </span><span class="identifier-syntax">CONV_TO</span><span class="plain-syntax">(</span><span class="reserved-syntax">dialogue_choice</span><span class="plain-syntax">) }</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP8" class="paragraph-anchor"></a><b>§8. </b>These can be compared at compile time, which means that type-checking can be
|
||||
used to select phrases or rules depending on specific beats or lines.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Dialogue::compare_CONSTANT</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">Dialogue::compare_CONSTANT</span></span>:<br/><a href="6-dlg.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">spec1</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">spec2</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rv</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Dialogue::compare_CONSTANT</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">Dialogue::compare_CONSTANT</span></span>:<br/><a href="6-dlg.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">spec1</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">spec2</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rv</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_kind_of_value</span><span class="plain-syntax">(</span><span class="identifier-syntax">spec1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::eq</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_dialogue_beat</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="6-dlg.html#SP7" class="function-link"><span class="function-syntax">Dialogue::rvalue_to_dialogue_beat</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">spec1</span><span class="plain-syntax">) ==</span>
|
||||
|
@ -199,7 +220,7 @@ used to select phrases or rules depending on specific beats or lines.
|
|||
<span class="identifier-syntax">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">constant_dialogue_line</span><span class="plain-syntax">, </span><span class="reserved-syntax">dialogue_line</span><span class="plain-syntax">)</span>
|
||||
<span class="identifier-syntax">MAKE_ANNOTATION_FUNCTIONS</span><span class="plain-syntax">(</span><span class="identifier-syntax">constant_dialogue_choice</span><span class="plain-syntax">, </span><span class="reserved-syntax">dialogue_choice</span><span class="plain-syntax">)</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Dialogue::declare_annotations</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">Dialogue::declare_annotations</span></span>:<br/><a href="6-dlg.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Dialogue::declare_annotations</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">Dialogue::declare_annotations</span></span>:<br/><a href="6-dlg.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::declare_type</span><span class="plain-syntax">(</span><span class="constant-syntax">constant_dialogue_beat_ANNOT</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="6-dlg.html#SP10" class="function-link"><span class="function-syntax">Dialogue::write_constant_dialogue_beat_ANNOT</span></a><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Annotations::allow</span><span class="plain-syntax">(</span><span class="identifier-syntax">CONSTANT_NT</span><span class="plain-syntax">, </span><span class="constant-syntax">constant_dialogue_beat_ANNOT</span><span class="plain-syntax">);</span>
|
||||
|
@ -227,9 +248,9 @@ used to select phrases or rules depending on specific beats or lines.
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Dialogue::after_pass_1</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="6-db.html#SP4" class="function-link"><span class="function-syntax">DialogueBeats::decide_cue_sequencing</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="6-db.html#SP6" class="function-link"><span class="function-syntax">DialogueBeats::decide_cue_sequencing</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="6-dl.html#SP2" class="function-link"><span class="function-syntax">DialogueLines::decide_line_mentions</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="6-dc.html#SP7" class="function-link"><span class="function-syntax">DialogueChoices::decide_choice_performs</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="6-dc.html#SP3" class="function-link"><span class="function-syntax">DialogueChoices::decide_choice_performs</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
|
|
|
@ -218,7 +218,7 @@ impossible to hit.
|
|||
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>§5. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">DialogueNodes::find_decisions_in_beat</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">DialogueNodes::find_decisions_in_beat</span></span>:<br/>Dialogue Beats - <a href="6-db.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">dialogue_beat</span><span class="plain-syntax"> *</span><span class="identifier-syntax">db</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">DialogueNodes::find_decisions_in_beat</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">DialogueNodes::find_decisions_in_beat</span></span>:<br/>Dialogue Beats - <a href="6-db.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">dialogue_beat</span><span class="plain-syntax"> *</span><span class="identifier-syntax">db</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="6-dn.html#SP5" class="function-link"><span class="function-syntax">DialogueNodes::find_decisions_in_beat_r</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">db</span><span class="plain-syntax">, </span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="element-syntax">root</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="6-dn.html#SP5" class="function-link"><span class="function-syntax">DialogueNodes::examine_decisions_in_beat_r</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">db</span><span class="plain-syntax">, </span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="element-syntax">root</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
|
|
@ -354,7 +354,7 @@ change if arbitrary-precision integers are ever added to Inform, for instance.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="function-syntax">CompileLvalues::interpret_store</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">CompileLvalues::interpret_store</span></span>:<br/>Compile Invocations Inline - <a href="5-cii.html#SP6_5_4">§6.5.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">node_type_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">storage_class</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">left</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">right</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">inc</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="function-syntax">CompileLvalues::interpret_store</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">CompileLvalues::interpret_store</span></span>:<br/>Compile Invocations Inline - <a href="5-cii.html#SP6_6_4">§6.6.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">node_type_t</span><span class="plain-syntax"> </span><span class="identifier-syntax">storage_class</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">left</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">right</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">inc</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">KIND_CHECKING</span><span class="plain-syntax">, </span><span class="string-syntax">"Interpreting assignment of kinds %u, %u\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">left</span><span class="plain-syntax">, </span><span class="identifier-syntax">right</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, *</span><span class="identifier-syntax">R</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">left</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">right</span><span class="plain-syntax">)) { </span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><span class="identifier-syntax">left</span><span class="plain-syntax">-></span><span class="identifier-syntax">construct</span><span class="plain-syntax">; </span><span class="identifier-syntax">R</span><span class="plain-syntax"> = </span><span class="identifier-syntax">right</span><span class="plain-syntax">-></span><span class="identifier-syntax">construct</span><span class="plain-syntax">; }</span>
|
||||
|
|
|
@ -494,7 +494,7 @@ action.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CompileRvalues::compile_explicit_action</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">CompileRvalues::compile_explicit_action</span></span>:<br/><a href="2-cr.html#SP2">§2</a><br/>Compile Invocations Inline - <a href="5-cii.html#SP6_1_1_4_9">§6.1.1.4.9</a>, <a href="5-cii.html#SP6_1_1_4_10">§6.1.1.4.10</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">explicit_action</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ea</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">as_value</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CompileRvalues::compile_explicit_action</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">CompileRvalues::compile_explicit_action</span></span>:<br/><a href="2-cr.html#SP2">§2</a><br/>Compile Invocations Inline - <a href="5-cii.html#SP6_2">§6.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">explicit_action</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ea</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">as_value</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">n</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ea</span><span class="plain-syntax">-></span><span class="identifier-syntax">first_noun</span><span class="plain-syntax">; </span><span class="comment-syntax"> the noun</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ea</span><span class="plain-syntax">-></span><span class="identifier-syntax">second_noun</span><span class="plain-syntax">; </span><span class="comment-syntax"> the second noun</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">a</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ea</span><span class="plain-syntax">-></span><span class="identifier-syntax">actor</span><span class="plain-syntax">; </span><span class="comment-syntax"> the actor</span>
|
||||
|
|
|
@ -164,7 +164,7 @@ line 3 must not.
|
|||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CompileValues::to_code_val</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">CompileValues::to_code_val</span></span>:<br/>Compile Rvalues - <a href="2-cr.html#SP1_3">§1.3</a><br/>Compile Lvalues - <a href="2-cl.html#SP1_3">§1.3</a>, <a href="2-cl.html#SP1_3_2">§1.3.2</a>, <a href="2-cl.html#SP1_4">§1.4</a>, <a href="2-cl.html#SP2">§2</a><br/>Compile Conditions - <a href="2-cc.html#SP1">§1</a>, <a href="2-cc.html#SP1_1">§1.1</a>, <a href="2-cc.html#SP1_2">§1.2</a><br/>Matching Action Patterns - <a href="2-map.html#SP3_5_1_1_1_25">§3.5.1.1.1.25</a>, <a href="2-map.html#SP5">§5</a>, <a href="2-map.html#SP5_2_1">§5.2.1</a>, <a href="2-map.html#SP5_2_2">§5.2.2</a>, <a href="2-map.html#SP5_2_3">§5.2.3</a><br/>Compile Loops - <a href="4-cl.html#SP1_2">§1.2</a>, <a href="4-cl.html#SP2">§2</a>, <a href="4-cl.html#SP4">§4</a><br/>Deciding to Defer - <a href="4-dtd.html#SP4_2">§4.2</a>, <a href="4-dtd.html#SP15">§15</a>, <a href="4-dtd.html#SP17">§17</a>, <a href="4-dtd.html#SP18">§18</a>, <a href="4-dtd.html#SP20">§20</a>, <a href="4-dtd.html#SP21">§21</a>, <a href="4-dtd.html#SP22">§22</a><br/>Cinders and Deferrals - <a href="4-cad.html#SP4">§4</a><br/>Compile Invocations As Calls - <a href="5-ciac.html#SP3">§3</a><br/>Compile Invocations Inline - <a href="5-cii.html#SP11">§11</a>, <a href="5-cii.html#SP12">§12</a><br/>Compile Solutions to Equations - <a href="5-cste.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">value</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-cv.html#SP5" class="function-link"><span class="function-syntax">CompileValues::to_code_val_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">value</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="constant-syntax">COMPILE_SPEC_AS_VALUE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CompileValues::to_code_val_of_kind</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">CompileValues::to_code_val_of_kind</span></span>:<br/>Compile Rvalues - <a href="2-cr.html#SP6">§6</a><br/>Compile Schemas - <a href="4-cs.html#SP3_2">§3.2</a>, <a href="4-cs.html#SP5_2">§5.2</a><br/>Compile Blocks and Lines - <a href="5-cbal.html#SP4_3_5_2">§4.3.5.2</a>, <a href="5-cbal.html#SP4_3_5_5">§4.3.5.5</a>, <a href="5-cbal.html#SP4_3_5_1_2">§4.3.5.1.2</a><br/>Compile Invocations Inline - <a href="5-cii.html#SP6_1_1_3">§6.1.1.3</a>, <a href="5-cii.html#SP6_1_1_4_9">§6.1.1.4.9</a>, <a href="5-cii.html#SP6_1_1_4_10">§6.1.1.4.10</a>, <a href="5-cii.html#SP6_5_8">§6.5.8</a>, <a href="5-cii.html#SP6_5_8_1">§6.5.8.1</a>, <a href="5-cii.html#SP6_5_8_2">§6.5.8.2</a>, <a href="5-cii.html#SP6_5_8_3">§6.5.8.3</a><br/>Compile Arithmetic - <a href="5-ca.html#SP1_3_1">§1.3.1</a>, <a href="5-ca.html#SP1_3_2">§1.3.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">value</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CompileValues::to_code_val_of_kind</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">CompileValues::to_code_val_of_kind</span></span>:<br/>Compile Rvalues - <a href="2-cr.html#SP6">§6</a><br/>Compile Schemas - <a href="4-cs.html#SP3_2">§3.2</a>, <a href="4-cs.html#SP5_2">§5.2</a><br/>Compile Blocks and Lines - <a href="5-cbal.html#SP4_3_5_2">§4.3.5.2</a>, <a href="5-cbal.html#SP4_3_5_5">§4.3.5.5</a>, <a href="5-cbal.html#SP4_3_5_1_2">§4.3.5.1.2</a><br/>Compile Invocations Inline - <a href="5-cii.html#SP6_1_1_3">§6.1.1.3</a>, <a href="5-cii.html#SP6_1_1_4_9">§6.1.1.4.9</a>, <a href="5-cii.html#SP6_1_1_4_10">§6.1.1.4.10</a>, <a href="5-cii.html#SP6_6_8">§6.6.8</a>, <a href="5-cii.html#SP6_6_8_1">§6.6.8.1</a>, <a href="5-cii.html#SP6_6_8_2">§6.6.8.2</a>, <a href="5-cii.html#SP6_6_8_3">§6.6.8.3</a><br/>Compile Arithmetic - <a href="5-ca.html#SP1_3_1">§1.3.1</a>, <a href="5-ca.html#SP1_3_2">§1.3.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">value</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-cv.html#SP5" class="function-link"><span class="function-syntax">CompileValues::to_code_val_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">value</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="constant-syntax">COMPILE_SPEC_AS_VALUE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CompileValues::to_fresh_code_val_of_kind</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">CompileValues::to_fresh_code_val_of_kind</span></span>:<br/>Compile Schemas - <a href="4-cs.html#SP3_2">§3.2</a>, <a href="4-cs.html#SP5_2">§5.2</a><br/>Compile Invocations - <a href="5-ci.html#SP1_3_1_2_1_2">§1.3.1.2.1.2</a><br/>Compile Invocations As Calls - <a href="5-ciac.html#SP2_2">§2.2</a><br/>Compile Invocations Inline - <a href="5-cii.html#SP6_1_1_3">§6.1.1.3</a>, <a href="5-cii.html#SP6_1_1_4_7_1">§6.1.1.4.7.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">value</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
|
|
|
@ -287,7 +287,7 @@ many of them.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">CodeBlocks::inside_a_loop_body</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">CodeBlocks::inside_a_loop_body</span></span>:<br/>Compile Invocations Inline - <a href="5-cii.html#SP6_5_3">§6.5.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">CodeBlocks::inside_a_loop_body</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">CodeBlocks::inside_a_loop_body</span></span>:<br/>Compile Invocations Inline - <a href="5-cii.html#SP6_6_3">§6.6.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax"> = </span><span class="identifier-syntax">current_block_stack</span><span class="plain-syntax">.</span><span class="identifier-syntax">pb_sp</span><span class="plain-syntax">-1; </span><span class="identifier-syntax">i</span><span class="plain-syntax"> >= </span><span class="constant-syntax">0</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">--)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ControlStructures::is_a_loop</span><span class="plain-syntax">(</span><span class="identifier-syntax">current_block_stack</span><span class="plain-syntax">.</span><span class="element-syntax">pb_stack</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="element-syntax">from_structure</span><span class="plain-syntax">))</span>
|
||||
|
@ -328,7 +328,7 @@ expression whose evaluation requires the use of a phrase.
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">unique_breakage_count</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CodeBlocks::emit_break</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">CodeBlocks::emit_break</span></span>:<br/>Compile Invocations Inline - <a href="5-cii.html#SP6_7">§6.7</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CodeBlocks::emit_break</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">CodeBlocks::emit_break</span></span>:<br/>Compile Invocations Inline - <a href="5-cii.html#SP6_8">§6.8</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax"> = </span><span class="identifier-syntax">current_block_stack</span><span class="plain-syntax">.</span><span class="element-syntax">pb_sp</span><span class="plain-syntax">-1; </span><span class="identifier-syntax">i</span><span class="plain-syntax"> >= </span><span class="constant-syntax">0</span><span class="plain-syntax">; </span><span class="identifier-syntax">i</span><span class="plain-syntax">--)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ControlStructures::permits_break</span><span class="plain-syntax">(</span><span class="identifier-syntax">current_block_stack</span><span class="plain-syntax">.</span><span class="element-syntax">pb_stack</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="element-syntax">from_structure</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">current_block_stack</span><span class="plain-syntax">.</span><span class="element-syntax">pb_stack</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">].</span><span class="element-syntax">label_following</span><span class="plain-syntax"> == -1)</span>
|
||||
|
@ -362,7 +362,7 @@ phrase:
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CodeBlocks::set_scope_to_block_about_to_open</span><button class="popup" onclick="togglePopup('usagePopup16')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup16">Usage of <span class="code-font"><span class="function-syntax">CodeBlocks::set_scope_to_block_about_to_open</span></span>:<br/>Compile Loops - <a href="4-cl.html#SP1">§1</a>, <a href="4-cl.html#SP4">§4</a><br/>Compile Invocations Inline - <a href="5-cii.html#SP3_2">§3.2</a>, <a href="5-cii.html#SP6_5_1_1">§6.5.1.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">local_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lvar</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CodeBlocks::set_scope_to_block_about_to_open</span><button class="popup" onclick="togglePopup('usagePopup16')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup16">Usage of <span class="code-font"><span class="function-syntax">CodeBlocks::set_scope_to_block_about_to_open</span></span>:<br/>Compile Loops - <a href="4-cl.html#SP1">§1</a>, <a href="4-cl.html#SP4">§4</a><br/>Compile Invocations Inline - <a href="5-cii.html#SP3_2">§3.2</a>, <a href="5-cii.html#SP6_6_1_1">§6.6.1.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">local_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lvar</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-sf.html#SP2" class="function-link"><span class="function-syntax">Frames::current_stack_frame</span></a><span class="plain-syntax">())</span>
|
||||
<span class="plain-syntax"> </span><a href="3-lvs.html#SP15" class="function-link"><span class="function-syntax">LocalVariableSlates::set_scope_to</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">lvar</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">current_block_stack</span><span class="plain-syntax">.</span><span class="element-syntax">pb_sp</span><span class="plain-syntax"> + </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -101,7 +101,7 @@ in namespace <span class="extract"><span class="extract-syntax">Marble</span></s
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">JumpLabels::write</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">JumpLabels::write</span></span>:<br/>Compile Blocks and Lines - <a href="5-cbal.html#SP4_4_3">§4.4.3</a><br/>Compile Invocations Inline - <a href="5-cii.html#SP6_4_1">§6.4.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">namespace</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">JumpLabels::write</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">JumpLabels::write</span></span>:<br/>Compile Blocks and Lines - <a href="5-cbal.html#SP4_4_3">§4.4.3</a><br/>Compile Invocations Inline - <a href="5-cii.html#SP6_5_1">§6.5.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">namespace</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">label_namespace</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lns</span><span class="plain-syntax"> = </span><a href="3-jl.html#SP3" class="function-link"><span class="function-syntax">JumpLabels::obtain_namespace</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">namespace</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"L_%S%d"</span><span class="plain-syntax">, </span><span class="identifier-syntax">lns</span><span class="plain-syntax">-></span><span class="element-syntax">label_prefix</span><span class="plain-syntax">, </span><span class="identifier-syntax">lns</span><span class="plain-syntax">-></span><span class="element-syntax">label_counter</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -201,7 +201,7 @@ a namespace list, we need to reset all the counters each time it is instantiated
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">JumpLabels::read_counter</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">JumpLabels::read_counter</span></span>:<br/>Compile Blocks and Lines - <a href="5-cbal.html#SP4_4_3">§4.4.3</a><br/>Compile Invocations Inline - <a href="5-cii.html#SP6_4_2">§6.4.2</a>, <a href="5-cii.html#SP6_4_4">§6.4.4</a>, <a href="5-cii.html#SP6_4_5">§6.4.5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">namespace</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">advance_by</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">JumpLabels::read_counter</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">JumpLabels::read_counter</span></span>:<br/>Compile Blocks and Lines - <a href="5-cbal.html#SP4_4_3">§4.4.3</a><br/>Compile Invocations Inline - <a href="5-cii.html#SP6_5_2">§6.5.2</a>, <a href="5-cii.html#SP6_5_4">§6.5.4</a>, <a href="5-cii.html#SP6_5_5">§6.5.5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">namespace</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">advance_by</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">label_namespace</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lns</span><span class="plain-syntax"> = </span><a href="3-jl.html#SP3" class="function-link"><span class="function-syntax">JumpLabels::obtain_namespace</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">namespace</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">c</span><span class="plain-syntax"> = </span><span class="identifier-syntax">lns</span><span class="plain-syntax">-></span><span class="element-syntax">label_counter</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">lns</span><span class="plain-syntax">-></span><span class="element-syntax">label_counter</span><span class="plain-syntax"> += </span><span class="identifier-syntax">advance_by</span><span class="plain-syntax">;</span>
|
||||
|
@ -214,12 +214,12 @@ This will accumulate into an array, as follows.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">JumpLabels::allocate_storage</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">JumpLabels::allocate_storage</span></span>:<br/>Compile Invocations Inline - <a href="5-cii.html#SP6_4_6">§6.4.6</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">namespace</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">multiplier</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">JumpLabels::allocate_storage</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">JumpLabels::allocate_storage</span></span>:<br/>Compile Invocations Inline - <a href="5-cii.html#SP6_5_6">§6.5.6</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">namespace</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">multiplier</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">label_namespace</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lns</span><span class="plain-syntax"> = </span><a href="3-jl.html#SP3" class="function-link"><span class="function-syntax">JumpLabels::obtain_namespace</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">namespace</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">multiplier</span><span class="plain-syntax"> > </span><span class="identifier-syntax">lns</span><span class="plain-syntax">-></span><span class="element-syntax">allocate_storage</span><span class="plain-syntax">) </span><span class="identifier-syntax">lns</span><span class="plain-syntax">-></span><span class="element-syntax">allocate_storage</span><span class="plain-syntax"> = </span><span class="identifier-syntax">multiplier</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">JumpLabels::storage_iname</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">JumpLabels::storage_iname</span></span>:<br/>Compile Invocations Inline - <a href="5-cii.html#SP6_4_3">§6.4.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">namespace</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">JumpLabels::storage_iname</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">JumpLabels::storage_iname</span></span>:<br/>Compile Invocations Inline - <a href="5-cii.html#SP6_5_3">§6.5.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">namespace</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">label_namespace</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lns</span><span class="plain-syntax"> = </span><a href="3-jl.html#SP3" class="function-link"><span class="function-syntax">JumpLabels::obtain_namespace</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">namespace</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">lns</span><span class="plain-syntax">-></span><span class="element-syntax">label_storage_iname</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
|
|
@ -74,7 +74,7 @@ symbol referring to the variable.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">LocalVariables::declare</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">LocalVariables::declare</span></span>:<br/><a href="3-lv.html#SP4">§4</a>, <a href="3-lv.html#SP7">§7</a>, <a href="3-lv.html#SP9">§9</a><br/>Compile Lvalues - <a href="2-cl.html#SP1_1">§1.1</a>, <a href="2-cl.html#SP2">§2</a><br/>Compile Conditions - <a href="2-cc.html#SP1_3">§1.3</a>, <a href="2-cc.html#SP5_1">§5.1</a><br/>Matching Action Patterns - <a href="2-map.html#SP3_5_1_1_1_20">§3.5.1.1.1.20</a>, <a href="2-map.html#SP5">§5</a>, <a href="2-map.html#SP5_2_1">§5.2.1</a><br/>Local Variable Slates - <a href="3-lvs.html#SP17">§17</a>, <a href="3-lvs.html#SP19">§19</a><br/>Local Parking - <a href="3-lp.html#SP2">§2</a>, <a href="3-lp.html#SP3">§3</a><br/>Compile Schemas - <a href="4-cs.html#SP5_1">§5.1</a>, <a href="4-cs.html#SP5_2">§5.2</a><br/>Compile Loops - <a href="4-cl.html#SP1_1">§1.1</a>, <a href="4-cl.html#SP2">§2</a>, <a href="4-cl.html#SP4">§4</a><br/>Deciding to Defer - <a href="4-dtd.html#SP8_1">§8.1</a><br/>Compile Deferred Propositions - <a href="4-cdp.html#SP3_5_1">§3.5.1</a><br/>Compile Blocks and Lines - <a href="5-cbal.html#SP4_3_5_2">§4.3.5.2</a><br/>Compile Invocations Inline - <a href="5-cii.html#SP3_2">§3.2</a>, <a href="5-cii.html#SP6_5_1">§6.5.1</a>, <a href="5-cii.html#SP6_5_3">§6.5.3</a><br/>Compile Solutions to Equations - <a href="5-cste.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">local_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lvar</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="function-syntax">LocalVariables::declare</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">LocalVariables::declare</span></span>:<br/><a href="3-lv.html#SP4">§4</a>, <a href="3-lv.html#SP7">§7</a>, <a href="3-lv.html#SP9">§9</a><br/>Compile Lvalues - <a href="2-cl.html#SP1_1">§1.1</a>, <a href="2-cl.html#SP2">§2</a><br/>Compile Conditions - <a href="2-cc.html#SP1_3">§1.3</a>, <a href="2-cc.html#SP5_1">§5.1</a><br/>Matching Action Patterns - <a href="2-map.html#SP3_5_1_1_1_20">§3.5.1.1.1.20</a>, <a href="2-map.html#SP5">§5</a>, <a href="2-map.html#SP5_2_1">§5.2.1</a><br/>Local Variable Slates - <a href="3-lvs.html#SP17">§17</a>, <a href="3-lvs.html#SP19">§19</a><br/>Local Parking - <a href="3-lp.html#SP2">§2</a>, <a href="3-lp.html#SP3">§3</a><br/>Compile Schemas - <a href="4-cs.html#SP5_1">§5.1</a>, <a href="4-cs.html#SP5_2">§5.2</a><br/>Compile Loops - <a href="4-cl.html#SP1_1">§1.1</a>, <a href="4-cl.html#SP2">§2</a>, <a href="4-cl.html#SP4">§4</a><br/>Deciding to Defer - <a href="4-dtd.html#SP8_1">§8.1</a><br/>Compile Deferred Propositions - <a href="4-cdp.html#SP3_5_1">§3.5.1</a><br/>Compile Blocks and Lines - <a href="5-cbal.html#SP4_3_5_2">§4.3.5.2</a><br/>Compile Invocations Inline - <a href="5-cii.html#SP3_2">§3.2</a>, <a href="5-cii.html#SP6_6_1">§6.6.1</a>, <a href="5-cii.html#SP6_6_3">§6.6.3</a><br/>Compile Solutions to Equations - <a href="5-cste.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">local_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lvar</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-lvs.html#SP18" class="function-link"><span class="function-syntax">LocalVariableSlates::declare_one</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">lvar</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
@ -156,7 +156,7 @@ declared.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">local_variable</span><span class="plain-syntax"> *</span><span class="function-syntax">LocalVariables::new_let_value</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">LocalVariables::new_let_value</span></span>:<br/><a href="3-lv.html#SP21">§21</a><br/>Compile Loops - <a href="4-cl.html#SP1">§1</a>, <a href="4-cl.html#SP4">§4</a><br/>Compile Invocations Inline - <a href="5-cii.html#SP3_2">§3.2</a>, <a href="5-cii.html#SP6_5_1_1">§6.5.1.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">local_variable</span><span class="plain-syntax"> *</span><span class="function-syntax">LocalVariables::new_let_value</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">LocalVariables::new_let_value</span></span>:<br/><a href="3-lv.html#SP21">§21</a><br/>Compile Loops - <a href="4-cl.html#SP1">§1</a>, <a href="4-cl.html#SP4">§4</a><br/>Compile Invocations Inline - <a href="5-cii.html#SP3_2">§3.2</a>, <a href="5-cii.html#SP6_6_1_1">§6.6.1.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">stack_frame</span><span class="plain-syntax"> *</span><span class="identifier-syntax">frame</span><span class="plain-syntax"> = </span><a href="3-sf.html#SP2" class="function-link"><span class="function-syntax">Frames::current_stack_frame</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">frame</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"tried to add let value without stack frame"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">local_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lvar</span><span class="plain-syntax"> = </span><a href="3-lvs.html#SP11" class="function-link"><span class="function-syntax">LocalVariableSlates::allocate_I7_local</span></a><span class="plain-syntax">(&(</span><span class="identifier-syntax">frame</span><span class="plain-syntax">-></span><span class="element-syntax">local_variables</span><span class="plain-syntax">),</span>
|
||||
|
@ -185,11 +185,11 @@ in the entire set of documentation Examples making use of this "feature". But
|
|||
in the end, it didn't seem harmful enough to matter.
|
||||
<a href="#fnref:1" title="return to text"> ↩</a></p></li></ul>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">LocalVariables::unprotect</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">LocalVariables::unprotect</span></span>:<br/>Compile Invocations Inline - <a href="5-cii.html#SP6_5_2">§6.5.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">local_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lvar</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">LocalVariables::unprotect</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">LocalVariables::unprotect</span></span>:<br/>Compile Invocations Inline - <a href="5-cii.html#SP6_6_2">§6.6.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">local_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lvar</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">lvar</span><span class="plain-syntax">-></span><span class="identifier-syntax">current_usage</span><span class="plain-syntax">.</span><span class="element-syntax">protected</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">LocalVariables::protected</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">LocalVariables::protected</span></span>:<br/>Compile Invocations Inline - <a href="5-cii.html#SP6_5_4_2">§6.5.4.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">local_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lvar</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">LocalVariables::protected</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">LocalVariables::protected</span></span>:<br/>Compile Invocations Inline - <a href="5-cii.html#SP6_6_4_2">§6.6.4.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">local_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lvar</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">lvar</span><span class="plain-syntax">-></span><span class="element-syntax">lv_purpose</span><span class="plain-syntax"> == </span><span class="constant-syntax">LET_VALUE_LV</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">lvar</span><span class="plain-syntax">-></span><span class="element-syntax">current_usage</span><span class="plain-syntax">.</span><span class="element-syntax">protected</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_source</span><span class="plain-syntax">(1, </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::quote_wording</span><span class="plain-syntax">(2, </span><span class="identifier-syntax">lvar</span><span class="plain-syntax">-></span><span class="element-syntax">current_usage</span><span class="plain-syntax">.</span><span class="element-syntax">varname</span><span class="plain-syntax">);</span>
|
||||
|
@ -213,7 +213,7 @@ be created in the current frame.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">local_variable</span><span class="plain-syntax"> *</span><span class="function-syntax">LocalVariables::new_internal</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">LocalVariables::new_internal</span></span>:<br/>Compile Deferred Propositions - <a href="4-cdp.html#SP3_5_1">§3.5.1</a><br/>Compile Invocations Inline - <a href="5-cii.html#SP6_5_1_2">§6.5.1.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">identifier</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">local_variable</span><span class="plain-syntax"> *</span><span class="function-syntax">LocalVariables::new_internal</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">LocalVariables::new_internal</span></span>:<br/>Compile Deferred Propositions - <a href="4-cdp.html#SP3_5_1">§3.5.1</a><br/>Compile Invocations Inline - <a href="5-cii.html#SP6_6_1_2">§6.6.1.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">identifier</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">stack_frame</span><span class="plain-syntax"> *</span><span class="identifier-syntax">frame</span><span class="plain-syntax"> = </span><a href="3-sf.html#SP2" class="function-link"><span class="function-syntax">Frames::current_stack_frame</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">frame</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-lvs.html#SP12" class="function-link"><span class="function-syntax">LocalVariableSlates::ensure_Inter_identifier</span></a><span class="plain-syntax">(&(</span><span class="identifier-syntax">frame</span><span class="plain-syntax">-></span><span class="element-syntax">local_variables</span><span class="plain-syntax">),</span>
|
||||
|
@ -620,7 +620,7 @@ exists to fix that:
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">LocalVariables::set_kind</span><button class="popup" onclick="togglePopup('usagePopup28')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup28">Usage of <span class="code-font"><span class="function-syntax">LocalVariables::set_kind</span></span>:<br/><a href="3-lv.html#SP20">§20</a><br/>Compile Imperative Definitions - <a href="3-cid.html#SP10">§10</a><br/>Compile Loops - <a href="4-cl.html#SP4">§4</a><br/>Compile Blocks and Lines - <a href="5-cbal.html#SP4_3_5_1_1">§4.3.5.1.1</a><br/>Compile Invocations Inline - <a href="5-cii.html#SP6_5_1_1_1">§6.5.1.1.1</a><br/>Compile Solutions to Equations - <a href="5-cste.html#SP3_3_2">§3.3.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">local_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lvar</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">LocalVariables::set_kind</span><button class="popup" onclick="togglePopup('usagePopup28')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup28">Usage of <span class="code-font"><span class="function-syntax">LocalVariables::set_kind</span></span>:<br/><a href="3-lv.html#SP20">§20</a><br/>Compile Imperative Definitions - <a href="3-cid.html#SP10">§10</a><br/>Compile Loops - <a href="4-cl.html#SP4">§4</a><br/>Compile Blocks and Lines - <a href="5-cbal.html#SP4_3_5_1_1">§4.3.5.1.1</a><br/>Compile Invocations Inline - <a href="5-cii.html#SP6_6_1_1_1">§6.6.1.1.1</a><br/>Compile Solutions to Equations - <a href="5-cste.html#SP3_3_2">§3.3.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">local_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">lvar</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">lvar</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"Tried to set kind of nonexistent local variable"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">LOCAL_VARIABLES</span><span class="plain-syntax">, </span><span class="string-syntax">"Kind of local $k set to %u\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">lvar</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">lvar</span><span class="plain-syntax">-></span><span class="identifier-syntax">current_usage</span><span class="plain-syntax">.</span><span class="element-syntax">kind_as_declared</span><span class="plain-syntax"> = </span><span class="identifier-syntax">K</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -486,7 +486,7 @@ following, without having to worry about how any of this works:
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Frames::emit_new_local_value</span><button class="popup" onclick="togglePopup('usagePopup21')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup21">Usage of <span class="code-font"><span class="function-syntax">Frames::emit_new_local_value</span></span>:<br/>Compile Values - <a href="2-cv.html#SP6_1">§6.1</a><br/>Compile Rvalues - <a href="2-cr.html#SP5">§5</a><br/>Deciding to Defer - <a href="4-dtd.html#SP11">§11</a>, <a href="4-dtd.html#SP17">§17</a><br/>Compile Invocations As Calls - <a href="5-ciac.html#SP2_2">§2.2</a><br/>Compile Invocations Inline - <a href="5-cii.html#SP3_2">§3.2</a>, <a href="5-cii.html#SP6_2_1">§6.2.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Frames::emit_new_local_value</span><button class="popup" onclick="togglePopup('usagePopup21')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup21">Usage of <span class="code-font"><span class="function-syntax">Frames::emit_new_local_value</span></span>:<br/>Compile Values - <a href="2-cv.html#SP6_1">§6.1</a><br/>Compile Rvalues - <a href="2-cr.html#SP5">§5</a><br/>Deciding to Defer - <a href="4-dtd.html#SP11">§11</a>, <a href="4-dtd.html#SP17">§17</a><br/>Compile Invocations As Calls - <a href="5-ciac.html#SP2_2">§2.2</a><br/>Compile Invocations Inline - <a href="5-cii.html#SP3_2">§3.2</a>, <a href="5-cii.html#SP6_3_1">§6.3.1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">local_block_value</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bv</span><span class="plain-syntax"> = </span><a href="3-sf.html#SP16" class="function-link"><span class="function-syntax">Frames::allocate_local_block_value</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="4-cs.html#SP1" class="function-link"><span class="function-syntax">CompileSchemas::from_terms_in_val_context</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">bv</span><span class="plain-syntax">-></span><span class="element-syntax">to_refer</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
|
|
@ -82,7 +82,7 @@ be <span class="extract"><span class="extract-syntax">v1</span></span>.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CompileLoops::through_matches</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">CompileLoops::through_matches</span></span>:<br/>Compile Invocations Inline - <a href="5-cii.html#SP6_7">§6.7</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">spec</span><span class="plain-syntax">, </span><span class="reserved-syntax">local_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">v1</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CompileLoops::through_matches</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">CompileLoops::through_matches</span></span>:<br/>Compile Invocations Inline - <a href="5-cii.html#SP6_8">§6.8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">spec</span><span class="plain-syntax">, </span><span class="reserved-syntax">local_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">v1</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">DK</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Specifications::to_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">spec</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Kinds::get_construct</span><span class="plain-syntax">(</span><span class="identifier-syntax">DK</span><span class="plain-syntax">) != </span><span class="identifier-syntax">CON_description</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"repeat through non-description"</span><span class="plain-syntax">);</span>
|
||||
|
@ -359,7 +359,7 @@ a list (whose contents are not known at compile time).
|
|||
variable to avoid having to evaluate it more than once.
|
||||
</li></ul>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CompileLoops::through_list</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">CompileLoops::through_list</span></span>:<br/>Compile Invocations Inline - <a href="5-cii.html#SP6_7">§6.7</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">spec</span><span class="plain-syntax">, </span><span class="reserved-syntax">local_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val_var</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CompileLoops::through_list</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">CompileLoops::through_list</span></span>:<br/>Compile Invocations Inline - <a href="5-cii.html#SP6_8">§6.8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">spec</span><span class="plain-syntax">, </span><span class="reserved-syntax">local_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">val_var</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">local_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">index_var</span><span class="plain-syntax"> = </span><a href="3-lv.html#SP7" class="function-link"><span class="function-syntax">LocalVariables::new_let_value</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">local_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">copy_var</span><span class="plain-syntax"> = </span><a href="3-lv.html#SP7" class="function-link"><span class="function-syntax">LocalVariables::new_let_value</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Specifications::to_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">spec</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -271,7 +271,7 @@ asserting the openness, and does not mean to be changing the doorness at all.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CompilePropositions::to_make_true_about</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">CompilePropositions::to_make_true_about</span></span>:<br/>Compile Invocations Inline - <a href="5-cii.html#SP6_5_6">§6.5.6</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">pcalc_prop</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CompilePropositions::to_make_true_about</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">CompilePropositions::to_make_true_about</span></span>:<br/>Compile Invocations Inline - <a href="5-cii.html#SP6_6_6">§6.6.6</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">pcalc_prop</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Binding::substitute_var_0_in</span><span class="plain-syntax">(</span><span class="identifier-syntax">prop</span><span class="plain-syntax">, </span><span class="identifier-syntax">t</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TypecheckPropositions::type_check</span><span class="plain-syntax">(</span><span class="identifier-syntax">prop</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TypecheckPropositions::tc_no_problem_reporting</span><span class="plain-syntax">());</span>
|
||||
|
@ -292,7 +292,7 @@ longer possible to know at compile-time.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CompilePropositions::to_number_of_matches</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">CompilePropositions::to_number_of_matches</span></span>:<br/>Compile Invocations Inline - <a href="5-cii.html#SP6_7">§6.7</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">desc</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CompilePropositions::to_number_of_matches</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">CompilePropositions::to_number_of_matches</span></span>:<br/>Compile Invocations Inline - <a href="5-cii.html#SP6_8">§6.8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">desc</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">pcalc_prop</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_proposition</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Propositions::length</span><span class="plain-syntax">(</span><span class="identifier-syntax">prop</span><span class="plain-syntax">) == </span><span class="constant-syntax">1</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Propositions::describes_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">prop</span><span class="plain-syntax">);</span>
|
||||
|
@ -306,7 +306,7 @@ longer possible to know at compile-time.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"no way to compile this without deferral"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CompilePropositions::to_list_of_matches</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">CompilePropositions::to_list_of_matches</span></span>:<br/>Compile Invocations Inline - <a href="5-cii.html#SP6_2_2">§6.2.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CompilePropositions::to_list_of_matches</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">CompilePropositions::to_list_of_matches</span></span>:<br/>Compile Invocations Inline - <a href="5-cii.html#SP6_3_2">§6.3.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">pcalc_prop</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_proposition</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Propositions::length</span><span class="plain-syntax">(</span><span class="identifier-syntax">prop</span><span class="plain-syntax">) == </span><span class="constant-syntax">1</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Propositions::describes_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">prop</span><span class="plain-syntax">);</span>
|
||||
|
@ -320,7 +320,7 @@ longer possible to know at compile-time.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"no way to compile this without deferral"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CompilePropositions::to_random_match</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">CompilePropositions::to_random_match</span></span>:<br/>Compile Invocations Inline - <a href="5-cii.html#SP6_7">§6.7</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">desc</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CompilePropositions::to_random_match</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">CompilePropositions::to_random_match</span></span>:<br/>Compile Invocations Inline - <a href="5-cii.html#SP6_8">§6.8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">desc</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">pcalc_prop</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_proposition</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Propositions::length</span><span class="plain-syntax">(</span><span class="identifier-syntax">prop</span><span class="plain-syntax">) == </span><span class="constant-syntax">1</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Propositions::describes_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">prop</span><span class="plain-syntax">);</span>
|
||||
|
@ -337,17 +337,17 @@ longer possible to know at compile-time.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"no way to compile this without deferral"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CompilePropositions::to_total_of_matches</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">CompilePropositions::to_total_of_matches</span></span>:<br/>Compile Invocations Inline - <a href="5-cii.html#SP6_7">§6.7</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">desc</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CompilePropositions::to_total_of_matches</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">CompilePropositions::to_total_of_matches</span></span>:<br/>Compile Invocations Inline - <a href="5-cii.html#SP6_8">§6.8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">desc</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-dtd.html#SP20" class="function-link"><span class="function-syntax">Deferrals::defer_total_of_matches</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="identifier-syntax">desc</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"no way to compile this without deferral"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CompilePropositions::to_extremal_match</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">CompilePropositions::to_extremal_match</span></span>:<br/>Compile Invocations Inline - <a href="5-cii.html#SP6_7">§6.7</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">sign</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CompilePropositions::to_extremal_match</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">CompilePropositions::to_extremal_match</span></span>:<br/>Compile Invocations Inline - <a href="5-cii.html#SP6_8">§6.8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="identifier-syntax">property</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">sign</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-dtd.html#SP21" class="function-link"><span class="function-syntax">Deferrals::defer_extremal_match</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="identifier-syntax">prn</span><span class="plain-syntax">, </span><span class="identifier-syntax">sign</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"no way to compile this without deferral"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CompilePropositions::to_test_if_matches</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">CompilePropositions::to_test_if_matches</span></span>:<br/>Compile Invocations Inline - <a href="5-cii.html#SP6_5_5">§6.5.5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">in</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">desc</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CompilePropositions::to_test_if_matches</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">CompilePropositions::to_test_if_matches</span></span>:<br/>Compile Invocations Inline - <a href="5-cii.html#SP6_6_5">§6.6.5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">in</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">desc</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="4-dtd.html#SP22" class="function-link"><span class="function-syntax">Deferrals::defer_if_matches</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">in</span><span class="plain-syntax">, </span><span class="identifier-syntax">desc</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"no way to compile this without deferral"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
|
|
@ -90,7 +90,7 @@ in several different ways.
|
|||
<span class="plain-syntax"> </span><a href="4-cs.html#SP2" class="function-link"><span class="function-syntax">CompileSchemas::sch_emit_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sch</span><span class="plain-syntax">, </span><span class="identifier-syntax">pt1</span><span class="plain-syntax">, </span><span class="identifier-syntax">pt2</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CompileSchemas::from_terms_in_val_context</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">CompileSchemas::from_terms_in_val_context</span></span>:<br/><a href="4-cs.html#SP5_3">§5.3</a><br/>Stack Frames - <a href="3-sf.html#SP21">§21</a><br/>Compile Invocations Inline - <a href="5-cii.html#SP6_5_4">§6.5.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">i6_schema</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sch</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CompileSchemas::from_terms_in_val_context</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">CompileSchemas::from_terms_in_val_context</span></span>:<br/><a href="4-cs.html#SP5_3">§5.3</a><br/>Stack Frames - <a href="3-sf.html#SP21">§21</a><br/>Compile Invocations Inline - <a href="5-cii.html#SP6_6_4">§6.6.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">i6_schema</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sch</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">pcalc_term</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pt1</span><span class="plain-syntax">, </span><span class="identifier-syntax">pcalc_term</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pt2</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="4-cs.html#SP2" class="function-link"><span class="function-syntax">CompileSchemas::sch_emit_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sch</span><span class="plain-syntax">, </span><span class="identifier-syntax">pt1</span><span class="plain-syntax">, </span><span class="identifier-syntax">pt2</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
|
|
@ -78,7 +78,7 @@ arithmetic is integer or floating-point.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::Compile::perform_arithmetic_emit</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Kinds::Compile::perform_arithmetic_emit</span></span>:<br/>Compile Invocations Inline - <a href="5-cii.html#SP6_5_7">§6.5.7</a><br/>Compile Solutions to Equations - <a href="5-cste.html#SP4_1">§4.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">op</span><span class="plain-syntax">, </span><span class="identifier-syntax">equation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eqn</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::Compile::perform_arithmetic_emit</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">Kinds::Compile::perform_arithmetic_emit</span></span>:<br/>Compile Invocations Inline - <a href="5-cii.html#SP6_6_7">§6.6.7</a><br/>Compile Solutions to Equations - <a href="5-cste.html#SP4_1">§4.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">op</span><span class="plain-syntax">, </span><span class="identifier-syntax">equation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eqn</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">X</span><span class="plain-syntax">, </span><span class="identifier-syntax">equation_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">EX</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">KX</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">Y</span><span class="plain-syntax">, </span><span class="identifier-syntax">equation_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">EY</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">KY</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">binary</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -130,7 +130,7 @@ invocations.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CallingFunctions::indirect_function_call</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">CallingFunctions::indirect_function_call</span></span>:<br/>Compile Invocations Inline - <a href="5-cii.html#SP6_7_1">§6.7.1</a>, <a href="5-cii.html#SP6_7_2">§6.7.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">tokens_packet</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tokens</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CallingFunctions::indirect_function_call</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">CallingFunctions::indirect_function_call</span></span>:<br/>Compile Invocations Inline - <a href="5-cii.html#SP6_8_1">§6.8.1</a>, <a href="5-cii.html#SP6_8_2">§6.8.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">tokens_packet</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tokens</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">indirect_spec</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">lookup_flag</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">return_kind</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-ciac.html#SP2_1" class="named-paragraph-link"><span class="named-paragraph">Compute the return kind of the phrase</span><span class="named-paragraph-number">2.1</span></a></span><span class="plain-syntax">;</span>
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -90,7 +90,7 @@ They are wiped out once this compilation is over.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EquationSolver::compile_solution</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">EquationSolver::compile_solution</span></span>:<br/>Compile Invocations Inline - <a href="5-cii.html#SP6_7_3">§6.7.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">equation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eqn</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EquationSolver::compile_solution</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">EquationSolver::compile_solution</span></span>:<br/>Compile Invocations Inline - <a href="5-cii.html#SP6_8_3">§6.8.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">equation</span><span class="plain-syntax"> *</span><span class="identifier-syntax">eqn</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Wordings::nonempty</span><span class="plain-syntax">(</span><span class="identifier-syntax">eqn</span><span class="plain-syntax">-></span><span class="identifier-syntax">usage_text</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Equations::eqn_declare_variables_inner</span><span class="plain-syntax">(</span><span class="identifier-syntax">eqn</span><span class="plain-syntax">, </span><span class="identifier-syntax">eqn</span><span class="plain-syntax">-></span><span class="identifier-syntax">usage_text</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-cste.html#SP3" class="function-link"><span class="function-syntax">EquationSolver::compile_solution_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">W</span><span class="plain-syntax">, </span><span class="identifier-syntax">eqn</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -748,10 +748,10 @@ to miss out on this detail.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">con</span><span class="plain-syntax"> == </span><span class="identifier-syntax">CON_KIND_VARIABLE</span><span class="plain-syntax">) { </span><span class="named-paragraph-container code-font"><a href="2-dk.html#SP24_1_2" class="named-paragraph-link"><span class="named-paragraph">Describe a kind variable, either by name or by value</span><span class="named-paragraph-number">24.1.2</span></a></span><span class="plain-syntax">; </span><span class="reserved-syntax">return</span><span class="plain-syntax">; }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">con</span><span class="plain-syntax"> == </span><span class="identifier-syntax">CON_INTERMEDIATE</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">OUT</span><span class="plain-syntax"> == </span><span class="identifier-syntax">DL</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"$Q"</span><span class="plain-syntax">, </span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_dimensional_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"$Q"</span><span class="plain-syntax">, </span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_dimensional_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span>
|
||||
<span class="plain-syntax"> </span><a href="3-dmn.html#SP26" class="function-link"><span class="function-syntax">Kinds::Dimensions::index_unit_sequence</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_dimensional_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">), </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_dimensional_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">), </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
|
|
|
@ -571,7 +571,7 @@ is the super-kind ("value", "thing").
|
|||
|
||||
<span class="plain-syntax"> </span><a href="2-fk.html#SP13" class="function-link"><span class="function-syntax">FamiliarKinds::notice_new_kind</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">NEW_BASE_KINDS_CALLBACK</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">NEW_BASE_KINDS_CALLBACK</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">super</span><span class="plain-syntax">, </span><a href="2-uk.html#SP19" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_identifier</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">), </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">NEW_BASE_KINDS_CALLBACK</span><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">super</span><span class="plain-syntax">, </span><a href="2-uk.html#SP20" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_identifier</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">), </span><span class="identifier-syntax">W</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
|
||||
|
||||
<span class="plain-syntax"> </span><a href="2-knd.html#SP21" class="function-link"><span class="function-syntax">Kinds::make_subkind_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">super</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -73,7 +73,7 @@ MathJax = {
|
|||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../services.html">Services</a></li><li><a href="index.html">kinds</a></li><li><a href="index.html#2">Chapter 2: Kinds</a></li><li><b>Using Kinds</b></li></ul></div>
|
||||
<p class="purpose">To determine the characteristics of different kinds, enabling them to be used in practice.</p>
|
||||
|
||||
<ul class="toc"><li><a href="2-uk.html#SP1">§1. Names of kinds</a></li><li><a href="2-uk.html#SP2">§2. Being an object</a></li><li><a href="2-uk.html#SP3">§3. Definiteness</a></li><li><a href="2-uk.html#SP5">§5. (A) How this came into being</a></li><li><a href="2-uk.html#SP12">§12. (B) Constructing kinds</a></li><li><a href="2-uk.html#SP13">§13. (C) Compatibility with other kinds</a></li><li><a href="2-uk.html#SP14">§14. (D) How constant values of this kind are expressed</a></li><li><a href="2-uk.html#SP16">§16. (G) Performing arithmetic</a></li><li><a href="2-uk.html#SP19">§19. (H) An identifier name</a></li><li><a href="2-uk.html#SP20">§20. (I) Storing values at run-time</a></li><li><a href="2-uk.html#SP25">§25. (K) Indexing and documentation</a></li></ul><hr class="tocbar">
|
||||
<ul class="toc"><li><a href="2-uk.html#SP1">§1. Names of kinds</a></li><li><a href="2-uk.html#SP2">§2. Being an object</a></li><li><a href="2-uk.html#SP3">§3. Definiteness</a></li><li><a href="2-uk.html#SP5">§5. (A) How this came into being</a></li><li><a href="2-uk.html#SP12">§12. (B) Constructing kinds</a></li><li><a href="2-uk.html#SP13">§13. (C) Compatibility with other kinds</a></li><li><a href="2-uk.html#SP14">§14. (D) How constant values of this kind are expressed</a></li><li><a href="2-uk.html#SP17">§17. (G) Performing arithmetic</a></li><li><a href="2-uk.html#SP20">§20. (H) An identifier name</a></li><li><a href="2-uk.html#SP21">§21. (I) Storing values at run-time</a></li><li><a href="2-uk.html#SP26">§26. (K) Indexing and documentation</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. Names of kinds. </b></p>
|
||||
|
||||
|
@ -295,7 +295,17 @@ kilopascals" might be a notation for a kind where constants are not named.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>§15. </b>The following returns the compilation method (a constant in the form <span class="extract"><span class="extract-syntax">*_CCM</span></span>,
|
||||
<p class="commentary firstcommentary"><a id="SP15" class="paragraph-anchor"></a><b>§15. </b>And some kinds have values which are implicit in the source text, but never
|
||||
spelled out with direct assertions — dialogue beats, for example.
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::Behaviour::forbid_assertion_creation</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="element-syntax">construct</span><span class="plain-syntax">-></span><span class="element-syntax">forbid_assertion_creation</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP16" class="paragraph-anchor"></a><b>§16. </b>The following returns the compilation method (a constant in the form <span class="extract"><span class="extract-syntax">*_CCM</span></span>,
|
||||
defined in "Data Types.w") used when compiling an actual constant value
|
||||
specification of this kind: in other words, when compiling an I6
|
||||
value for a constant of this kind.
|
||||
|
@ -307,7 +317,7 @@ value for a constant of this kind.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="element-syntax">construct</span><span class="plain-syntax">-></span><span class="element-syntax">constant_compilation_method</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP16" class="paragraph-anchor"></a><b>§16. (G) Performing arithmetic. </b>Comparisons made by calling an I6 routine are slower in the VM than using the
|
||||
<p class="commentary firstcommentary"><a id="SP17" class="paragraph-anchor"></a><b>§17. (G) Performing arithmetic. </b>Comparisons made by calling an I6 routine are slower in the VM than using the
|
||||
standard <span class="extract"><span class="extract-syntax"><</span></span> or <span class="extract"><span class="extract-syntax">></span></span> operators for signed comparison, so we use them only if
|
||||
we have to.
|
||||
</p>
|
||||
|
@ -323,7 +333,7 @@ we have to.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-kc2.html#SP17" class="function-link"><span class="function-syntax">KindConstructors::get_comparison_fn_identifier</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="element-syntax">construct</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP17" class="paragraph-anchor"></a><b>§17. </b>See "Dimensions.w" for a full account of these ideas. In theory, our
|
||||
<p class="commentary firstcommentary"><a id="SP18" class="paragraph-anchor"></a><b>§18. </b>See "Dimensions.w" for a full account of these ideas. In theory, our
|
||||
polymorphic system of arithmetic allows us to add or multiply any kinds
|
||||
according to rules provided in the source text. In practice we have to keep
|
||||
track of dimensions, and the following routines connect the code in the
|
||||
|
@ -338,7 +348,7 @@ track of dimensions, and the following routines connect the code in the
|
|||
|
||||
<span class="reserved-syntax">unit_sequence</span><span class="plain-syntax"> *</span><span class="function-syntax">Kinds::Behaviour::get_dimensional_form</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">Kinds::Behaviour::get_dimensional_form</span></span>:<br/>Describing Kinds - <a href="2-dk.html#SP24_1">§24.1</a><br/>Dimensions - <a href="3-dmn.html#SP23">§23</a>, <a href="3-dmn.html#SP28_2">§28.2</a>, <a href="3-dmn.html#SP28_3">§28.3</a>, <a href="3-dmn.html#SP28_4">§28.4</a>, <a href="3-dmn.html#SP29">§29</a>, <a href="3-dmn.html#SP30">§30</a>, <a href="3-dmn.html#SP31">§31</a>, <a href="3-dmn.html#SP23_1">§23.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::is_quasinumerical</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::is_quasinumerical</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="identifier-syntax">construct</span><span class="plain-syntax"> == </span><span class="identifier-syntax">CON_INTERMEDIATE</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="element-syntax">intermediate_result</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> &(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="element-syntax">construct</span><span class="plain-syntax">-></span><span class="element-syntax">dimensional_form</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -364,7 +374,7 @@ track of dimensions, and the following routines connect the code in the
|
|||
<span class="plain-syntax"> #</span><span class="identifier-syntax">endif</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP18" class="paragraph-anchor"></a><b>§18. </b>The dimensional rules for K are the conventions on whether arithmetic
|
||||
<p class="commentary firstcommentary"><a id="SP19" class="paragraph-anchor"></a><b>§19. </b>The dimensional rules for K are the conventions on whether arithmetic
|
||||
operations can be applied, and if so, what kind the result has.
|
||||
</p>
|
||||
|
||||
|
@ -374,7 +384,7 @@ operations can be applied, and if so, what kind the result has.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> &(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="element-syntax">construct</span><span class="plain-syntax">-></span><span class="element-syntax">dim_rules</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP19" class="paragraph-anchor"></a><b>§19. (H) An identifier name. </b></p>
|
||||
<p class="commentary firstcommentary"><a id="SP20" class="paragraph-anchor"></a><b>§20. (H) An identifier name. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="function-syntax">Kinds::Behaviour::get_identifier</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">Kinds::Behaviour::get_identifier</span></span>:<br/>Kinds - <a href="2-knd.html#SP20">§20</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
|
@ -382,7 +392,7 @@ operations can be applied, and if so, what kind the result has.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="element-syntax">construct</span><span class="plain-syntax">-></span><span class="element-syntax">explicit_identifier</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP20" class="paragraph-anchor"></a><b>§20. (I) Storing values at run-time. </b>Recall that values are stored at run-time either as "word values" — a
|
||||
<p class="commentary firstcommentary"><a id="SP21" class="paragraph-anchor"></a><b>§21. (I) Storing values at run-time. </b>Recall that values are stored at run-time either as "word values" — a
|
||||
single I6 word — or "pointer values" (sometimes "block values"), where
|
||||
the I6 word is a pointer to a block of data on the heap. Numbers and times
|
||||
are word values, texts and lists are pointer values. Which form a value
|
||||
|
@ -395,7 +405,7 @@ takes depends on its kind:
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="4-kc2.html#SP21" class="function-link"><span class="function-syntax">KindConstructors::uses_block_values</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="element-syntax">construct</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP21" class="paragraph-anchor"></a><b>§21. </b>Exactly how large the small block is:
|
||||
<p class="commentary firstcommentary"><a id="SP22" class="paragraph-anchor"></a><b>§22. </b>Exactly how large the small block is:
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -404,7 +414,7 @@ takes depends on its kind:
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="element-syntax">construct</span><span class="plain-syntax">-></span><span class="element-syntax">small_block_size</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP22" class="paragraph-anchor"></a><b>§22. </b>A reasonable estimate of how large the (larger!) heap block needs to be,
|
||||
<p class="commentary firstcommentary"><a id="SP23" class="paragraph-anchor"></a><b>§23. </b>A reasonable estimate of how large the (larger!) heap block needs to be,
|
||||
for a pointer-value kind, in bytes.
|
||||
</p>
|
||||
|
||||
|
@ -414,7 +424,7 @@ for a pointer-value kind, in bytes.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="element-syntax">construct</span><span class="plain-syntax">-></span><span class="element-syntax">heap_size_estimate</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP23" class="paragraph-anchor"></a><b>§23. </b>And the following returns the name of an I6 routine to determine if two
|
||||
<p class="commentary firstcommentary"><a id="SP24" class="paragraph-anchor"></a><b>§24. </b>And the following returns the name of an I6 routine to determine if two
|
||||
values of \(K\) are different from each other; or <span class="extract"><span class="extract-syntax">NULL</span></span> to say that it's
|
||||
sufficient to apply <span class="extract"><span class="extract-syntax">~=</span></span> to the values.
|
||||
</p>
|
||||
|
@ -425,7 +435,7 @@ sufficient to apply <span class="extract"><span class="extract-syntax">~=</span>
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="element-syntax">construct</span><span class="plain-syntax">-></span><span class="element-syntax">distinguishing_routine</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP24" class="paragraph-anchor"></a><b>§24. </b>Can values of this kind be serialised out to a file and read back in again
|
||||
<p class="commentary firstcommentary"><a id="SP25" class="paragraph-anchor"></a><b>§25. </b>Can values of this kind be serialised out to a file and read back in again
|
||||
by some other Inform story file, or by this one running on a different day?
|
||||
</p>
|
||||
|
||||
|
@ -435,7 +445,7 @@ by some other Inform story file, or by this one running on a different day?
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="element-syntax">construct</span><span class="plain-syntax">-></span><span class="element-syntax">can_exchange</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP25" class="paragraph-anchor"></a><b>§25. (K) Indexing and documentation. </b></p>
|
||||
<p class="commentary firstcommentary"><a id="SP26" class="paragraph-anchor"></a><b>§26. (K) Indexing and documentation. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="function-syntax">Kinds::Behaviour::get_documentation_reference</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
|
@ -448,7 +458,7 @@ by some other Inform story file, or by this one running on a different day?
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="element-syntax">construct</span><span class="plain-syntax">-></span><span class="element-syntax">documentation_reference</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Str::duplicate</span><span class="plain-syntax">(</span><span class="identifier-syntax">dr</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP26" class="paragraph-anchor"></a><b>§26. </b>The following is used in the Kinds index, in the table showing the default
|
||||
<p class="commentary firstcommentary"><a id="SP27" class="paragraph-anchor"></a><b>§27. </b>The following is used in the Kinds index, in the table showing the default
|
||||
values for each kind:
|
||||
</p>
|
||||
|
||||
|
@ -478,7 +488,7 @@ values for each kind:
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">-></span><span class="element-syntax">construct</span><span class="plain-syntax">-></span><span class="element-syntax">indexed_grey_if_empty</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP27" class="paragraph-anchor"></a><b>§27. </b>And every kind is allowed to have the specification pseudo-property — a little
|
||||
<p class="commentary firstcommentary"><a id="SP28" class="paragraph-anchor"></a><b>§28. </b>And every kind is allowed to have the specification pseudo-property — a little
|
||||
text used only on the index pages, and not existing at run-time.
|
||||
</p>
|
||||
|
||||
|
|
|
@ -114,7 +114,7 @@ the others.
|
|||
</p>
|
||||
|
||||
<ul class="footnotetexts"><li class="footnote" id="fn:1"><p class="inwebfootnote"><sup id="fnref:1"><a href="#fn:1" rel="footnote">1</a></sup> Basically, any kind on which arithmetic can be done. To test this, call
|
||||
<a href="2-uk.html#SP17" class="internal">Kinds::Behaviour::is_quasinumerical</a>.
|
||||
<a href="2-uk.html#SP18" class="internal">Kinds::Behaviour::is_quasinumerical</a>.
|
||||
<a href="#fnref:1" title="return to text"> ↩</a></p></li><li class="footnote" id="fn:2"><p class="inwebfootnote"><sup id="fnref:2"><a href="#fn:2" rel="footnote">2</a></sup> Occasionally we have thought about allowing text to be duplicated by
|
||||
multiplication — 2 times "zig" would be "zigzig", and maybe similarly for
|
||||
lists — but it always seemed more likely to be used by mistake than intentionally.
|
||||
|
@ -366,7 +366,7 @@ order of creation.
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::Dimensions::record_multiplication_rule</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">Kinds::Dimensions::record_multiplication_rule</span></span>:<br/><a href="3-dmn.html#SP15">§15</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">left</span><span class="plain-syntax">, </span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">right</span><span class="plain-syntax">, </span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">outcome</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">dimensional_rules</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dimrs</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_dim_rules</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">left</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">dimensional_rules</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dimrs</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP19" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_dim_rules</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">left</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">dimensional_rule</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dimr</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">dimr</span><span class="plain-syntax"> = </span><span class="identifier-syntax">dimrs</span><span class="plain-syntax">-></span><span class="element-syntax">multiplications</span><span class="plain-syntax">; </span><span class="identifier-syntax">dimr</span><span class="plain-syntax">; </span><span class="identifier-syntax">dimr</span><span class="plain-syntax"> = </span><span class="identifier-syntax">dimr</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax">)</span>
|
||||
|
@ -394,7 +394,7 @@ order of creation.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">dimensional_rules</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dimrs</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">dimensional_rule</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dimr</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_BASE_KINDS</span><span class="plain-syntax">(</span><span class="identifier-syntax">left_operand</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">dimrs</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_dim_rules</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">left_operand</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">dimrs</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP19" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_dim_rules</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">left_operand</span><span class="plain-syntax">),</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dimr</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">dimrs</span><span class="plain-syntax">)?(</span><span class="identifier-syntax">dimrs</span><span class="plain-syntax">-></span><span class="element-syntax">multiplications</span><span class="plain-syntax">):</span><span class="identifier-syntax">NULL</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wn</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">dimr</span><span class="plain-syntax">)?(</span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">dimr</span><span class="plain-syntax">-></span><span class="element-syntax">name</span><span class="plain-syntax">)):-1,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">right_operand</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">dimr</span><span class="plain-syntax">)?(</span><span class="identifier-syntax">dimr</span><span class="plain-syntax">-></span><span class="element-syntax">right</span><span class="plain-syntax">):0,</span>
|
||||
|
@ -418,9 +418,9 @@ particular way:
|
|||
<span class="plain-syntax"> </span><a href="1-km.html#SP5" class="function-link"><span class="function-syntax">KindsModule::problem_handler</span></a><span class="plain-syntax">(</span><span class="constant-syntax">DimensionNotBaseKOV_KINDERROR</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::is_quasinumerical</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">left</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) ||</span>
|
||||
<span class="plain-syntax"> (</span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::is_quasinumerical</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">right</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) ||</span>
|
||||
<span class="plain-syntax"> (</span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::is_quasinumerical</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">outcome</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::is_quasinumerical</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">left</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) ||</span>
|
||||
<span class="plain-syntax"> (</span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::is_quasinumerical</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">right</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) ||</span>
|
||||
<span class="plain-syntax"> (</span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::is_quasinumerical</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">outcome</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><a href="1-km.html#SP5" class="function-link"><span class="function-syntax">KindsModule::problem_handler</span></a><span class="plain-syntax">(</span><span class="constant-syntax">NonDimensional_KINDERROR</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -682,7 +682,7 @@ though subject to the same stipulations:
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">m</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">K</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">unit_sequence</span><span class="plain-syntax"> </span><span class="identifier-syntax">result</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">unit_sequence</span><span class="plain-syntax"> *</span><span class="identifier-syntax">operand</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_dimensional_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">unit_sequence</span><span class="plain-syntax"> *</span><span class="identifier-syntax">operand</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_dimensional_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-dmn.html#SP22" class="function-link"><span class="function-syntax">Kinds::Dimensions::root_unit_sequence</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">operand</span><span class="plain-syntax">, </span><span class="identifier-syntax">m</span><span class="plain-syntax">, &</span><span class="identifier-syntax">result</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-dmn.html#SP23_1" class="named-paragraph-link"><span class="named-paragraph">Identify the result as a known kind, if possible</span><span class="named-paragraph-number">23.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
@ -742,7 +742,7 @@ sequence also has a scale factor associated with it:
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::Dimensions::us_get_scaling_factor</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">Kinds::Dimensions::us_get_scaling_factor</span></span>:<br/>Using Kinds - <a href="2-uk.html#SP17">§17</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">unit_sequence</span><span class="plain-syntax"> *</span><span class="identifier-syntax">us</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::Dimensions::us_get_scaling_factor</span><button class="popup" onclick="togglePopup('usagePopup12')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup12">Usage of <span class="code-font"><span class="function-syntax">Kinds::Dimensions::us_get_scaling_factor</span></span>:<br/>Using Kinds - <a href="2-uk.html#SP18">§18</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">unit_sequence</span><span class="plain-syntax"> *</span><span class="identifier-syntax">us</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">us</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">us</span><span class="plain-syntax">-></span><span class="element-syntax">scaling_factor</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -842,7 +842,7 @@ units first.
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">i</span><span class="plain-syntax">; </span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">max</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">i</span><span class="plain-syntax">=0; </span><span class="identifier-syntax">i</span><span class="plain-syntax"><3; </span><span class="identifier-syntax">i</span><span class="plain-syntax">++)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="3-dmn.html#SP11" class="function-link"><span class="function-syntax">Kinds::Dimensions::kind_prior</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">max</span><span class="plain-syntax">, </span><span class="identifier-syntax">terms</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">])) && (</span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::test_if_derived</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">terms</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">]) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="3-dmn.html#SP11" class="function-link"><span class="function-syntax">Kinds::Dimensions::kind_prior</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">max</span><span class="plain-syntax">, </span><span class="identifier-syntax">terms</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">])) && (</span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::test_if_derived</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">terms</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">]) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">newest_term</span><span class="plain-syntax"> = </span><span class="identifier-syntax">i</span><span class="plain-syntax">; </span><span class="identifier-syntax">max</span><span class="plain-syntax"> = </span><span class="identifier-syntax">terms</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">];</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
|
@ -858,23 +858,23 @@ and we do that by fixing the newest unit to make it so.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">unit_sequence</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kx</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, *</span><span class="identifier-syntax">ky</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">sx</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">sy</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">switch</span><span class="plain-syntax"> (</span><span class="identifier-syntax">newest_term</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">: </span><span class="comment-syntax"> here L is newest and we derive L = O/R</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kx</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_dimensional_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">terms</span><span class="plain-syntax">[1]); </span><span class="identifier-syntax">sx</span><span class="plain-syntax"> = -1;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ky</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_dimensional_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">terms</span><span class="plain-syntax">[2]); </span><span class="identifier-syntax">sy</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kx</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_dimensional_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">terms</span><span class="plain-syntax">[1]); </span><span class="identifier-syntax">sx</span><span class="plain-syntax"> = -1;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ky</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_dimensional_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">terms</span><span class="plain-syntax">[2]); </span><span class="identifier-syntax">sy</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span><span class="plain-syntax">: </span><span class="comment-syntax"> here R is newest and we derive R = O/L</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kx</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_dimensional_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">terms</span><span class="plain-syntax">[0]); </span><span class="identifier-syntax">sx</span><span class="plain-syntax"> = -1;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ky</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_dimensional_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">terms</span><span class="plain-syntax">[2]); </span><span class="identifier-syntax">sy</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kx</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_dimensional_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">terms</span><span class="plain-syntax">[0]); </span><span class="identifier-syntax">sx</span><span class="plain-syntax"> = -1;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ky</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_dimensional_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">terms</span><span class="plain-syntax">[2]); </span><span class="identifier-syntax">sy</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">case</span><span class="plain-syntax"> </span><span class="constant-syntax">2</span><span class="plain-syntax">: </span><span class="comment-syntax"> here O is newest and we derive O = LR</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kx</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_dimensional_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">terms</span><span class="plain-syntax">[0]); </span><span class="identifier-syntax">sx</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ky</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_dimensional_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">terms</span><span class="plain-syntax">[1]); </span><span class="identifier-syntax">sy</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">kx</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_dimensional_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">terms</span><span class="plain-syntax">[0]); </span><span class="identifier-syntax">sx</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ky</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_dimensional_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">terms</span><span class="plain-syntax">[1]); </span><span class="identifier-syntax">sy</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">break</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">derivation</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_dimensional_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">terms</span><span class="plain-syntax">[</span><span class="identifier-syntax">newest_term</span><span class="plain-syntax">]);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">derivation</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_dimensional_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">terms</span><span class="plain-syntax">[</span><span class="identifier-syntax">newest_term</span><span class="plain-syntax">]);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">unit_sequence</span><span class="plain-syntax"> </span><span class="identifier-syntax">result</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="3-dmn.html#SP21" class="function-link"><span class="function-syntax">Kinds::Dimensions::multiply_unit_sequences</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kx</span><span class="plain-syntax">, </span><span class="identifier-syntax">sx</span><span class="plain-syntax">, </span><span class="identifier-syntax">ky</span><span class="plain-syntax">, </span><span class="identifier-syntax">sy</span><span class="plain-syntax">, &</span><span class="identifier-syntax">result</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> *</span><span class="identifier-syntax">derivation</span><span class="plain-syntax"> = </span><span class="identifier-syntax">result</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::now_derived</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">terms</span><span class="plain-syntax">[</span><span class="identifier-syntax">newest_term</span><span class="plain-syntax">]);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::now_derived</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">terms</span><span class="plain-syntax">[</span><span class="identifier-syntax">newest_term</span><span class="plain-syntax">]);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-dmn.html#SP28">§28</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP28_3" class="paragraph-anchor"></a><b>§28.3. </b>Later in Inform's run, when we start compiling code, many more unit sequences
|
||||
|
@ -889,8 +889,8 @@ are the derivations of the units. So it is easy to cover all of them.
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_BASE_KINDS</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::is_quasinumerical</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">unit_sequence</span><span class="plain-syntax"> *</span><span class="identifier-syntax">existing</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_dimensional_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::is_quasinumerical</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">unit_sequence</span><span class="plain-syntax"> *</span><span class="identifier-syntax">existing</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_dimensional_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-dmn.html#SP24" class="function-link"><span class="function-syntax">Kinds::Dimensions::dim_substitute</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">existing</span><span class="plain-syntax">, </span><span class="identifier-syntax">terms</span><span class="plain-syntax">[</span><span class="identifier-syntax">newest_term</span><span class="plain-syntax">], </span><span class="identifier-syntax">derivation</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
|
@ -911,10 +911,10 @@ the Kinds index page more helpful. But we must reject a contradiction.
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">unit_sequence</span><span class="plain-syntax"> </span><span class="identifier-syntax">product</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="3-dmn.html#SP21" class="function-link"><span class="function-syntax">Kinds::Dimensions::multiply_unit_sequences</span></a><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_dimensional_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">terms</span><span class="plain-syntax">[0]), </span><span class="constant-syntax">1</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_dimensional_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">terms</span><span class="plain-syntax">[1]), </span><span class="constant-syntax">1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">product</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_dimensional_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">terms</span><span class="plain-syntax">[0]), </span><span class="constant-syntax">1</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_dimensional_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">terms</span><span class="plain-syntax">[1]), </span><span class="constant-syntax">1</span><span class="plain-syntax">, &</span><span class="identifier-syntax">product</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-dmn.html#SP20" class="function-link"><span class="function-syntax">Kinds::Dimensions::compare_unit_sequences</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">product</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_dimensional_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">terms</span><span class="plain-syntax">[2])) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_dimensional_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">terms</span><span class="plain-syntax">[2])) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="1-km.html#SP5" class="function-link"><span class="function-syntax">KindsModule::problem_handler</span></a><span class="plain-syntax">(</span><span class="constant-syntax">DimensionsInconsistent_KINDERROR</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-dmn.html#SP28">§28</a>.</li></ul>
|
||||
|
@ -928,8 +928,8 @@ empty unit sequence must be dimensionless.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-knd.html#SP24" class="function-link"><span class="function-syntax">Kinds::eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_number</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-knd.html#SP24" class="function-link"><span class="function-syntax">Kinds::eq</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_real_number</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::is_quasinumerical</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-dmn.html#SP29" class="function-link"><span class="function-syntax">Kinds::Dimensions::us_dimensionless</span></a><span class="plain-syntax">(</span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_dimensional_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::is_quasinumerical</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="3-dmn.html#SP29" class="function-link"><span class="function-syntax">Kinds::Dimensions::us_dimensionless</span></a><span class="plain-syntax">(</span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_dimensional_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::Dimensions::us_dimensionless</span><button class="popup" onclick="togglePopup('usagePopup17')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup17">Usage of <span class="code-font"><span class="function-syntax">Kinds::Dimensions::us_dimensionless</span></span>:<br/><a href="3-dmn.html#SP31_3">§31.3</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">unit_sequence</span><span class="plain-syntax"> *</span><span class="identifier-syntax">us</span><span class="plain-syntax">) {</span>
|
||||
|
@ -939,8 +939,8 @@ empty unit sequence must be dimensionless.
|
|||
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::Dimensions::kind_is_derived</span><button class="popup" onclick="togglePopup('usagePopup18')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup18">Usage of <span class="code-font"><span class="function-syntax">Kinds::Dimensions::kind_is_derived</span></span>:<br/><a href="3-dmn.html#SP30">§30</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-knd.html#SP12" class="function-link"><span class="function-syntax">Kinds::is_intermediate</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::is_quasinumerical</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)) &&</span>
|
||||
<span class="plain-syntax"> (</span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::test_if_derived</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) == </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::is_quasinumerical</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">)) &&</span>
|
||||
<span class="plain-syntax"> (</span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::test_if_derived</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) == </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><a href="3-dmn.html#SP29" class="function-link"><span class="function-syntax">Kinds::Dimensions::dimensionless</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -959,12 +959,12 @@ empty unit sequence must be dimensionless.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_BASE_KINDS</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="3-dmn.html#SP29" class="function-link"><span class="function-syntax">Kinds::Dimensions::dimensionless</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><a href="3-dmn.html#SP29" class="function-link"><span class="function-syntax">Kinds::Dimensions::kind_is_derived</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) &&</span>
|
||||
<span class="plain-syntax"> (</span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::is_quasinumerical</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">)))</span>
|
||||
<span class="plain-syntax"> (</span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::is_quasinumerical</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">)))</span>
|
||||
<span class="plain-syntax"> { </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">c</span><span class="plain-syntax">++ > </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">", "</span><span class="plain-syntax">); </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"%u"</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">); }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"\nDerived units:\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_BASE_KINDS</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="3-dmn.html#SP29" class="function-link"><span class="function-syntax">Kinds::Dimensions::kind_is_derived</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">)) && (</span><a href="2-knd.html#SP12" class="function-link"><span class="function-syntax">Kinds::is_intermediate</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">unit_sequence</span><span class="plain-syntax"> *</span><span class="identifier-syntax">deriv</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_dimensional_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">unit_sequence</span><span class="plain-syntax"> *</span><span class="identifier-syntax">deriv</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_dimensional_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOG</span><span class="plain-syntax">(</span><span class="string-syntax">"%u = $Q\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="identifier-syntax">deriv</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -981,9 +981,9 @@ has no significance and should be <span class="extract"><span class="extract-syn
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">K1</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="3-dmn.html#SP16" class="function-link"><span class="function-syntax">Kinds::Dimensions::arithmetic_op_is_unary</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">op</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">K2</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">unit_sequence</span><span class="plain-syntax"> *</span><span class="identifier-syntax">operand1</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_dimensional_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">unit_sequence</span><span class="plain-syntax"> *</span><span class="identifier-syntax">operand1</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_dimensional_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">operand1</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">unit_sequence</span><span class="plain-syntax"> *</span><span class="identifier-syntax">operand2</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_dimensional_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">unit_sequence</span><span class="plain-syntax"> *</span><span class="identifier-syntax">operand2</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_dimensional_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="3-dmn.html#SP16" class="function-link"><span class="function-syntax">Kinds::Dimensions::arithmetic_op_is_unary</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">op</span><span class="plain-syntax">) == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">operand2</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">unit_sequence</span><span class="plain-syntax"> </span><span class="identifier-syntax">result</span><span class="plain-syntax">;</span>
|
||||
|
@ -1114,7 +1114,7 @@ which turns out to have a name: acceleration.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_BASE_KINDS</span><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="3-dmn.html#SP20" class="function-link"><span class="function-syntax">Kinds::Dimensions::compare_unit_sequences</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">result</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_dimensional_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">)))</span>
|
||||
<span class="plain-syntax"> </span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::get_dimensional_form</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">R</span><span class="plain-syntax">)))</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">R</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-dmn.html#SP23">§23</a>, <a href="3-dmn.html#SP31">§31</a>.</li></ul>
|
||||
|
@ -1149,7 +1149,7 @@ the physics but on the arithmetic method being used.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">result</span><span class="plain-syntax">.</span><span class="identifier-syntax">scaling_factor</span><span class="plain-syntax"> = </span><a href="3-dmn.html#SP18" class="function-link"><span class="function-syntax">Kinds::Dimensions::lcm</span></a><span class="plain-syntax">(</span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K1</span><span class="plain-syntax">), </span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K2</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">result</span><span class="plain-syntax">.</span><span class="identifier-syntax">scaling_factor</span><span class="plain-syntax"> = </span><a href="3-dmn.html#SP18" class="function-link"><span class="function-syntax">Kinds::Dimensions::lcm</span></a><span class="plain-syntax">(</span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K1</span><span class="plain-syntax">), </span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K2</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-knd.html#SP6_1" class="function-link"><span class="function-syntax">Kinds::intermediate_construction</span></a><span class="plain-syntax">(&</span><span class="identifier-syntax">result</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-dmn.html#SP31">§31</a>.</li></ul>
|
||||
|
|
|
@ -170,7 +170,7 @@ integer versions may have been scaled.
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax">#</span><span class="identifier-syntax">ifdef</span><span class="plain-syntax"> </span><span class="identifier-syntax">CORE_MODULE</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::FloatingPoint::begin_flotation_emit</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) != </span><span class="constant-syntax">1</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) != </span><span class="constant-syntax">1</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::call</span><span class="plain-syntax">(</span><span class="identifier-syntax">Hierarchy::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">REAL_NUMBER_TY_DIVIDE_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::down</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -180,10 +180,10 @@ integer versions may have been scaled.
|
|||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::FloatingPoint::end_flotation_emit</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::up</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) != </span><span class="constant-syntax">1</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) != </span><span class="constant-syntax">1</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::call</span><span class="plain-syntax">(</span><span class="identifier-syntax">Hierarchy::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">NUMBER_TY_TO_REAL_NUMBER_TY_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::down</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::val_number</span><span class="plain-syntax">((</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::val_number</span><span class="plain-syntax">((</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::up</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::up</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -192,17 +192,17 @@ integer versions may have been scaled.
|
|||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::FloatingPoint::begin_deflotation_emit</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::call</span><span class="plain-syntax">(</span><span class="identifier-syntax">Hierarchy::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">REAL_NUMBER_TY_TO_NUMBER_TY_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::down</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) != </span><span class="constant-syntax">1</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) != </span><span class="constant-syntax">1</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::call</span><span class="plain-syntax">(</span><span class="identifier-syntax">Hierarchy::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">REAL_NUMBER_TY_TIMES_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::down</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Kinds::FloatingPoint::end_deflotation_emit</span><span class="plain-syntax">(</span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) != </span><span class="constant-syntax">1</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">) != </span><span class="constant-syntax">1</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::call</span><span class="plain-syntax">(</span><span class="identifier-syntax">Hierarchy::find</span><span class="plain-syntax">(</span><span class="identifier-syntax">REAL_NUMBER_TY_TO_NUMBER_TY_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::down</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::val_number</span><span class="plain-syntax">((</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::val_number</span><span class="plain-syntax">((</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) </span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::up</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::up</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
|
|
@ -138,9 +138,9 @@ as minutes and degrees, for instance, where \(k=3600\) would be more natural.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">kindx</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">kindy</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kindo</span><span class="plain-syntax"> = </span><a href="3-dmn.html#SP31" class="function-link"><span class="function-syntax">Kinds::Dimensions::arithmetic_on_kinds</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kindx</span><span class="plain-syntax">, </span><span class="identifier-syntax">kindy</span><span class="plain-syntax">, </span><span class="constant-syntax">TIMES_OPERATION</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">kindo</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k_X</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kindx</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k_Y</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kindy</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k_O</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kindo</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k_X</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kindx</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k_Y</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kindy</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k_O</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kindo</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">k_X</span><span class="plain-syntax">*</span><span class="identifier-syntax">k_Y</span><span class="plain-syntax"> > </span><span class="identifier-syntax">k_O</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::inv</span><span class="plain-syntax">(</span><span class="identifier-syntax">DIVIDE_BIP</span><span class="plain-syntax">); </span><span class="identifier-syntax">EmitCode::down</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -153,9 +153,9 @@ as minutes and degrees, for instance, where \(k=3600\) would be more natural.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">kindx</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">kindy</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kindo</span><span class="plain-syntax"> = </span><a href="3-dmn.html#SP31" class="function-link"><span class="function-syntax">Kinds::Dimensions::arithmetic_on_kinds</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kindx</span><span class="plain-syntax">, </span><span class="identifier-syntax">kindy</span><span class="plain-syntax">, </span><span class="constant-syntax">TIMES_OPERATION</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">kindo</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k_X</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kindx</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k_Y</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kindy</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k_O</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kindo</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k_X</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kindx</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k_Y</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kindy</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k_O</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kindo</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">k_X</span><span class="plain-syntax">*</span><span class="identifier-syntax">k_Y</span><span class="plain-syntax"> > </span><span class="identifier-syntax">k_O</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::val_number</span><span class="plain-syntax">((</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) (</span><span class="identifier-syntax">k_X</span><span class="plain-syntax">*</span><span class="identifier-syntax">k_Y</span><span class="plain-syntax">/</span><span class="identifier-syntax">k_O</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::up</span><span class="plain-syntax">();</span>
|
||||
|
@ -178,9 +178,9 @@ so this time the excess to correct is a factor of \(k_X/k_Ok_Y\).
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">kindx</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">kindy</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kindo</span><span class="plain-syntax"> = </span><a href="3-dmn.html#SP31" class="function-link"><span class="function-syntax">Kinds::Dimensions::arithmetic_on_kinds</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kindx</span><span class="plain-syntax">, </span><span class="identifier-syntax">kindy</span><span class="plain-syntax">, </span><span class="constant-syntax">DIVIDE_OPERATION</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">kindo</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k_X</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kindx</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k_Y</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kindy</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k_O</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kindo</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k_X</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kindx</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k_Y</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kindy</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k_O</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kindo</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">k_O</span><span class="plain-syntax">*</span><span class="identifier-syntax">k_Y</span><span class="plain-syntax"> > </span><span class="identifier-syntax">k_X</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::inv</span><span class="plain-syntax">(</span><span class="identifier-syntax">TIMES_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::down</span><span class="plain-syntax">();</span>
|
||||
|
@ -195,9 +195,9 @@ so this time the excess to correct is a factor of \(k_X/k_Ok_Y\).
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">kindx</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">kindy</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kindo</span><span class="plain-syntax"> = </span><a href="3-dmn.html#SP31" class="function-link"><span class="function-syntax">Kinds::Dimensions::arithmetic_on_kinds</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kindx</span><span class="plain-syntax">, </span><span class="identifier-syntax">kindy</span><span class="plain-syntax">, </span><span class="constant-syntax">DIVIDE_OPERATION</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">kindo</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k_X</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kindx</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k_Y</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kindy</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k_O</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kindo</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k_X</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kindx</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k_Y</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kindy</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k_O</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kindo</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">k_O</span><span class="plain-syntax">*</span><span class="identifier-syntax">k_Y</span><span class="plain-syntax"> > </span><span class="identifier-syntax">k_X</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::val_number</span><span class="plain-syntax">((</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) (</span><span class="identifier-syntax">k_O</span><span class="plain-syntax">*</span><span class="identifier-syntax">k_Y</span><span class="plain-syntax">/</span><span class="identifier-syntax">k_X</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">EmitCode::up</span><span class="plain-syntax">();</span>
|
||||
|
@ -220,8 +220,8 @@ so this time the excess to correct is a factor of \(k_X/k_Ok_Y\).
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">power</span><span class="plain-syntax"> == </span><span class="constant-syntax">2</span><span class="plain-syntax">) </span><span class="identifier-syntax">kindo</span><span class="plain-syntax"> = </span><a href="3-dmn.html#SP31" class="function-link"><span class="function-syntax">Kinds::Dimensions::arithmetic_on_kinds</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kindx</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="constant-syntax">ROOT_OPERATION</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">power</span><span class="plain-syntax"> == </span><span class="constant-syntax">3</span><span class="plain-syntax">) </span><span class="identifier-syntax">kindo</span><span class="plain-syntax"> = </span><a href="3-dmn.html#SP31" class="function-link"><span class="function-syntax">Kinds::Dimensions::arithmetic_on_kinds</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kindx</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="constant-syntax">CUBEROOT_OPERATION</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">kindo</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k_X</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kindx</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k_O</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kindo</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k_X</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kindx</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k_O</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kindo</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">power</span><span class="plain-syntax"> == </span><span class="constant-syntax">2</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="3-sav.html#SP4_1" class="named-paragraph-link"><span class="named-paragraph">Emit a scaling correction for square roots</span><span class="named-paragraph-number">4.1</span></a></span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">power</span><span class="plain-syntax"> == </span><span class="constant-syntax">3</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="3-sav.html#SP4_2" class="named-paragraph-link"><span class="named-paragraph">Emit a scaling correction for cube roots</span><span class="named-paragraph-number">4.2</span></a></span>
|
||||
|
@ -278,8 +278,8 @@ the rooting function, we scale by \(k^3\):
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">power</span><span class="plain-syntax"> == </span><span class="constant-syntax">2</span><span class="plain-syntax">) </span><span class="identifier-syntax">kindo</span><span class="plain-syntax"> = </span><a href="3-dmn.html#SP31" class="function-link"><span class="function-syntax">Kinds::Dimensions::arithmetic_on_kinds</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kindx</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="constant-syntax">ROOT_OPERATION</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">power</span><span class="plain-syntax"> == </span><span class="constant-syntax">3</span><span class="plain-syntax">) </span><span class="identifier-syntax">kindo</span><span class="plain-syntax"> = </span><a href="3-dmn.html#SP31" class="function-link"><span class="function-syntax">Kinds::Dimensions::arithmetic_on_kinds</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kindx</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, </span><span class="constant-syntax">CUBEROOT_OPERATION</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">kindo</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k_X</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kindx</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k_O</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP17" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kindo</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k_X</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kindx</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">k_O</span><span class="plain-syntax"> = </span><a href="2-uk.html#SP18" class="function-link"><span class="function-syntax">Kinds::Behaviour::scale_factor</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kindo</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">power</span><span class="plain-syntax"> == </span><span class="constant-syntax">2</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="3-sav.html#SP5_1" class="named-paragraph-link"><span class="named-paragraph">Emit factor for a scaling correction for square roots</span><span class="named-paragraph-number">5.1</span></a></span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">power</span><span class="plain-syntax"> == </span><span class="constant-syntax">3</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="3-sav.html#SP5_2" class="named-paragraph-link"><span class="named-paragraph">Emit factor for a scaling correction for cube roots</span><span class="named-paragraph-number">5.2</span></a></span>
|
||||
|
|
|
@ -115,6 +115,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">SET_BOOLEAN_FIELD</span><span class="plain-syntax">(</span><span class="identifier-syntax">indexed_grey_if_empty</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SET_BOOLEAN_FIELD</span><span class="plain-syntax">(</span><span class="identifier-syntax">is_incompletely_defined</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SET_BOOLEAN_FIELD</span><span class="plain-syntax">(</span><span class="identifier-syntax">multiple_block</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SET_BOOLEAN_FIELD</span><span class="plain-syntax">(</span><span class="identifier-syntax">forbid_assertion_creation</span><span class="plain-syntax">)</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SET_INTEGER_FIELD</span><span class="plain-syntax">(</span><span class="identifier-syntax">heap_size_estimate</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SET_INTEGER_FIELD</span><span class="plain-syntax">(</span><span class="identifier-syntax">index_priority</span><span class="plain-syntax">)</span>
|
||||
|
|
|
@ -106,6 +106,7 @@ set by commands in Neptune files, others set by calls from Inform.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">named_values_created_with_table</span><span class="plain-syntax">; </span><span class="comment-syntax"> alternatively...</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">next_free_value</span><span class="plain-syntax">; </span><span class="comment-syntax"> to make distinguishable instances of this kind</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">constant_compilation_method</span><span class="plain-syntax">; </span><span class="comment-syntax"> one of the </span><span class="extract"><span class="extract-syntax">*_CCM</span></span><span class="comment-syntax"> values</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">forbid_assertion_creation</span><span class="plain-syntax">; </span><span class="comment-syntax"> an enumeration which cannot be explicitly created?</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="comment-syntax"> E: knowledge about values of this kind</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">base_as_infs</span><span class="plain-syntax">; </span><span class="comment-syntax"> inferences about properties</span>
|
||||
|
@ -302,6 +303,7 @@ we apply any defaults set in Neptune files.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">con</span><span class="plain-syntax">-></span><span class="element-syntax">named_values_created_with_table</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">con</span><span class="plain-syntax">-></span><span class="element-syntax">next_free_value</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">con</span><span class="plain-syntax">-></span><span class="element-syntax">constant_compilation_method</span><span class="plain-syntax"> = </span><span class="constant-syntax">NONE_CCM</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">con</span><span class="plain-syntax">-></span><span class="element-syntax">forbid_assertion_creation</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="comment-syntax"> E: knowledge about values of this kind</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">con</span><span class="plain-syntax">-></span><span class="element-syntax">base_as_infs</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">; </span><span class="comment-syntax"> but will be filled in imminently, in almost all cases</span>
|
||||
|
@ -536,7 +538,7 @@ ought to ask questions about kinds instead (see "Using Kinds"). However:
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::is_arithmetic</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">KindConstructors::is_arithmetic</span></span>:<br/><a href="4-kc2.html#SP12">§12</a><br/>Using Kinds - <a href="2-uk.html#SP17">§17</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::is_arithmetic</span><button class="popup" onclick="togglePopup('usagePopup15')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup15">Usage of <span class="code-font"><span class="function-syntax">KindConstructors::is_arithmetic</span></span>:<br/><a href="4-kc2.html#SP12">§12</a><br/>Using Kinds - <a href="2-uk.html#SP18">§18</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">con</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::is_definite</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">)) &&</span>
|
||||
<span class="plain-syntax"> (</span><a href="4-kc2.html#SP20" class="function-link"><span class="function-syntax">KindConstructors::compatible</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">,</span>
|
||||
|
@ -565,13 +567,13 @@ ought to ask questions about kinds instead (see "Using Kinds"). However:
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::uses_signed_comparisons</span><button class="popup" onclick="togglePopup('usagePopup18')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup18">Usage of <span class="code-font"><span class="function-syntax">KindConstructors::uses_signed_comparisons</span></span>:<br/>Using Kinds - <a href="2-uk.html#SP16">§16</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kc</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::uses_signed_comparisons</span><button class="popup" onclick="togglePopup('usagePopup18')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup18">Usage of <span class="code-font"><span class="function-syntax">KindConstructors::uses_signed_comparisons</span></span>:<br/>Using Kinds - <a href="2-uk.html#SP17">§17</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kc</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">kc</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">kc</span><span class="plain-syntax">-></span><span class="element-syntax">comparison_routine</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"signed"</span><span class="plain-syntax">)) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="function-syntax">KindConstructors::get_comparison_fn_identifier</span><button class="popup" onclick="togglePopup('usagePopup19')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup19">Usage of <span class="code-font"><span class="function-syntax">KindConstructors::get_comparison_fn_identifier</span></span>:<br/>Using Kinds - <a href="2-uk.html#SP16">§16</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kc</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="function-syntax">KindConstructors::get_comparison_fn_identifier</span><button class="popup" onclick="togglePopup('usagePopup19')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup19">Usage of <span class="code-font"><span class="function-syntax">KindConstructors::get_comparison_fn_identifier</span></span>:<br/>Using Kinds - <a href="2-uk.html#SP17">§17</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">kc</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">kc</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::is_arithmetic_and_real</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">kc</span><span class="plain-syntax">)) && (</span><span class="identifier-syntax">K_real_number</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">K_real_number</span><span class="plain-syntax">-></span><span class="element-syntax">construct</span><span class="plain-syntax">-></span><span class="element-syntax">comparison_routine</span><span class="plain-syntax">;</span>
|
||||
|
@ -636,7 +638,7 @@ group or <span class="extract"><span class="extract-syntax">PROPER_CONSTRUCTOR_G
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::uses_block_values</span><button class="popup" onclick="togglePopup('usagePopup23')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup23">Usage of <span class="code-font"><span class="function-syntax">KindConstructors::uses_block_values</span></span>:<br/>Using Kinds - <a href="2-uk.html#SP20">§20</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">KindConstructors::uses_block_values</span><button class="popup" onclick="togglePopup('usagePopup23')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup23">Usage of <span class="code-font"><span class="function-syntax">KindConstructors::uses_block_values</span></span>:<br/>Using Kinds - <a href="2-uk.html#SP21">§21</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">kind_constructor</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">con</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><a href="4-kc2.html#SP16" class="function-link"><span class="function-syntax">KindConstructors::is_definite</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">)) &&</span>
|
||||
<span class="plain-syntax"> (</span><a href="4-kc2.html#SP20" class="function-link"><span class="function-syntax">KindConstructors::compatible</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con</span><span class="plain-syntax">, </span><a href="2-knd.html#SP11" class="function-link"><span class="function-syntax">Kinds::get_construct</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_pointer_value</span><span class="plain-syntax">), </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">)))</span>
|
||||
|
|
|
@ -100,6 +100,7 @@ function togglePopup(material_id) {
|
|||
<span class="definition-keyword">enum</span> <span class="constant-syntax">distinguishing_routine_KCC</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">documentation_reference_KCC</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">explicit_GPR_identifier_KCC</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">forbid_assertion_creation_KCC</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">heap_size_estimate_KCC</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">printing_routine_for_debugging_KCC</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">printing_routine_KCC</span>
|
||||
|
@ -127,6 +128,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> { </span><span class="string-syntax">"indexed-grey-if-empty"</span><span class="plain-syntax">, </span><span class="constant-syntax">indexed_grey_if_empty_KCC</span><span class="plain-syntax">, </span><span class="constant-syntax">BOOLEAN_KCA</span><span class="plain-syntax"> },</span>
|
||||
<span class="plain-syntax"> { </span><span class="string-syntax">"is-incompletely-defined"</span><span class="plain-syntax">, </span><span class="constant-syntax">is_incompletely_defined_KCC</span><span class="plain-syntax">, </span><span class="constant-syntax">BOOLEAN_KCA</span><span class="plain-syntax"> },</span>
|
||||
<span class="plain-syntax"> { </span><span class="string-syntax">"multiple-block"</span><span class="plain-syntax">, </span><span class="constant-syntax">multiple_block_KCC</span><span class="plain-syntax">, </span><span class="constant-syntax">BOOLEAN_KCA</span><span class="plain-syntax"> },</span>
|
||||
<span class="plain-syntax"> { </span><span class="string-syntax">"forbid-assertion-creation"</span><span class="plain-syntax">, </span><span class="constant-syntax">forbid_assertion_creation_KCC</span><span class="plain-syntax">, </span><span class="constant-syntax">BOOLEAN_KCA</span><span class="plain-syntax"> },</span>
|
||||
|
||||
<span class="plain-syntax"> { </span><span class="string-syntax">"constant-compilation-method"</span><span class="plain-syntax">, </span><span class="constant-syntax">constant_compilation_method_KCC</span><span class="plain-syntax">, </span><span class="constant-syntax">CCM_KCA</span><span class="plain-syntax"> },</span>
|
||||
|
||||
|
|
|
@ -108,7 +108,7 @@ would be
|
|||
|
||||
<ul class="items"><li>● <span class="extract"><span class="extract-syntax">DETERMINE_SCALE_FACTOR_KINDS_CALLBACK</span></span>, if provided, is called to give
|
||||
the "scale factor" for a kind. See <a href="../values-module/3-lp.html" class="internal">Literal Patterns (in values)</a> for the
|
||||
use of this; here, it appears in <a href="2-uk.html#SP17" class="internal">Kinds::Behaviour::scale_factor</a>.
|
||||
use of this; here, it appears in <a href="2-uk.html#SP18" class="internal">Kinds::Behaviour::scale_factor</a>.
|
||||
</li><li>● <span class="extract"><span class="extract-syntax">HIERARCHY_GET_SUPER_KINDS_CALLBACK</span></span> is called to ask what the superkind
|
||||
of a kind is. See <a href="2-tlok.html#SP6" class="internal">Latticework::super</a>.
|
||||
</li><li>● <span class="extract"><span class="extract-syntax">HIERARCHY_ALLOWS_SOMETIMES_MATCH_KINDS_CALLBACK</span></span> is called to ask if q
|
||||
|
|
|
@ -181,9 +181,9 @@ than the number with correct ones
|
|||
number of successes.
|
||||
</li></ul>
|
||||
<pre class="undisplayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax">Size of lexicon: 3116 excerpt meanings</span>
|
||||
<span class="plain-syntax"> Stored among 843 words out of total vocabulary of 10598</span>
|
||||
<span class="plain-syntax"> 713 words have a start list: longest belongs to report (with 293 meanings)</span>
|
||||
<span class="plain-syntax">Size of lexicon: 3117 excerpt meanings</span>
|
||||
<span class="plain-syntax"> Stored among 844 words out of total vocabulary of 10640</span>
|
||||
<span class="plain-syntax"> 714 words have a start list: longest belongs to report (with 293 meanings)</span>
|
||||
<span class="plain-syntax"> 15 words have an end list: longest belongs to case (with 6 meanings)</span>
|
||||
<span class="plain-syntax"> 29 words have a middle list: longest belongs to to (with 4 meanings)</span>
|
||||
<span class="plain-syntax"> 108 words have a subset list: longest belongs to street (with 4 meanings)</span>
|
||||
|
|
|
@ -293,13 +293,13 @@ Within each category, items are listed in order of creation.
|
|||
<pre class="undisplayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax">adjective: 137 items</span>
|
||||
<span class="plain-syntax">article: 2 items</span>
|
||||
<span class="plain-syntax">noun: 2386 items</span>
|
||||
<span class="plain-syntax">noun: 2387 items</span>
|
||||
<span class="plain-syntax">pronoun: 8 items</span>
|
||||
<span class="plain-syntax">preposition: 273 items</span>
|
||||
<span class="plain-syntax">preposition: 274 items</span>
|
||||
<span class="plain-syntax">determiner: 22 items</span>
|
||||
<span class="plain-syntax">verb: 108 items</span>
|
||||
<span class="plain-syntax">verb_form: 386 items</span>
|
||||
<span class="plain-syntax">total in all categories: 3322</span>
|
||||
<span class="plain-syntax">verb: 109 items</span>
|
||||
<span class="plain-syntax">verb_form: 388 items</span>
|
||||
<span class="plain-syntax">total in all categories: 3327</span>
|
||||
|
||||
<span class="plain-syntax">adjective: 'even'</span>
|
||||
<span class="plain-syntax">adjective: 'odd'</span>
|
||||
|
@ -491,6 +491,7 @@ Within each category, items are listed in order of creation.
|
|||
<span class="plain-syntax">noun: proper: 'possession relation'</span>
|
||||
<span class="plain-syntax">noun: proper: 'room-containment relation'</span>
|
||||
<span class="plain-syntax">noun: proper: 'visibility relation'</span>
|
||||
<span class="plain-syntax">noun: proper: 'audibility relation'</span>
|
||||
<span class="plain-syntax">noun: proper: 'touchability relation'</span>
|
||||
<span class="plain-syntax">noun: proper: 'concealment relation'</span>
|
||||
<span class="plain-syntax">noun: proper: 'enclosure relation'</span>
|
||||
|
@ -2935,6 +2936,7 @@ Within each category, items are listed in order of creation.
|
|||
<span class="plain-syntax">preposition: worn by</span>
|
||||
<span class="plain-syntax">preposition: wearing</span>
|
||||
<span class="plain-syntax">preposition: being able to see</span>
|
||||
<span class="plain-syntax">preposition: being able to hear</span>
|
||||
<span class="plain-syntax">preposition: being able to touch</span>
|
||||
<span class="plain-syntax">preposition: concealed by</span>
|
||||
<span class="plain-syntax">preposition: concealing</span>
|
||||
|
@ -3187,62 +3189,63 @@ Within each category, items are listed in order of creation.
|
|||
<span class="plain-syntax">verb: hold(49)</span>
|
||||
<span class="plain-syntax">verb: wear(50)</span>
|
||||
<span class="plain-syntax">verb: be able to see(51)</span>
|
||||
<span class="plain-syntax">verb: be able to touch(52)</span>
|
||||
<span class="plain-syntax">verb: conceal(53)</span>
|
||||
<span class="plain-syntax">verb: unlock(54)</span>
|
||||
<span class="plain-syntax">verb: achieve(55)</span>
|
||||
<span class="plain-syntax">verb: appreciate(56)</span>
|
||||
<span class="plain-syntax">verb: arrive(57)</span>
|
||||
<span class="plain-syntax">verb: care(58)</span>
|
||||
<span class="plain-syntax">verb: close(59)</span>
|
||||
<span class="plain-syntax">verb: die(60)</span>
|
||||
<span class="plain-syntax">verb: discover(61)</span>
|
||||
<span class="plain-syntax">verb: drop(62)</span>
|
||||
<span class="plain-syntax">verb: eat(63)</span>
|
||||
<span class="plain-syntax">verb: feel(64)</span>
|
||||
<span class="plain-syntax">verb: find(65)</span>
|
||||
<span class="plain-syntax">verb: get(66)</span>
|
||||
<span class="plain-syntax">verb: give(67)</span>
|
||||
<span class="plain-syntax">verb: go(68)</span>
|
||||
<span class="plain-syntax">verb: happen(69)</span>
|
||||
<span class="plain-syntax">verb: hear(70)</span>
|
||||
<span class="plain-syntax">verb: jump(71)</span>
|
||||
<span class="plain-syntax">verb: lack(72)</span>
|
||||
<span class="plain-syntax">verb: lead(73)</span>
|
||||
<span class="plain-syntax">verb: like(74)</span>
|
||||
<span class="plain-syntax">verb: listen(75)</span>
|
||||
<span class="plain-syntax">verb: lock(76)</span>
|
||||
<span class="plain-syntax">verb: look(77)</span>
|
||||
<span class="plain-syntax">verb: need(78)</span>
|
||||
<span class="plain-syntax">verb: open(79)</span>
|
||||
<span class="plain-syntax">verb: pass(80)</span>
|
||||
<span class="plain-syntax">verb: pick(81)</span>
|
||||
<span class="plain-syntax">verb: provoke(82)</span>
|
||||
<span class="plain-syntax">verb: pull(83)</span>
|
||||
<span class="plain-syntax">verb: push(84)</span>
|
||||
<span class="plain-syntax">verb: put(85)</span>
|
||||
<span class="plain-syntax">verb: rub(86)</span>
|
||||
<span class="plain-syntax">verb: say(87)</span>
|
||||
<span class="plain-syntax">verb: search(88)</span>
|
||||
<span class="plain-syntax">verb: see(89)</span>
|
||||
<span class="plain-syntax">verb: seem(90)</span>
|
||||
<span class="plain-syntax">verb: set(91)</span>
|
||||
<span class="plain-syntax">verb: smell(92)</span>
|
||||
<span class="plain-syntax">verb: sniff(93)</span>
|
||||
<span class="plain-syntax">verb: squeeze(94)</span>
|
||||
<span class="plain-syntax">verb: switch(95)</span>
|
||||
<span class="plain-syntax">verb: take(96)</span>
|
||||
<span class="plain-syntax">verb: talk(97)</span>
|
||||
<span class="plain-syntax">verb: taste(98)</span>
|
||||
<span class="plain-syntax">verb: touch(99)</span>
|
||||
<span class="plain-syntax">verb: turn(100)</span>
|
||||
<span class="plain-syntax">verb: wait(101)</span>
|
||||
<span class="plain-syntax">verb: wave(102)</span>
|
||||
<span class="plain-syntax">verb: win(103)</span>
|
||||
<span class="plain-syntax">verb: protect(104)</span>
|
||||
<span class="plain-syntax">verb: own(105)</span>
|
||||
<span class="plain-syntax">verb: fit(106)</span>
|
||||
<span class="plain-syntax">verb: unbolt(107)</span>
|
||||
<span class="plain-syntax">verb: be able to hear(52)</span>
|
||||
<span class="plain-syntax">verb: be able to touch(53)</span>
|
||||
<span class="plain-syntax">verb: conceal(54)</span>
|
||||
<span class="plain-syntax">verb: unlock(55)</span>
|
||||
<span class="plain-syntax">verb: achieve(56)</span>
|
||||
<span class="plain-syntax">verb: appreciate(57)</span>
|
||||
<span class="plain-syntax">verb: arrive(58)</span>
|
||||
<span class="plain-syntax">verb: care(59)</span>
|
||||
<span class="plain-syntax">verb: close(60)</span>
|
||||
<span class="plain-syntax">verb: die(61)</span>
|
||||
<span class="plain-syntax">verb: discover(62)</span>
|
||||
<span class="plain-syntax">verb: drop(63)</span>
|
||||
<span class="plain-syntax">verb: eat(64)</span>
|
||||
<span class="plain-syntax">verb: feel(65)</span>
|
||||
<span class="plain-syntax">verb: find(66)</span>
|
||||
<span class="plain-syntax">verb: get(67)</span>
|
||||
<span class="plain-syntax">verb: give(68)</span>
|
||||
<span class="plain-syntax">verb: go(69)</span>
|
||||
<span class="plain-syntax">verb: happen(70)</span>
|
||||
<span class="plain-syntax">verb: hear(71)</span>
|
||||
<span class="plain-syntax">verb: jump(72)</span>
|
||||
<span class="plain-syntax">verb: lack(73)</span>
|
||||
<span class="plain-syntax">verb: lead(74)</span>
|
||||
<span class="plain-syntax">verb: like(75)</span>
|
||||
<span class="plain-syntax">verb: listen(76)</span>
|
||||
<span class="plain-syntax">verb: lock(77)</span>
|
||||
<span class="plain-syntax">verb: look(78)</span>
|
||||
<span class="plain-syntax">verb: need(79)</span>
|
||||
<span class="plain-syntax">verb: open(80)</span>
|
||||
<span class="plain-syntax">verb: pass(81)</span>
|
||||
<span class="plain-syntax">verb: pick(82)</span>
|
||||
<span class="plain-syntax">verb: provoke(83)</span>
|
||||
<span class="plain-syntax">verb: pull(84)</span>
|
||||
<span class="plain-syntax">verb: push(85)</span>
|
||||
<span class="plain-syntax">verb: put(86)</span>
|
||||
<span class="plain-syntax">verb: rub(87)</span>
|
||||
<span class="plain-syntax">verb: say(88)</span>
|
||||
<span class="plain-syntax">verb: search(89)</span>
|
||||
<span class="plain-syntax">verb: see(90)</span>
|
||||
<span class="plain-syntax">verb: seem(91)</span>
|
||||
<span class="plain-syntax">verb: set(92)</span>
|
||||
<span class="plain-syntax">verb: smell(93)</span>
|
||||
<span class="plain-syntax">verb: sniff(94)</span>
|
||||
<span class="plain-syntax">verb: squeeze(95)</span>
|
||||
<span class="plain-syntax">verb: switch(96)</span>
|
||||
<span class="plain-syntax">verb: take(97)</span>
|
||||
<span class="plain-syntax">verb: talk(98)</span>
|
||||
<span class="plain-syntax">verb: taste(99)</span>
|
||||
<span class="plain-syntax">verb: touch(100)</span>
|
||||
<span class="plain-syntax">verb: turn(101)</span>
|
||||
<span class="plain-syntax">verb: wait(102)</span>
|
||||
<span class="plain-syntax">verb: wave(103)</span>
|
||||
<span class="plain-syntax">verb: win(104)</span>
|
||||
<span class="plain-syntax">verb: protect(105)</span>
|
||||
<span class="plain-syntax">verb: own(106)</span>
|
||||
<span class="plain-syntax">verb: fit(107)</span>
|
||||
<span class="plain-syntax">verb: unbolt(108)</span>
|
||||
|
||||
<span class="plain-syntax">verb_form: be(0) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: mean(1) + ___ + ___ SVO</span>
|
||||
|
@ -3398,9 +3401,11 @@ Within each category, items are listed in order of creation.
|
|||
<span class="plain-syntax">verb_form: be(0) + wearing + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be able to see(51) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + being able to see + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be able to touch(52) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be able to hear(52) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + being able to hear + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be able to touch(53) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + being able to touch + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: conceal(53) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: conceal(54) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + concealed by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + concealing + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + adjacent to + ___ SVO</span>
|
||||
|
@ -3446,166 +3451,166 @@ Within each category, items are listed in order of creation.
|
|||
<span class="plain-syntax">verb_form: be(0) + below + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + mapped below + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + through + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: unlock(54) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: unlock(55) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + unlocked by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + unlocking + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: achieve(55) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: achieve(56) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + achieved by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + achieving + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: appreciate(56) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: appreciate(57) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + appreciated by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + appreciating + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: arrive(57) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: arrive(58) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + arrived by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + arriving + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: care(58) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: care(59) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + cared by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + caring + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: close(59) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: close(60) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + closed by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + closing + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: die(60) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: die(61) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + died by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + dying + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: discover(61) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: discover(62) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + discovered by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + discovering + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: drop(62) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: drop(63) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + dropped by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + dropping + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: eat(63) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: eat(64) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + eaten by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + eating + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: feel(64) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: feel(65) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + felt by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + feeling + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: find(65) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: find(66) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + found by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + finding + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: get(66) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: get(67) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + got by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + getting + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: give(67) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: give(68) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + given by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + giving + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: go(68) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: go(69) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + gone by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + going + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: happen(69) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: happen(70) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + happened by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + happening + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: hear(70) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: hear(71) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + heard by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + hearing + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: jump(71) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: jump(72) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + jumped by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + jumping + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: lack(72) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: lack(73) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + lacked by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + lacking + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: lead(73) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: lead(74) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + led by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + leading + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: like(74) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: like(75) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + liked by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + liking + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: listen(75) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: listen(76) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + listened by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + listening + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: lock(76) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: lock(77) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + locked by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + locking + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: look(77) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: look(78) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + looked by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + looking + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: need(78) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: need(79) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + needed by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + needing + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: open(79) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: open(80) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + opened by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + opening + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: pass(80) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: pass(81) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + passed by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + passing + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: pick(81) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: pick(82) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + picked by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + picking + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: provoke(82) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: provoke(83) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + provoked by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + provoking + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: pull(83) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: pull(84) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + pulled by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + pulling + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: push(84) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: push(85) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + pushed by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + pushing + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: put(85) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: put(86) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + put by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + putting + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: rub(86) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: rub(87) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + rubbed by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + rubbing + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: say(87) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: say(88) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + said by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + saying + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: search(88) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: search(89) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + searched by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + searching + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: see(89) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: see(90) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + seen by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + seeing + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: seem(90) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: seem(91) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + seemed by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + seeming + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: set(91) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: set(92) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + set by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + setting + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: smell(92) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: smell(93) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + smelled by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + smelling + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: sniff(93) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: sniff(94) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + sniffed by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + sniffing + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: squeeze(94) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: squeeze(95) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + squeezed by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + squeezing + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: switch(95) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: switch(96) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + switched by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + switching + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: take(96) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: take(97) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + taken by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + taking + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: talk(97) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: talk(98) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + talked by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + talking + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: taste(98) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: taste(99) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + tasted by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + tasting + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: touch(99) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: touch(100) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + touched by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + touching + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: turn(100) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: turn(101) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + turned by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + turning + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: wait(101) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: wait(102) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + waited by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + waiting + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: wave(102) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: wave(103) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + waved by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + waving + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: win(103) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: win(104) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + won by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + winning + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: protect(104) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: protect(105) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + protected by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + protecting + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: own(105) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: own(106) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + owned by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + owning + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: fit(106) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: fit(107) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + fitted by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + fitting + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: unbolt(107) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: unbolt(108) + ___ + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + unbolted by + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + unbolting + ___ SVO</span>
|
||||
<span class="plain-syntax">verb_form: be(0) + the same variable initial value as + ___ SVO</span>
|
||||
|
|
|
@ -640,6 +640,8 @@ comprehensive list of what is there.)
|
|||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">enum</span> <span class="constant-syntax">DIRECTOR_ADD_LIVE_SUBJECT_LIST_HL</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">DIRECTOR_AFTER_ACTION_HL</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">DIRECTOR_BEAT_BEING_PERFORMED_HL</span>
|
||||
<span class="definition-keyword">enum</span> <span class="constant-syntax">DIRECTOR_PERFORM_TIED_BEAT_HL</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP1_1_12" class="paragraph-anchor"></a><b>§1.1.12. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Establish resources offered by DialogueKit</span><span class="named-paragraph-number">1.1.12</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
@ -647,6 +649,8 @@ comprehensive list of what is there.)
|
|||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">DIRECTOR_ADD_LIVE_SUBJECT_LIST_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"DirectorAddLiveSubjectList"</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">DIRECTOR_AFTER_ACTION_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"DirectorAfterAction"</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">DIRECTOR_BEAT_BEING_PERFORMED_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"DirectorBeatBeingPerformed"</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">KIT_PROVIDED</span><span class="plain-syntax">(</span><span class="constant-syntax">DIRECTOR_PERFORM_TIED_BEAT_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"DirectorPerformTiedBeat"</span><span class="plain-syntax">)</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="4-tsk.html#SP1_1">§1.1</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
|
|
|
@ -79,7 +79,7 @@ enforced; it's fine to store arbitrary data with <span class="extract"><span cla
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::begin_word</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">EmitArrays::begin_word</span></span>:<br/>List Literals - <a href="4-ll.html#SP1">§1</a><br/>Box Quotations - <a href="4-bq.html#SP2">§2</a><br/>Instances - <a href="5-ins.html#SP4">§4</a><br/>Multimedia - <a href="5-mlt.html#SP2_2">§2.2</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2">§2</a>, <a href="5-dbi.html#SP2_7">§2.7</a><br/>Dialogue - <a href="5-dli.html#SP3">§3</a><br/>Dialogue Choice Instances - <a href="5-dci.html#SP3">§3</a><br/>Relations - <a href="5-rlt.html#SP10">§10</a><br/>Kind IDs - <a href="5-ki.html#SP9_1">§9.1</a><br/>Test Scripts - <a href="5-ts.html#SP4">§4</a><br/>The Player - <a href="6-tp.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::begin_word</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">EmitArrays::begin_word</span></span>:<br/>List Literals - <a href="4-ll.html#SP1">§1</a><br/>Box Quotations - <a href="4-bq.html#SP2">§2</a><br/>Instances - <a href="5-ins.html#SP4">§4</a><br/>Multimedia - <a href="5-mlt.html#SP2_2">§2.2</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2">§2</a>, <a href="5-dbi.html#SP2_8">§2.8</a><br/>Dialogue - <a href="5-dli.html#SP3">§3</a><br/>Dialogue Choice Instances - <a href="5-dci.html#SP3">§3</a><br/>Relations - <a href="5-rlt.html#SP10">§10</a><br/>Kind IDs - <a href="5-ki.html#SP9_1">§9.1</a><br/>Test Scripts - <a href="5-ts.html#SP4">§4</a><br/>The Player - <a href="6-tp.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="identifier-syntax">K</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Packaging::enter_home_of</span><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP8" class="function-link"><span class="function-syntax">EmitArrays::begin_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">name</span><span class="plain-syntax">, </span><span class="identifier-syntax">K</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">CONST_LIST_FORMAT_WORDS</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax">;</span>
|
||||
|
@ -151,11 +151,11 @@ which would be a typesafe list in I7, so they can be absolutely any data.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::numeric_entry</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">EmitArrays::numeric_entry</span></span>:<br/>The Heap - <a href="2-th.html#SP6">§6</a><br/>List Literals - <a href="4-ll.html#SP1">§1</a>, <a href="4-ll.html#SP2">§2</a>, <a href="4-ll.html#SP7_1">§7.1</a><br/>Box Quotations - <a href="4-bq.html#SP2">§2</a><br/>Relation Literals - <a href="4-rl.html#SP1">§1</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">§1</a><br/>Instances - <a href="5-ins.html#SP4">§4</a><br/>Multimedia - <a href="5-mlt.html#SP2_1">§2.1</a>, <a href="5-mlt.html#SP2_2">§2.2</a><br/>Tables - <a href="5-tbl.html#SP2_1_1_1_4">§2.1.1.1.4</a>, <a href="5-tbl.html#SP2_2_3">§2.2.3</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2_1">§2.1</a>, <a href="5-dbi.html#SP2_2">§2.2</a>, <a href="5-dbi.html#SP2_4">§2.4</a>, <a href="5-dbi.html#SP2_7">§2.7</a>, <a href="5-dbi.html#SP3">§3</a><br/>Dialogue - <a href="5-dli.html#SP3_2">§3.2</a>, <a href="5-dli.html#SP3_3">§3.3</a>, <a href="5-dli.html#SP3_4">§3.4</a>, <a href="5-dli.html#SP3_7">§3.7</a>, <a href="5-dli.html#SP3_8">§3.8</a><br/>Dialogue Choice Instances - <a href="5-dci.html#SP3_2">§3.2</a>, <a href="5-dci.html#SP3_3">§3.3</a>, <a href="5-dci.html#SP3_4">§3.4</a><br/>Relations - <a href="5-rlt.html#SP6_3">§6.3</a>, <a href="5-rlt.html#SP6_3_3">§6.3.3</a>, <a href="5-rlt.html#SP7">§7</a>, <a href="5-rlt.html#SP9">§9</a>, <a href="5-rlt.html#SP10_2">§10.2</a>, <a href="5-rlt.html#SP10_3">§10.3</a><br/>Kind IDs - <a href="5-ki.html#SP9_1_1_1">§9.1.1.1</a>, <a href="5-ki.html#SP9_1_1_2">§9.1.1.2</a><br/>Test Scripts - <a href="5-ts.html#SP4">§4</a><br/>The Player - <a href="6-tp.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP1">§1</a><br/>Action Bitmap Property - <a href="6-abp.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::numeric_entry</span><button class="popup" onclick="togglePopup('usagePopup10')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup10">Usage of <span class="code-font"><span class="function-syntax">EmitArrays::numeric_entry</span></span>:<br/>The Heap - <a href="2-th.html#SP6">§6</a><br/>List Literals - <a href="4-ll.html#SP1">§1</a>, <a href="4-ll.html#SP2">§2</a>, <a href="4-ll.html#SP7_1">§7.1</a><br/>Box Quotations - <a href="4-bq.html#SP2">§2</a><br/>Relation Literals - <a href="4-rl.html#SP1">§1</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">§1</a><br/>Instances - <a href="5-ins.html#SP4">§4</a><br/>Multimedia - <a href="5-mlt.html#SP2_1">§2.1</a>, <a href="5-mlt.html#SP2_2">§2.2</a><br/>Tables - <a href="5-tbl.html#SP2_1_1_1_4">§2.1.1.1.4</a>, <a href="5-tbl.html#SP2_2_3">§2.2.3</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2">§2</a>, <a href="5-dbi.html#SP2_1">§2.1</a>, <a href="5-dbi.html#SP2_2">§2.2</a>, <a href="5-dbi.html#SP2_4">§2.4</a>, <a href="5-dbi.html#SP2_5">§2.5</a>, <a href="5-dbi.html#SP2_8">§2.8</a>, <a href="5-dbi.html#SP3">§3</a><br/>Dialogue - <a href="5-dli.html#SP3_2">§3.2</a>, <a href="5-dli.html#SP3_3">§3.3</a>, <a href="5-dli.html#SP3_4">§3.4</a>, <a href="5-dli.html#SP3_7">§3.7</a>, <a href="5-dli.html#SP3_8">§3.8</a><br/>Dialogue Choice Instances - <a href="5-dci.html#SP3_2">§3.2</a>, <a href="5-dci.html#SP3_3">§3.3</a>, <a href="5-dci.html#SP3_4">§3.4</a><br/>Relations - <a href="5-rlt.html#SP6_3">§6.3</a>, <a href="5-rlt.html#SP6_3_3">§6.3.3</a>, <a href="5-rlt.html#SP7">§7</a>, <a href="5-rlt.html#SP9">§9</a>, <a href="5-rlt.html#SP10_2">§10.2</a>, <a href="5-rlt.html#SP10_3">§10.3</a><br/>Kind IDs - <a href="5-ki.html#SP9_1_1_1">§9.1.1.1</a>, <a href="5-ki.html#SP9_1_1_2">§9.1.1.2</a><br/>Test Scripts - <a href="5-ts.html#SP4">§4</a><br/>The Player - <a href="6-tp.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP1">§1</a><br/>Action Bitmap Property - <a href="6-abp.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP9" class="function-link"><span class="function-syntax">EmitArrays::entry_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">InterValuePairs::number</span><span class="plain-syntax">(</span><span class="identifier-syntax">N</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::iname_entry</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">EmitArrays::iname_entry</span></span>:<br/>The Heap - <a href="2-th.html#SP6">§6</a><br/>Short Names - <a href="2-sn.html#SP4">§4</a><br/>List Literals - <a href="4-ll.html#SP2">§2</a>, <a href="4-ll.html#SP7_2">§7.2</a><br/>Text Literals - <a href="4-tl.html#SP1">§1</a><br/>Text Substitutions - <a href="4-ts.html#SP1">§1</a><br/>Relation Literals - <a href="4-rl.html#SP1">§1</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">§1</a><br/>Instances - <a href="5-ins.html#SP4">§4</a><br/>Door Instances - <a href="5-di.html#SP6">§6</a><br/>Multimedia - <a href="5-mlt.html#SP2_2">§2.2</a><br/>Tables - <a href="5-tbl.html#SP2_1_1">§2.1.1</a>, <a href="5-tbl.html#SP2_1_1_1_3">§2.1.1.1.3</a>, <a href="5-tbl.html#SP2_1_1_1_5">§2.1.1.1.5</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2_1">§2.1</a>, <a href="5-dbi.html#SP2_2">§2.2</a>, <a href="5-dbi.html#SP2_3">§2.3</a>, <a href="5-dbi.html#SP2_4">§2.4</a>, <a href="5-dbi.html#SP3">§3</a><br/>Dialogue - <a href="5-dli.html#SP3_2">§3.2</a>, <a href="5-dli.html#SP3_3">§3.3</a>, <a href="5-dli.html#SP3_4">§3.4</a>, <a href="5-dli.html#SP3_6">§3.6</a>, <a href="5-dli.html#SP3_7">§3.7</a>, <a href="5-dli.html#SP3_8">§3.8</a><br/>Dialogue Choice Instances - <a href="5-dci.html#SP3_3">§3.3</a>, <a href="5-dci.html#SP3_4">§3.4</a><br/>Relations - <a href="5-rlt.html#SP6_3_2">§6.3.2</a>, <a href="5-rlt.html#SP6_3_2_1">§6.3.2.1</a>, <a href="5-rlt.html#SP6_3_3">§6.3.3</a>, <a href="5-rlt.html#SP6_3_6">§6.3.6</a>, <a href="5-rlt.html#SP7">§7</a>, <a href="5-rlt.html#SP10_2">§10.2</a><br/>Kind IDs - <a href="5-ki.html#SP6">§6</a>, <a href="5-ki.html#SP9_1">§9.1</a><br/>Test Scripts - <a href="5-ts.html#SP4">§4</a><br/>The Player - <a href="6-tp.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP1">§1</a><br/>Command Grammar Lines - <a href="7-cgl.html#SP6_1">§6.1</a>, <a href="7-cgl.html#SP6_4">§6.4</a>, <a href="7-cgl.html#SP7">§7</a>, <a href="7-cgl.html#SP8">§8</a>, <a href="7-cgl.html#SP10">§10</a>, <a href="7-cgl.html#SP14_4">§14.4</a>, <a href="7-cgl.html#SP14_5">§14.5</a><br/>Command Grammar Tokens - <a href="7-cgt.html#SP1_3">§1.3</a>, <a href="7-cgt.html#SP1_4_3">§1.4.3</a>, <a href="7-cgt.html#SP1_5">§1.5</a><br/>Noun Filter Tokens - <a href="7-nft.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::iname_entry</span><button class="popup" onclick="togglePopup('usagePopup11')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup11">Usage of <span class="code-font"><span class="function-syntax">EmitArrays::iname_entry</span></span>:<br/>The Heap - <a href="2-th.html#SP6">§6</a><br/>Short Names - <a href="2-sn.html#SP4">§4</a><br/>List Literals - <a href="4-ll.html#SP2">§2</a>, <a href="4-ll.html#SP7_2">§7.2</a><br/>Text Literals - <a href="4-tl.html#SP1">§1</a><br/>Text Substitutions - <a href="4-ts.html#SP1">§1</a><br/>Relation Literals - <a href="4-rl.html#SP1">§1</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">§1</a><br/>Instances - <a href="5-ins.html#SP4">§4</a><br/>Door Instances - <a href="5-di.html#SP6">§6</a><br/>Multimedia - <a href="5-mlt.html#SP2_2">§2.2</a><br/>Tables - <a href="5-tbl.html#SP2_1_1">§2.1.1</a>, <a href="5-tbl.html#SP2_1_1_1_3">§2.1.1.1.3</a>, <a href="5-tbl.html#SP2_1_1_1_5">§2.1.1.1.5</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2">§2</a>, <a href="5-dbi.html#SP2_1">§2.1</a>, <a href="5-dbi.html#SP2_2">§2.2</a>, <a href="5-dbi.html#SP2_3">§2.3</a>, <a href="5-dbi.html#SP2_4">§2.4</a>, <a href="5-dbi.html#SP2_5">§2.5</a>, <a href="5-dbi.html#SP3">§3</a><br/>Dialogue - <a href="5-dli.html#SP3_2">§3.2</a>, <a href="5-dli.html#SP3_3">§3.3</a>, <a href="5-dli.html#SP3_4">§3.4</a>, <a href="5-dli.html#SP3_5">§3.5</a>, <a href="5-dli.html#SP3_6">§3.6</a>, <a href="5-dli.html#SP3_7">§3.7</a>, <a href="5-dli.html#SP3_8">§3.8</a><br/>Dialogue Choice Instances - <a href="5-dci.html#SP3_3">§3.3</a>, <a href="5-dci.html#SP3_4">§3.4</a><br/>Relations - <a href="5-rlt.html#SP6_3_2">§6.3.2</a>, <a href="5-rlt.html#SP6_3_2_1">§6.3.2.1</a>, <a href="5-rlt.html#SP6_3_3">§6.3.3</a>, <a href="5-rlt.html#SP6_3_6">§6.3.6</a>, <a href="5-rlt.html#SP7">§7</a>, <a href="5-rlt.html#SP10_2">§10.2</a><br/>Kind IDs - <a href="5-ki.html#SP6">§6</a>, <a href="5-ki.html#SP9_1">§9.1</a><br/>Test Scripts - <a href="5-ts.html#SP4">§4</a><br/>The Player - <a href="6-tp.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP1">§1</a><br/>Command Grammar Lines - <a href="7-cgl.html#SP6_1">§6.1</a>, <a href="7-cgl.html#SP6_4">§6.4</a>, <a href="7-cgl.html#SP7">§7</a>, <a href="7-cgl.html#SP8">§8</a>, <a href="7-cgl.html#SP10">§10</a>, <a href="7-cgl.html#SP14_4">§14.4</a>, <a href="7-cgl.html#SP14_5">§14.5</a><br/>Command Grammar Tokens - <a href="7-cgt.html#SP1_3">§1.3</a>, <a href="7-cgt.html#SP1_4_3">§1.4.3</a>, <a href="7-cgt.html#SP1_5">§1.5</a><br/>Noun Filter Tokens - <a href="7-nft.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">alias</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">alias</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">NOTHING_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">alias</span><span class="plain-syntax"> = </span><span class="identifier-syntax">InterNames::to_symbol</span><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
|
@ -189,7 +189,7 @@ which would be a typesafe list in I7, so they can be absolutely any data.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::end</span><button class="popup" onclick="togglePopup('usagePopup17')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup17">Usage of <span class="code-font"><span class="function-syntax">EmitArrays::end</span></span>:<br/>Short Names - <a href="2-sn.html#SP4">§4</a><br/>List Literals - <a href="4-ll.html#SP1">§1</a>, <a href="4-ll.html#SP2">§2</a><br/>Text Literals - <a href="4-tl.html#SP1">§1</a><br/>Text Substitutions - <a href="4-ts.html#SP1">§1</a><br/>Box Quotations - <a href="4-bq.html#SP2">§2</a><br/>Relation Literals - <a href="4-rl.html#SP1">§1</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">§1</a><br/>Instances - <a href="5-ins.html#SP4">§4</a><br/>Door Instances - <a href="5-di.html#SP6">§6</a><br/>Multimedia - <a href="5-mlt.html#SP2_1">§2.1</a>, <a href="5-mlt.html#SP2_2">§2.2</a><br/>Tables - <a href="5-tbl.html#SP2_1_1">§2.1.1</a>, <a href="5-tbl.html#SP2_1_1_1">§2.1.1.1</a>, <a href="5-tbl.html#SP2_2">§2.2</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2">§2</a>, <a href="5-dbi.html#SP2_7">§2.7</a><br/>Dialogue - <a href="5-dli.html#SP3">§3</a><br/>Dialogue Choice Instances - <a href="5-dci.html#SP3">§3</a><br/>Relations - <a href="5-rlt.html#SP6_3">§6.3</a>, <a href="5-rlt.html#SP6_3_2">§6.3.2</a>, <a href="5-rlt.html#SP7">§7</a>, <a href="5-rlt.html#SP10">§10</a>, <a href="5-rlt.html#SP10_3">§10.3</a><br/>Kind IDs - <a href="5-ki.html#SP9_1">§9.1</a><br/>Test Scripts - <a href="5-ts.html#SP4">§4</a><br/>The Player - <a href="6-tp.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP1">§1</a><br/>Action Bitmap Property - <a href="6-abp.html#SP1">§1</a><br/>Command Grammars - <a href="7-cg.html#SP11">§11</a><br/>Name Properties - <a href="7-np.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">EmitArrays::end</span><button class="popup" onclick="togglePopup('usagePopup17')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup17">Usage of <span class="code-font"><span class="function-syntax">EmitArrays::end</span></span>:<br/>Short Names - <a href="2-sn.html#SP4">§4</a><br/>List Literals - <a href="4-ll.html#SP1">§1</a>, <a href="4-ll.html#SP2">§2</a><br/>Text Literals - <a href="4-tl.html#SP1">§1</a><br/>Text Substitutions - <a href="4-ts.html#SP1">§1</a><br/>Box Quotations - <a href="4-bq.html#SP2">§2</a><br/>Relation Literals - <a href="4-rl.html#SP1">§1</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">§1</a><br/>Instances - <a href="5-ins.html#SP4">§4</a><br/>Door Instances - <a href="5-di.html#SP6">§6</a><br/>Multimedia - <a href="5-mlt.html#SP2_1">§2.1</a>, <a href="5-mlt.html#SP2_2">§2.2</a><br/>Tables - <a href="5-tbl.html#SP2_1_1">§2.1.1</a>, <a href="5-tbl.html#SP2_1_1_1">§2.1.1.1</a>, <a href="5-tbl.html#SP2_2">§2.2</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2">§2</a>, <a href="5-dbi.html#SP2_8">§2.8</a><br/>Dialogue - <a href="5-dli.html#SP3">§3</a><br/>Dialogue Choice Instances - <a href="5-dci.html#SP3">§3</a><br/>Relations - <a href="5-rlt.html#SP6_3">§6.3</a>, <a href="5-rlt.html#SP6_3_2">§6.3.2</a>, <a href="5-rlt.html#SP7">§7</a>, <a href="5-rlt.html#SP10">§10</a>, <a href="5-rlt.html#SP10_3">§10.3</a><br/>Kind IDs - <a href="5-ki.html#SP9_1">§9.1</a><br/>Test Scripts - <a href="5-ts.html#SP4">§4</a><br/>The Player - <a href="6-tp.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP1">§1</a><br/>Action Bitmap Property - <a href="6-abp.html#SP1">§1</a><br/>Command Grammars - <a href="7-cg.html#SP11">§11</a><br/>Name Properties - <a href="7-np.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP10" class="function-link"><span class="function-syntax">EmitArrays::end_inner</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Packaging::exit</span><span class="plain-syntax">(</span><a href="2-emt.html#SP1" class="function-link"><span class="function-syntax">Emit::tree</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -193,7 +193,7 @@ it represents an actual number at run-time, the second if not:
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::numeric_constant</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">Emit::numeric_constant</span></span>:<br/>Hierarchy - <a href="2-hrr.html#SP23">§23</a><br/>Compilation Units - <a href="2-cu.html#SP2_1_3">§2.1.3</a><br/>The Heap - <a href="2-th.html#SP2">§2</a><br/>Completion Module - <a href="3-cm.html#SP1_5">§1.5</a>, <a href="3-cm.html#SP1_6">§1.6</a>, <a href="3-cm.html#SP1_7">§1.7</a>, <a href="3-cm.html#SP1_8">§1.8</a>, <a href="3-cm.html#SP1_11_1">§1.11.1</a><br/>Use Options - <a href="3-uo.html#SP1">§1</a>, <a href="3-uo.html#SP1_2">§1.2</a><br/>Responses - <a href="4-rsp.html#SP6">§6</a><br/>Activities - <a href="5-act.html#SP7">§7</a><br/>Chronology - <a href="5-chr.html#SP3_3">§3.3</a>, <a href="5-chr.html#SP7_1">§7.1</a><br/>Conjugations - <a href="5-cnj.html#SP12">§12</a><br/>Tables - <a href="5-tbl.html#SP2_1_1_1_3">§2.1.1.1.3</a>, <a href="5-tbl.html#SP2_3">§2.3</a><br/>Table Columns - <a href="5-tc.html#SP2">§2</a><br/>Rules - <a href="5-rls.html#SP12_2">§12.2</a><br/>Rulebooks - <a href="5-rlb.html#SP7_2">§7.2</a><br/>Variables - <a href="5-vrb.html#SP14">§14</a><br/>Properties - <a href="5-prp.html#SP7_3">§7.3</a><br/>Relations - <a href="5-rlt.html#SP5">§5</a>, <a href="5-rlt.html#SP10_3">§10.3</a><br/>Kind Constructors - <a href="5-kc.html#SP10">§10</a><br/>Kind IDs - <a href="5-ki.html#SP9_2">§9.2</a><br/>Actions - <a href="5-act2.html#SP8_1">§8.1</a>, <a href="5-act2.html#SP8_3">§8.3</a><br/>Bibliographic Data - <a href="6-bd.html#SP1_6">§1.6</a><br/>The Player - <a href="6-tp.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP1">§1</a><br/>Command Grammars - <a href="7-cg.html#SP3">§3</a>, <a href="7-cg.html#SP11">§11</a>, <a href="7-cg.html#SP16">§16</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">Emit::numeric_constant</span><button class="popup" onclick="togglePopup('usagePopup14')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup14">Usage of <span class="code-font"><span class="function-syntax">Emit::numeric_constant</span></span>:<br/>Hierarchy - <a href="2-hrr.html#SP23">§23</a><br/>Compilation Units - <a href="2-cu.html#SP2_1_3">§2.1.3</a><br/>The Heap - <a href="2-th.html#SP2">§2</a><br/>Completion Module - <a href="3-cm.html#SP1_5">§1.5</a>, <a href="3-cm.html#SP1_6">§1.6</a>, <a href="3-cm.html#SP1_7">§1.7</a>, <a href="3-cm.html#SP1_8">§1.8</a>, <a href="3-cm.html#SP1_11_1">§1.11.1</a><br/>Use Options - <a href="3-uo.html#SP1">§1</a>, <a href="3-uo.html#SP1_2">§1.2</a><br/>Responses - <a href="4-rsp.html#SP6">§6</a><br/>Activities - <a href="5-act.html#SP7">§7</a><br/>Chronology - <a href="5-chr.html#SP3_3">§3.3</a>, <a href="5-chr.html#SP7_1">§7.1</a><br/>Conjugations - <a href="5-cnj.html#SP12">§12</a><br/>Tables - <a href="5-tbl.html#SP2_1_1_1_3">§2.1.1.1.3</a>, <a href="5-tbl.html#SP2_3">§2.3</a><br/>Table Columns - <a href="5-tc.html#SP2">§2</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2">§2</a><br/>Rules - <a href="5-rls.html#SP12_2">§12.2</a><br/>Rulebooks - <a href="5-rlb.html#SP7_2">§7.2</a><br/>Variables - <a href="5-vrb.html#SP14">§14</a><br/>Properties - <a href="5-prp.html#SP7_3">§7.3</a><br/>Relations - <a href="5-rlt.html#SP5">§5</a>, <a href="5-rlt.html#SP10_3">§10.3</a><br/>Kind Constructors - <a href="5-kc.html#SP10">§10</a><br/>Kind IDs - <a href="5-ki.html#SP9_2">§9.2</a><br/>Actions - <a href="5-act2.html#SP8_1">§8.1</a>, <a href="5-act2.html#SP8_3">§8.3</a><br/>Bibliographic Data - <a href="6-bd.html#SP1_6">§1.6</a><br/>The Player - <a href="6-tp.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP1">§1</a><br/>Command Grammars - <a href="7-cg.html#SP3">§3</a>, <a href="7-cg.html#SP11">§11</a>, <a href="7-cg.html#SP16">§16</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">val</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="2-emt.html#SP6" class="function-link"><span class="function-syntax">Emit::numeric_constant_inner</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">con_iname</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">InterValuePairs::number_in_base</span><span class="plain-syntax">(</span><span class="identifier-syntax">val</span><span class="plain-syntax">, </span><span class="constant-syntax">10</span><span class="plain-syntax">), </span><span class="identifier-syntax">INT32_ITCONC</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -234,7 +234,7 @@ case of a response to a rule, since those are never perishable.
|
|||
<span class="plain-syntax"> function ----------------------> ...</span>
|
||||
</pre>
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">TextSubstitutions::value_iname</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">TextSubstitutions::value_iname</span></span>:<br/><a href="4-ts.html#SP2_1">§2.1</a>, <a href="4-ts.html#SP2_2">§2.2</a><br/>Responses - <a href="4-rsp.html#SP2">§2</a>, <a href="4-rsp.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">text_substitution</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ts</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">TextSubstitutions::value_iname</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">TextSubstitutions::value_iname</span></span>:<br/><a href="4-ts.html#SP2_1">§2.1</a>, <a href="4-ts.html#SP2_2">§2.2</a><br/>Responses - <a href="4-rsp.html#SP2">§2</a>, <a href="4-rsp.html#SP6">§6</a><br/>Dialogue - <a href="5-dli.html#SP3_5">§3.5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">text_substitution</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ts</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">ts</span><span class="plain-syntax">-></span><span class="element-syntax">ts_value_iname</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
|
@ -247,7 +247,7 @@ also when responses are created — see <a href="4-rsp.html" class="internal
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">text_substitution</span><span class="plain-syntax"> *</span><span class="function-syntax">TextSubstitutions::new_text_substitution</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">TextSubstitutions::new_text_substitution</span></span>:<br/><a href="4-ts.html#SP2_1_1">§2.1.1</a><br/>Responses - <a href="4-rsp.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">text_substitution</span><span class="plain-syntax"> *</span><span class="function-syntax">TextSubstitutions::new_text_substitution</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">TextSubstitutions::new_text_substitution</span></span>:<br/><a href="4-ts.html#SP2_1_1">§2.1.1</a><br/>Responses - <a href="4-rsp.html#SP2">§2</a><br/>Dialogue - <a href="5-dli.html#SP3_5">§3.5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">W</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">stack_frame</span><span class="plain-syntax"> *</span><span class="identifier-syntax">frame</span><span class="plain-syntax">, </span><span class="identifier-syntax">rule</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">marker</span><span class="plain-syntax">) {</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">text_substitution</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ts</span><span class="plain-syntax"> = </span><span class="identifier-syntax">CREATE</span><span class="plain-syntax">(</span><span class="reserved-syntax">text_substitution</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -97,7 +97,7 @@ function togglePopup(material_id) {
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTActivities::iname</span><span class="plain-syntax">(</span><span class="identifier-syntax">activity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">av</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTActivities::iname</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">RTActivities::iname</span></span>:<br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">activity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">av</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">av</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">value_iname</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
@ -119,7 +119,7 @@ function togglePopup(material_id) {
|
|||
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>§5. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTActivities::annotate_list_for_cross_references</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">RTActivities::annotate_list_for_cross_references</span></span>:<br/>Rules - <a href="5-rls.html#SP15_2">§15.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">activity_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">avl</span><span class="plain-syntax">, </span><span class="identifier-syntax">id_body</span><span class="plain-syntax"> *</span><span class="identifier-syntax">idb</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTActivities::annotate_list_for_cross_references</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">RTActivities::annotate_list_for_cross_references</span></span>:<br/>Rules - <a href="5-rls.html#SP15_2">§15.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">activity_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">avl</span><span class="plain-syntax">, </span><span class="identifier-syntax">id_body</span><span class="plain-syntax"> *</span><span class="identifier-syntax">idb</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (; </span><span class="identifier-syntax">avl</span><span class="plain-syntax">; </span><span class="identifier-syntax">avl</span><span class="plain-syntax"> = </span><span class="identifier-syntax">avl</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">avl</span><span class="plain-syntax">-></span><span class="identifier-syntax">activity</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">activity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">av</span><span class="plain-syntax"> = </span><span class="identifier-syntax">avl</span><span class="plain-syntax">-></span><span class="identifier-syntax">activity</span><span class="plain-syntax">;</span>
|
||||
|
@ -151,7 +151,7 @@ write 0.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTActivities::compilation_agent</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">RTActivities::compilation_agent</span></span>:<br/><a href="5-act.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">compilation_subtask</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTActivities::compilation_agent</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">RTActivities::compilation_agent</span></span>:<br/><a href="5-act.html#SP6">§6</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">compilation_subtask</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">activity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">av</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_activity</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">data</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">av</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">av_package</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP12" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">ACTIVITY_ID_HL</span><span class="plain-syntax">, </span><span class="identifier-syntax">pack</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -88,28 +88,32 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-ins.html#SP1" class="function-link"><span class="function-syntax">RTInstances::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="identifier-syntax">as_instance</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTDialogueBeats::available_fn_iname</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">RTDialogueBeats::available_fn_iname</span></span>:<br/><a href="5-dbi.html#SP2_1">§2.1</a>, <a href="5-dbi.html#SP2_5">§2.5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">dialogue_beat</span><span class="plain-syntax"> *</span><span class="identifier-syntax">db</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTDialogueBeats::iname</span><button class="popup" onclick="togglePopup('usagePopup2')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup2">Usage of <span class="code-font"><span class="function-syntax">RTDialogueBeats::iname</span></span>:<br/>Scene Instances - <a href="5-si.html#SP1">§1</a>, <a href="5-si.html#SP4_3">§4.3</a>, <a href="5-si.html#SP6_2">§6.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">dialogue_beat</span><span class="plain-syntax"> *</span><span class="identifier-syntax">db</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><a href="5-ins.html#SP1" class="function-link"><span class="function-syntax">RTInstances::value_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="identifier-syntax">as_instance</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTDialogueBeats::available_fn_iname</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">RTDialogueBeats::available_fn_iname</span></span>:<br/><a href="5-dbi.html#SP2_1">§2.1</a>, <a href="5-dbi.html#SP2_6">§2.6</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">dialogue_beat</span><span class="plain-syntax"> *</span><span class="identifier-syntax">db</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">available_function</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">available_function</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP12" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">BEAT_AVAILABLE_FN_HL</span><span class="plain-syntax">, </span><a href="5-dbi.html#SP1" class="function-link"><span class="function-syntax">RTDialogueBeats::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">db</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">available_function</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTDialogueBeats::relevant_fn_iname</span><button class="popup" onclick="togglePopup('usagePopup3')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup3">Usage of <span class="code-font"><span class="function-syntax">RTDialogueBeats::relevant_fn_iname</span></span>:<br/><a href="5-dbi.html#SP2_2">§2.2</a>, <a href="5-dbi.html#SP2_6">§2.6</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">dialogue_beat</span><span class="plain-syntax"> *</span><span class="identifier-syntax">db</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTDialogueBeats::relevant_fn_iname</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">RTDialogueBeats::relevant_fn_iname</span></span>:<br/><a href="5-dbi.html#SP2_2">§2.2</a>, <a href="5-dbi.html#SP2_7">§2.7</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">dialogue_beat</span><span class="plain-syntax"> *</span><span class="identifier-syntax">db</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">relevant_function</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">relevant_function</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP12" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">BEAT_RELEVANT_FN_HL</span><span class="plain-syntax">, </span><a href="5-dbi.html#SP1" class="function-link"><span class="function-syntax">RTDialogueBeats::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">db</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">relevant_function</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTDialogueBeats::structure_array_iname</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">RTDialogueBeats::structure_array_iname</span></span>:<br/><a href="5-dbi.html#SP2_3">§2.3</a>, <a href="5-dbi.html#SP2_7">§2.7</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">dialogue_beat</span><span class="plain-syntax"> *</span><span class="identifier-syntax">db</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTDialogueBeats::structure_array_iname</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">RTDialogueBeats::structure_array_iname</span></span>:<br/><a href="5-dbi.html#SP2_3">§2.3</a>, <a href="5-dbi.html#SP2_8">§2.8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">dialogue_beat</span><span class="plain-syntax"> *</span><span class="identifier-syntax">db</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">structure_array</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">structure_array</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP12" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">BEAT_STRUCTURE_HL</span><span class="plain-syntax">, </span><a href="5-dbi.html#SP1" class="function-link"><span class="function-syntax">RTDialogueBeats::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">db</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">structure_array</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTDialogueBeats::beat_array_iname</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">RTDialogueBeats::beat_array_iname</span></span>:<br/><a href="5-dbi.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">dialogue_beat</span><span class="plain-syntax"> *</span><span class="identifier-syntax">db</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTDialogueBeats::beat_array_iname</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">RTDialogueBeats::beat_array_iname</span></span>:<br/><a href="5-dbi.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">dialogue_beat</span><span class="plain-syntax"> *</span><span class="identifier-syntax">db</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">beat_array_iname</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">beat_array_iname</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP12" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">BEAT_ARRAY_HL</span><span class="plain-syntax">, </span><a href="5-dbi.html#SP1" class="function-link"><span class="function-syntax">RTDialogueBeats::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">db</span><span class="plain-syntax">));</span>
|
||||
|
@ -151,6 +155,35 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::iname_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="5-prp.html#SP2" class="function-link"><span class="function-syntax">RTProperties::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">P_recurring</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP17" class="function-link"><span class="function-syntax">Hierarchy::make_available</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">AV_offering_a_dialogue_choice</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">OFFERING_A_DIALOGUE_CHOICE_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::iname_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="5-act.html#SP3" class="function-link"><span class="function-syntax">RTActivities::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">AV_offering_a_dialogue_choice</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP17" class="function-link"><span class="function-syntax">Hierarchy::make_available</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">OFFERING_A_DIALOGUE_CHOICE_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-emt.html#SP6" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP17" class="function-link"><span class="function-syntax">Hierarchy::make_available</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">AV_performing_dialogue</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">PERFORMING_DIALOGUE_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-emt.html#SP8" class="function-link"><span class="function-syntax">Emit::iname_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="5-act.html#SP3" class="function-link"><span class="function-syntax">RTActivities::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">AV_performing_dialogue</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP17" class="function-link"><span class="function-syntax">Hierarchy::make_available</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">iname</span><span class="plain-syntax"> = </span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="constant-syntax">PERFORMING_DIALOGUE_HL</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-emt.html#SP6" class="function-link"><span class="function-syntax">Emit::numeric_constant</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP17" class="function-link"><span class="function-syntax">Hierarchy::make_available</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTDialogueBeats::compile_starting_beat_entry</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">RTDialogueBeats::compile_starting_beat_entry</span></span>:<br/>The Player - <a href="6-tp.html#SP1">§1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dialogue_beat</span><span class="plain-syntax"> *</span><span class="identifier-syntax">db</span><span class="plain-syntax">, *</span><span class="identifier-syntax">starting_db</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">db</span><span class="plain-syntax">, </span><span class="identifier-syntax">dialogue_beat</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="identifier-syntax">starting_beat</span><span class="plain-syntax">) </span><span class="identifier-syntax">starting_db</span><span class="plain-syntax"> = </span><span class="identifier-syntax">db</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">starting_db</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::iname_entry</span></a><span class="plain-syntax">(</span><a href="5-ins.html#SP1" class="function-link"><span class="function-syntax">RTInstances::value_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">starting_db</span><span class="plain-syntax">-></span><span class="identifier-syntax">as_instance</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::numeric_entry</span></a><span class="plain-syntax">(0);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTDialogueBeats::beat_compilation_agent</span><span class="plain-syntax">(</span><span class="identifier-syntax">compilation_subtask</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ct</span><span class="plain-syntax">) {</span>
|
||||
|
@ -165,12 +198,13 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-dbi.html#SP2_1" class="named-paragraph-link"><span class="named-paragraph">Write the availability entry</span><span class="named-paragraph-number">2.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-dbi.html#SP2_2" class="named-paragraph-link"><span class="named-paragraph">Write the relevance entry</span><span class="named-paragraph-number">2.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-dbi.html#SP2_3" class="named-paragraph-link"><span class="named-paragraph">Write the structure entry</span><span class="named-paragraph-number">2.3</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-dbi.html#SP2_4" class="named-paragraph-link"><span class="named-paragraph">Write the speaker list</span><span class="named-paragraph-number">2.4</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-dbi.html#SP2_4" class="named-paragraph-link"><span class="named-paragraph">Write the scene entry</span><span class="named-paragraph-number">2.4</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-dbi.html#SP2_5" class="named-paragraph-link"><span class="named-paragraph">Write the speaker list</span><span class="named-paragraph-number">2.5</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP5" class="function-link"><span class="function-syntax">EmitArrays::end</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">make_availability_function</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="5-dbi.html#SP2_5" class="named-paragraph-link"><span class="named-paragraph">Compile the available function</span><span class="named-paragraph-number">2.5</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">make_relevance_function</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="5-dbi.html#SP2_6" class="named-paragraph-link"><span class="named-paragraph">Compile the relevant function</span><span class="named-paragraph-number">2.6</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-dbi.html#SP2_7" class="named-paragraph-link"><span class="named-paragraph">Compile the structure array</span><span class="named-paragraph-number">2.7</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">make_availability_function</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="5-dbi.html#SP2_6" class="named-paragraph-link"><span class="named-paragraph">Compile the available function</span><span class="named-paragraph-number">2.6</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">make_relevance_function</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="5-dbi.html#SP2_7" class="named-paragraph-link"><span class="named-paragraph">Compile the relevant function</span><span class="named-paragraph-number">2.7</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-dbi.html#SP2_8" class="named-paragraph-link"><span class="named-paragraph">Compile the structure array</span><span class="named-paragraph-number">2.8</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP2_1" class="paragraph-anchor"></a><b>§2.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Write the availability entry</span><span class="named-paragraph-number">2.1</span></span><span class="comment-syntax"> =</span>
|
||||
|
@ -212,19 +246,32 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::iname_entry</span></a><span class="plain-syntax">(</span><a href="5-dbi.html#SP1" class="function-link"><span class="function-syntax">RTDialogueBeats::structure_array_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">db</span><span class="plain-syntax">));</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-dbi.html#SP2">§2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_4" class="paragraph-anchor"></a><b>§2.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Write the speaker list</span><span class="named-paragraph-number">2.4</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP2_4" class="paragraph-anchor"></a><b>§2.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Write the scene entry</span><span class="named-paragraph-number">2.4</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-dbi.html#SP5" class="function-link"><span class="function-syntax">RTDialogueBeats::find_speakers_r</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="plain-syntax">, </span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="identifier-syntax">root</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="identifier-syntax">as_scene</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::iname_entry</span></a><span class="plain-syntax">(</span><a href="5-ins.html#SP1" class="function-link"><span class="function-syntax">RTInstances::value_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">Scenes::get_instance</span><span class="plain-syntax">(</span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="identifier-syntax">as_scene</span><span class="plain-syntax">)));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::numeric_entry</span></a><span class="plain-syntax">(0);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-dbi.html#SP2">§2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_5" class="paragraph-anchor"></a><b>§2.5. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Write the speaker list</span><span class="named-paragraph-number">2.5</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="identifier-syntax">required</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">LinkedLists::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="plain-syntax">) == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-dbi.html#SP5" class="function-link"><span class="function-syntax">RTDialogueBeats::find_speakers_r</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">L</span><span class="plain-syntax">, </span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="identifier-syntax">root</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">instance</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::iname_entry</span></a><span class="plain-syntax">(</span><a href="5-ins.html#SP1" class="function-link"><span class="function-syntax">RTInstances::value_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::numeric_entry</span></a><span class="plain-syntax">(0);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-dbi.html#SP2">§2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_5" class="paragraph-anchor"></a><b>§2.5. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile the available function</span><span class="named-paragraph-number">2.5</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP2_6" class="paragraph-anchor"></a><b>§2.6. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile the available function</span><span class="named-paragraph-number">2.6</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -232,14 +279,14 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">local_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">latest</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LocalVariables::new_internal_commented</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"latest"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"most recently performed beat"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LocalVariables::set_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">latest</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_dialogue_beat</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">latest_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LocalVariables::declare</span><span class="plain-syntax">(</span><span class="identifier-syntax">latest</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="identifier-syntax">immediately_after</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="5-dbi.html#SP2_5_1" class="named-paragraph-link"><span class="named-paragraph">Check the immediately after condition</span><span class="named-paragraph-number">2.5.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-dbi.html#SP2_5_2" class="named-paragraph-link"><span class="named-paragraph">Check the after and before conditions</span><span class="named-paragraph-number">2.5.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-dbi.html#SP2_5_3" class="named-paragraph-link"><span class="named-paragraph">Check the if and unless conditions</span><span class="named-paragraph-number">2.5.3</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="identifier-syntax">immediately_after</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="5-dbi.html#SP2_6_1" class="named-paragraph-link"><span class="named-paragraph">Check the immediately after condition</span><span class="named-paragraph-number">2.6.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-dbi.html#SP2_6_2" class="named-paragraph-link"><span class="named-paragraph">Check the after and before conditions</span><span class="named-paragraph-number">2.6.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-dbi.html#SP2_6_3" class="named-paragraph-link"><span class="named-paragraph">Check the if and unless conditions</span><span class="named-paragraph-number">2.6.3</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::rtrue</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Functions::end</span><span class="plain-syntax">(</span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-dbi.html#SP2">§2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_5_1" class="paragraph-anchor"></a><b>§2.5.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Check the immediately after condition</span><span class="named-paragraph-number">2.5.1</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP2_6_1" class="paragraph-anchor"></a><b>§2.6.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Check the immediately after condition</span><span class="named-paragraph-number">2.6.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -252,13 +299,13 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP5" class="function-link"><span class="function-syntax">EmitCode::code</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-dbi.html#SP2_5_1_1" class="named-paragraph-link"><span class="named-paragraph">Return false if latest does not match the immediately after description</span><span class="named-paragraph-number">2.5.1.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-dbi.html#SP2_6_1_1" class="named-paragraph-link"><span class="named-paragraph">Return false if latest does not match the immediately after description</span><span class="named-paragraph-number">2.6.1.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::rfalse</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-dbi.html#SP2_5">§2.5</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_5_1_1" class="paragraph-anchor"></a><b>§2.5.1.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Return false if latest does not match the immediately after description</span><span class="named-paragraph-number">2.5.1.1</span></span><span class="comment-syntax"> =</span>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-dbi.html#SP2_6">§2.6</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_6_1_1" class="paragraph-anchor"></a><b>§2.6.1.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Return false if latest does not match the immediately after description</span><span class="named-paragraph-number">2.6.1.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -287,23 +334,23 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-dbi.html#SP2_5_1">§2.5.1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_5_2" class="paragraph-anchor"></a><b>§2.5.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Check the after and before conditions</span><span class="named-paragraph-number">2.5.2</span></span><span class="comment-syntax"> =</span>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-dbi.html#SP2_6_1">§2.6.1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_6_2" class="paragraph-anchor"></a><b>§2.6.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Check the after and before conditions</span><span class="named-paragraph-number">2.6.2</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">desc</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax">, </span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="identifier-syntax">some_time_after</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">negate_me</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-dbi.html#SP2_5_2_1" class="named-paragraph-link"><span class="named-paragraph">Work out proposition</span><span class="named-paragraph-number">2.5.2.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-dbi.html#SP2_6_2_1" class="named-paragraph-link"><span class="named-paragraph">Work out proposition</span><span class="named-paragraph-number">2.6.2.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax">, </span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="identifier-syntax">some_time_before</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">negate_me</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-dbi.html#SP2_5_2_1" class="named-paragraph-link"><span class="named-paragraph">Work out proposition</span><span class="named-paragraph-number">2.5.2.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-dbi.html#SP2_6_2_1" class="named-paragraph-link"><span class="named-paragraph">Work out proposition</span><span class="named-paragraph-number">2.6.2.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-dbi.html#SP2_5">§2.5</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_5_2_1" class="paragraph-anchor"></a><b>§2.5.2.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Work out proposition</span><span class="named-paragraph-number">2.5.2.1</span></span><span class="comment-syntax"> =</span>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-dbi.html#SP2_6">§2.6</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_6_2_1" class="paragraph-anchor"></a><b>§2.6.2.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Work out proposition</span><span class="named-paragraph-number">2.6.2.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -334,8 +381,8 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-dbi.html#SP2_5_2">§2.5.2</a> (twice).</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_5_3" class="paragraph-anchor"></a><b>§2.5.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Check the if and unless conditions</span><span class="named-paragraph-number">2.5.3</span></span><span class="comment-syntax"> =</span>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-dbi.html#SP2_6_2">§2.6.2</a> (twice).</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_6_3" class="paragraph-anchor"></a><b>§2.6.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Check the if and unless conditions</span><span class="named-paragraph-number">2.6.3</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -373,27 +420,48 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-dbi.html#SP2_5">§2.5</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_6" class="paragraph-anchor"></a><b>§2.6. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile the relevant function</span><span class="named-paragraph-number">2.6</span></span><span class="comment-syntax"> =</span>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-dbi.html#SP2_6">§2.6</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_7" class="paragraph-anchor"></a><b>§2.7. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile the relevant function</span><span class="named-paragraph-number">2.7</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Functions::begin</span><span class="plain-syntax">(</span><a href="5-dbi.html#SP1" class="function-link"><span class="function-syntax">RTDialogueBeats::relevant_fn_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">db</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">local_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pool</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LocalVariables::new_internal_commented</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"pool"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"pool of live topics"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">local_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">set</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LocalVariables::new_internal_commented</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"set"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"if true, make these relevant"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">local_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LocalVariables::new_internal_commented</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"iv"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"index variable"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">local_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">topic</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LocalVariables::new_internal_commented</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"topic"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"live topic"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pool_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LocalVariables::declare</span><span class="plain-syntax">(</span><span class="identifier-syntax">pool</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">set_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LocalVariables::declare</span><span class="plain-syntax">(</span><span class="identifier-syntax">set</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">iv_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LocalVariables::declare</span><span class="plain-syntax">(</span><span class="identifier-syntax">iv</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">topic_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LocalVariables::declare</span><span class="plain-syntax">(</span><span class="identifier-syntax">topic</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-dbi.html#SP2_6_1" class="named-paragraph-link"><span class="named-paragraph">Check the about list against the subject pool</span><span class="named-paragraph-number">2.6.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-dbi.html#SP2_7_1" class="named-paragraph-link"><span class="named-paragraph">Check the about list against the subject pool</span><span class="named-paragraph-number">2.7.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::rfalse</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Functions::end</span><span class="plain-syntax">(</span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-dbi.html#SP2">§2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_6_1" class="paragraph-anchor"></a><b>§2.6.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Check the about list against the subject pool</span><span class="named-paragraph-number">2.6.1</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP2_7_1" class="paragraph-anchor"></a><b>§2.7.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Check the about list against the subject pool</span><span class="named-paragraph-number">2.7.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP13" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IF_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">set_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP5" class="function-link"><span class="function-syntax">EmitCode::code</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">desc</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax">, </span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="identifier-syntax">about_list</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Rvalues::to_instance</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP13" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">DIRECTOR_ADD_LIVE_SUBJECT_LIST_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="5-ins.html#SP1" class="function-link"><span class="function-syntax">RTInstances::value_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::rtrue</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">loop_label</span><span class="plain-syntax"> = </span><a href="2-ec.html#SP16" class="function-link"><span class="function-syntax">EmitCode::reserve_label</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"about_loop"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP16" class="function-link"><span class="function-syntax">EmitCode::place_label</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">loop_label</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP13" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">STORE_BIP</span><span class="plain-syntax">);</span>
|
||||
|
@ -414,7 +482,6 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP5" class="function-link"><span class="function-syntax">EmitCode::code</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">desc</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax">, </span><span class="identifier-syntax">db</span><span class="plain-syntax">-></span><span class="identifier-syntax">about_list</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Rvalues::to_instance</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP13" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IF_BIP</span><span class="plain-syntax">);</span>
|
||||
|
@ -454,11 +521,11 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::rfalse</span></a><span class="plain-syntax">();</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-dbi.html#SP2_6">§2.6</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_7" class="paragraph-anchor"></a><b>§2.7. </b>And this is always present.
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-dbi.html#SP2_7">§2.7</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP2_8" class="paragraph-anchor"></a><b>§2.8. </b>And this is always present.
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile the structure array</span><span class="named-paragraph-number">2.7</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile the structure array</span><span class="named-paragraph-number">2.8</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -472,7 +539,7 @@ function togglePopup(material_id) {
|
|||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTDialogueBeats::compile_structure_r</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">RTDialogueBeats::compile_structure_r</span></span>:<br/><a href="5-dbi.html#SP2_7">§2.7</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">dialogue_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dn</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">depth</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTDialogueBeats::compile_structure_r</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">RTDialogueBeats::compile_structure_r</span></span>:<br/><a href="5-dbi.html#SP2_8">§2.8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">dialogue_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dn</span><span class="plain-syntax">, </span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax"> </span><span class="identifier-syntax">depth</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">while</span><span class="plain-syntax"> (</span><span class="identifier-syntax">dn</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">dn</span><span class="plain-syntax">-></span><span class="identifier-syntax">if_line</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::numeric_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">depth</span><span class="plain-syntax"> + </span><span class="constant-syntax">100</span><span class="plain-syntax">);</span>
|
||||
|
@ -514,7 +581,7 @@ function togglePopup(material_id) {
|
|||
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>§5. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTDialogueBeats::find_speakers_r</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">RTDialogueBeats::find_speakers_r</span></span>:<br/><a href="5-dbi.html#SP2_4">§2.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax">, </span><span class="identifier-syntax">dialogue_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dn</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTDialogueBeats::find_speakers_r</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">RTDialogueBeats::find_speakers_r</span></span>:<br/><a href="5-dbi.html#SP2_5">§2.5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax">, </span><span class="identifier-syntax">dialogue_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dn</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">while</span><span class="plain-syntax"> (</span><span class="identifier-syntax">dn</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">dn</span><span class="plain-syntax">-></span><span class="identifier-syntax">if_line</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="5-dli.html#SP4" class="function-link"><span class="function-syntax">RTDialogueLines::speaker_instance</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dn</span><span class="plain-syntax">-></span><span class="identifier-syntax">if_line</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -21,6 +21,7 @@ function togglePopup(material_id) {
|
|||
|
||||
<link href="../docs-assets/Popups.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Preform-Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
|
||||
</head>
|
||||
<body class="commentary-font">
|
||||
|
@ -69,6 +70,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">where_created</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">available_fn_iname</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">speaker_fn_iname</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">interlocutor_fn_iname</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">mentioning_fn_iname</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">action_fn_iname</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">line_array_iname</span><span class="plain-syntax">;</span>
|
||||
|
@ -79,6 +81,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">dlcd</span><span class="plain-syntax">.</span><span class="element-syntax">where_created</span><span class="plain-syntax"> = </span><span class="identifier-syntax">PN</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dlcd</span><span class="plain-syntax">.</span><span class="element-syntax">available_fn_iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dlcd</span><span class="plain-syntax">.</span><span class="element-syntax">speaker_fn_iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dlcd</span><span class="plain-syntax">.</span><span class="element-syntax">interlocutor_fn_iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dlcd</span><span class="plain-syntax">.</span><span class="element-syntax">mentioning_fn_iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dlcd</span><span class="plain-syntax">.</span><span class="element-syntax">action_fn_iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dlcd</span><span class="plain-syntax">.</span><span class="element-syntax">line_array_iname</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
@ -111,14 +114,21 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">speaker_fn_iname</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTDialogueLines::mentioning_fn_iname</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">RTDialogueLines::mentioning_fn_iname</span></span>:<br/><a href="5-dli.html#SP3_7">§3.7</a>, <a href="5-dli.html#SP3_12">§3.12</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">dialogue_line</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dl</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTDialogueLines::interlocutor_fn_iname</span><button class="popup" onclick="togglePopup('usagePopup5')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup5">Usage of <span class="code-font"><span class="function-syntax">RTDialogueLines::interlocutor_fn_iname</span></span>:<br/><a href="5-dli.html#SP3_4">§3.4</a>, <a href="5-dli.html#SP3_12">§3.12</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">dialogue_line</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dl</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">interlocutor_fn_iname</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">interlocutor_fn_iname</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP12" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">LINE_INTERLOCUTOR_FN_HL</span><span class="plain-syntax">, </span><a href="5-dli.html#SP1" class="function-link"><span class="function-syntax">RTDialogueLines::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dl</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">interlocutor_fn_iname</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTDialogueLines::mentioning_fn_iname</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">RTDialogueLines::mentioning_fn_iname</span></span>:<br/><a href="5-dli.html#SP3_7">§3.7</a>, <a href="5-dli.html#SP3_13">§3.13</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">dialogue_line</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dl</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">mentioning_fn_iname</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">mentioning_fn_iname</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP12" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">LINE_MENTIONING_FN_HL</span><span class="plain-syntax">, </span><a href="5-dli.html#SP1" class="function-link"><span class="function-syntax">RTDialogueLines::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dl</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">mentioning_fn_iname</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTDialogueLines::action_fn_iname</span><button class="popup" onclick="togglePopup('usagePopup6')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup6">Usage of <span class="code-font"><span class="function-syntax">RTDialogueLines::action_fn_iname</span></span>:<br/><a href="5-dli.html#SP3_8">§3.8</a>, <a href="5-dli.html#SP3_13">§3.13</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">dialogue_line</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dl</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTDialogueLines::action_fn_iname</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">RTDialogueLines::action_fn_iname</span></span>:<br/><a href="5-dli.html#SP3_8">§3.8</a>, <a href="5-dli.html#SP3_14">§3.14</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">dialogue_line</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dl</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">action_fn_iname</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">action_fn_iname</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP12" class="function-link"><span class="function-syntax">Hierarchy::make_iname_in</span></a><span class="plain-syntax">(</span><span class="constant-syntax">LINE_ACTION_FN_HL</span><span class="plain-syntax">, </span><a href="5-dli.html#SP1" class="function-link"><span class="function-syntax">RTDialogueLines::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dl</span><span class="plain-syntax">));</span>
|
||||
|
@ -141,12 +151,14 @@ function togglePopup(material_id) {
|
|||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTDialogueLines::line_compilation_agent</span><button class="popup" onclick="togglePopup('usagePopup7')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup7">Usage of <span class="code-font"><span class="function-syntax">RTDialogueLines::line_compilation_agent</span></span>:<br/><a href="5-dli.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">compilation_subtask</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ct</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTDialogueLines::line_compilation_agent</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">RTDialogueLines::line_compilation_agent</span></span>:<br/><a href="5-dli.html#SP2">§2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">compilation_subtask</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ct</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dialogue_line</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dl</span><span class="plain-syntax"> = </span><span class="identifier-syntax">RETRIEVE_POINTER_dialogue_line</span><span class="plain-syntax">(</span><span class="identifier-syntax">ct</span><span class="plain-syntax">-></span><span class="identifier-syntax">data</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">current_sentence</span><span class="plain-syntax"> = </span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">where_created</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">package_request</span><span class="plain-syntax"> *</span><span class="identifier-syntax">PR</span><span class="plain-syntax"> = </span><a href="5-dli.html#SP1" class="function-link"><span class="function-syntax">RTDialogueLines::package</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dl</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">array_iname</span><span class="plain-syntax"> = </span><a href="5-dli.html#SP1" class="function-link"><span class="function-syntax">RTDialogueLines::line_array_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dl</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">make_availability_function</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">make_speaker_function</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">make_mentioning_function</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">make_action_function</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">make_availability_function</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">make_speaker_function</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">make_interlocutor_function</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">make_mentioning_function</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">make_action_function</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">ending</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">, </span><span class="identifier-syntax">ending_finally</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">EW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">now_list</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NEW_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">parse_node</span><span class="plain-syntax">);</span>
|
||||
|
@ -167,8 +179,9 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><a href="2-ea.html#SP5" class="function-link"><span class="function-syntax">EmitArrays::end</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">make_availability_function</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="5-dli.html#SP3_10" class="named-paragraph-link"><span class="named-paragraph">Compile the available function</span><span class="named-paragraph-number">3.10</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">make_speaker_function</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="5-dli.html#SP3_11" class="named-paragraph-link"><span class="named-paragraph">Compile the speaker function</span><span class="named-paragraph-number">3.11</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">make_mentioning_function</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="5-dli.html#SP3_12" class="named-paragraph-link"><span class="named-paragraph">Compile the mentioning function</span><span class="named-paragraph-number">3.12</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">make_action_function</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="5-dli.html#SP3_13" class="named-paragraph-link"><span class="named-paragraph">Compile the action function</span><span class="named-paragraph-number">3.13</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">make_interlocutor_function</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="5-dli.html#SP3_12" class="named-paragraph-link"><span class="named-paragraph">Compile the interlocutor function</span><span class="named-paragraph-number">3.12</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">make_mentioning_function</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="5-dli.html#SP3_13" class="named-paragraph-link"><span class="named-paragraph">Compile the mentioning function</span><span class="named-paragraph-number">3.13</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">make_action_function</span><span class="plain-syntax">) </span><span class="named-paragraph-container code-font"><a href="5-dli.html#SP3_14" class="named-paragraph-link"><span class="named-paragraph">Compile the action function</span><span class="named-paragraph-number">3.14</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP3_1" class="paragraph-anchor"></a><b>§3.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Scan the clauses further</span><span class="named-paragraph-number">3.1</span></span><span class="comment-syntax"> =</span>
|
||||
|
@ -253,8 +266,14 @@ function togglePopup(material_id) {
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="identifier-syntax">interlocutor</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::iname_entry</span></a><span class="plain-syntax">(</span><a href="5-ins.html#SP1" class="function-link"><span class="function-syntax">RTInstances::value_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="identifier-syntax">interlocutor</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="identifier-syntax">interlocutor_description</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Rvalues::to_instance</span><span class="plain-syntax">(</span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="identifier-syntax">interlocutor_description</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::iname_entry</span></a><span class="plain-syntax">(</span><a href="5-ins.html#SP1" class="function-link"><span class="function-syntax">RTInstances::value_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">make_interlocutor_function</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::iname_entry</span></a><span class="plain-syntax">(</span><a href="5-dli.html#SP1" class="function-link"><span class="function-syntax">RTDialogueLines::interlocutor_fn_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dl</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::numeric_entry</span></a><span class="plain-syntax">(0);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -264,11 +283,25 @@ function togglePopup(material_id) {
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax"><s-literal>(dl-></span><span class="identifier-syntax">speech_text</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text</span><span class="plain-syntax"> = </span><span class="function-syntax"><<rp>></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CompileValues::to_array_entry_of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_text</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax"><quoted-text-with-subs>(dl-></span><span class="identifier-syntax">speech_text</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">stack_frame</span><span class="plain-syntax"> *</span><span class="identifier-syntax">frame</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Frames::new_nonphrasal</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">frame</span><span class="plain-syntax">-></span><span class="identifier-syntax">shared_variables</span><span class="plain-syntax"> = </span><span class="identifier-syntax">SharedVariables::new_access_list</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">AV_performing_dialogue</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">SharedVariables::add_set_to_access_list</span><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Frames::get_shared_variable_access_list</span><span class="plain-syntax">(),</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">AV_performing_dialogue</span><span class="plain-syntax">-></span><span class="identifier-syntax">activity_variables</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">text_substitution</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ts</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><a href="4-ts.html#SP5" class="function-link"><span class="function-syntax">TextSubstitutions::new_text_substitution</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="identifier-syntax">speech_text</span><span class="plain-syntax">, </span><span class="identifier-syntax">frame</span><span class="plain-syntax">, </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">, -1);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::iname_entry</span></a><span class="plain-syntax">(</span><a href="4-ts.html#SP4" class="function-link"><span class="function-syntax">TextSubstitutions::value_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">ts</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Frames::remove_nonphrase_stack_frame</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"somehow not a literal text"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax"><s-literal>(dl-></span><span class="identifier-syntax">speech_text</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">text</span><span class="plain-syntax"> = </span><span class="function-syntax"><<rp>></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"somehow not a literal text"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CompileValues::to_array_entry_of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_text</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-dli.html#SP3">§3</a>.</li></ul>
|
||||
|
@ -407,7 +440,44 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Functions::end</span><span class="plain-syntax">(</span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-dli.html#SP3">§3</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3_12" class="paragraph-anchor"></a><b>§3.12. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile the mentioning function</span><span class="named-paragraph-number">3.12</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP3_12" class="paragraph-anchor"></a><b>§3.12. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile the interlocutor function</span><span class="named-paragraph-number">3.12</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">packaging_state</span><span class="plain-syntax"> </span><span class="identifier-syntax">save</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Functions::begin</span><span class="plain-syntax">(</span><a href="5-dli.html#SP1" class="function-link"><span class="function-syntax">RTDialogueLines::interlocutor_fn_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">dl</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">local_variable</span><span class="plain-syntax"> *</span><span class="identifier-syntax">interlocutor</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LocalVariables::new_internal_commented</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="string-syntax">"interlocutor"</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"potential interlocutor"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_symbol</span><span class="plain-syntax"> *</span><span class="identifier-syntax">interlocutor_s</span><span class="plain-syntax"> = </span><span class="identifier-syntax">LocalVariables::declare</span><span class="plain-syntax">(</span><span class="identifier-syntax">interlocutor</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">desc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="identifier-syntax">interlocutor_description</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Rvalues::to_instance</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP13" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IF_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP13" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">EQ_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">interlocutor_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="5-ins.html#SP1" class="function-link"><span class="function-syntax">RTInstances::value_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">pcalc_prop</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prop</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Descriptions::to_proposition</span><span class="plain-syntax">(</span><span class="identifier-syntax">desc</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">prop</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TypecheckPropositions::type_check</span><span class="plain-syntax">(</span><span class="identifier-syntax">prop</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TypecheckPropositions::tc_no_problem_reporting</span><span class="plain-syntax">());</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CompilePropositions::to_test_as_condition</span><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Lvalues::new_LOCAL_VARIABLE</span><span class="plain-syntax">(</span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">, </span><span class="identifier-syntax">interlocutor</span><span class="plain-syntax">), </span><span class="identifier-syntax">prop</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"cannot test"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP5" class="function-link"><span class="function-syntax">EmitCode::code</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::rtrue</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::rfalse</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Functions::end</span><span class="plain-syntax">(</span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-dli.html#SP3">§3</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3_13" class="paragraph-anchor"></a><b>§3.13. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile the mentioning function</span><span class="named-paragraph-number">3.13</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -437,7 +507,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Functions::end</span><span class="plain-syntax">(</span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-dli.html#SP3">§3</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3_13" class="paragraph-anchor"></a><b>§3.13. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile the action function</span><span class="named-paragraph-number">3.13</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP3_14" class="paragraph-anchor"></a><b>§3.14. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile the action function</span><span class="named-paragraph-number">3.14</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -459,9 +529,9 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">clause</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">clause</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax">, </span><span class="identifier-syntax">now_list</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-dli.html#SP3_13_1" class="named-paragraph-link"><span class="named-paragraph">Take action on this now clause</span><span class="named-paragraph-number">3.13.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-dli.html#SP3_14_1" class="named-paragraph-link"><span class="named-paragraph">Take action on this now clause</span><span class="named-paragraph-number">3.14.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">ending</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-dli.html#SP3_13_3" class="named-paragraph-link"><span class="named-paragraph">Take action to end the story</span><span class="named-paragraph-number">3.13.3</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-dli.html#SP3_14_4" class="named-paragraph-link"><span class="named-paragraph">Take action to end the story</span><span class="named-paragraph-number">3.14.4</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -473,7 +543,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">clause</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">clause</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax">, </span><span class="identifier-syntax">before_list</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-dli.html#SP3_13_2" class="named-paragraph-link"><span class="named-paragraph">Take action on this action clause</span><span class="named-paragraph-number">3.13.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-dli.html#SP3_14_3" class="named-paragraph-link"><span class="named-paragraph">Take action on this action clause</span><span class="named-paragraph-number">3.14.3</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -485,7 +555,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">clause</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">clause</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax">, </span><span class="identifier-syntax">after_list</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-dli.html#SP3_13_2" class="named-paragraph-link"><span class="named-paragraph">Take action on this action clause</span><span class="named-paragraph-number">3.13.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-dli.html#SP3_14_3" class="named-paragraph-link"><span class="named-paragraph">Take action on this action clause</span><span class="named-paragraph-number">3.14.3</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -495,7 +565,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Functions::end</span><span class="plain-syntax">(</span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-dli.html#SP3">§3</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3_13_1" class="paragraph-anchor"></a><b>§3.13.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Take action on this now clause</span><span class="named-paragraph-number">3.13.1</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary firstcommentary"><a id="SP3_14_1" class="paragraph-anchor"></a><b>§3.14.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Take action on this now clause</span><span class="named-paragraph-number">3.14.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -504,14 +574,27 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">NW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax"><dialogue-line-clause></span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CompileBlocksAndLines::compile_a_now</span><span class="plain-syntax">(</span><span class="identifier-syntax">NW</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-dli.html#SP3_13">§3.13</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3_13_2" class="paragraph-anchor"></a><b>§3.13.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Take action on this action clause</span><span class="named-paragraph-number">3.13.2</span></span><span class="comment-syntax"> =</span>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-dli.html#SP3_14">§3.14</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3_14_2" class="paragraph-anchor"></a><b>§3.14.2. </b></p>
|
||||
|
||||
<pre class="Preform-displayed-code all-displayed-code code-font">
|
||||
<span class="Preform-function-syntax"><silently-modifier></span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">::=</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">silently</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">|</span>
|
||||
<span class="Preform-plain-syntax"> </span><span class="Preform-reserved-syntax">...</span><span class="Preform-plain-syntax"> </span><span class="Preform-constant-syntax">silently</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This is <a href="../words-module/4-ap.html" class="internal">Preform grammar</a>, not regular C code.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3_14_3" class="paragraph-anchor"></a><b>§3.14.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Take action on this action clause</span><span class="named-paragraph-number">3.14.3</span></span><span class="Preform-comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">CW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">clause</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="function-syntax"><dialogue-line-clause></span><span class="plain-syntax">(</span><span class="identifier-syntax">CW</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">AW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax"><dialogue-line-clause></span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">silently</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax"><silently-modifier></span><span class="plain-syntax">(</span><span class="identifier-syntax">AW</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">silently</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">AW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">GET_RW</span><span class="plain-syntax">(</span><span class="function-syntax"><silently-modifier></span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="function-syntax"><s-action-pattern-as-value></span><span class="plain-syntax">(</span><span class="identifier-syntax">AW</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">supplied</span><span class="plain-syntax"> = </span><span class="function-syntax"><<rp>></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Dash::check_value</span><span class="plain-syntax">(</span><span class="identifier-syntax">supplied</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_stored_action</span><span class="plain-syntax">)) {</span>
|
||||
|
@ -522,11 +605,12 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Dash::check_value</span><span class="plain-syntax">(</span><span class="identifier-syntax">actor</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_object</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ea</span><span class="plain-syntax">-></span><span class="identifier-syntax">actor</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Lvalues::new_LOCAL_VARIABLE</span><span class="plain-syntax">(</span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">, </span><span class="identifier-syntax">speaker</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CompileRvalues::compile_explicit_action</span><span class="plain-syntax">(</span><span class="identifier-syntax">ea</span><span class="plain-syntax">, </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CSIInline::compile_try_action</span><span class="plain-syntax">(</span><span class="identifier-syntax">ea</span><span class="plain-syntax">, </span><span class="identifier-syntax">silently</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP13" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">STORED_ACTION_TY_TRY_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">CompileValues::to_code_val_of_kind</span><span class="plain-syntax">(</span><span class="identifier-syntax">supplied</span><span class="plain-syntax">, </span><span class="identifier-syntax">K_stored_action</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">silently</span><span class="plain-syntax">) </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_true</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP13" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IF_BIP</span><span class="plain-syntax">);</span>
|
||||
|
@ -555,8 +639,8 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Problems::issue_problem_end</span><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-dli.html#SP3_13">§3.13</a> (twice).</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3_13_3" class="paragraph-anchor"></a><b>§3.13.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Take action to end the story</span><span class="named-paragraph-number">3.13.3</span></span><span class="comment-syntax"> =</span>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-dli.html#SP3_14">§3.14</a> (twice).</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3_14_4" class="paragraph-anchor"></a><b>§3.14.4. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Take action to end the story</span><span class="named-paragraph-number">3.14.4</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -590,11 +674,11 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-dli.html#SP3_13">§3.13</a>.</li></ul>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-dli.html#SP3_14">§3.14</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP4" class="paragraph-anchor"></a><b>§4. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="function-syntax">RTDialogueLines::speaker_instance</span><button class="popup" onclick="togglePopup('usagePopup8')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup8">Usage of <span class="code-font"><span class="function-syntax">RTDialogueLines::speaker_instance</span></span>:<br/>Dialogue Beat Instances - <a href="5-dbi.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">dialogue_line</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dl</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="function-syntax">RTDialogueLines::speaker_instance</span><button class="popup" onclick="togglePopup('usagePopup9')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup9">Usage of <span class="code-font"><span class="function-syntax">RTDialogueLines::speaker_instance</span></span>:<br/>Dialogue Beat Instances - <a href="5-dbi.html#SP5">§5</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">dialogue_line</span><span class="plain-syntax"> *</span><span class="identifier-syntax">dl</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">dl</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="identifier-syntax">speaker_description</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">Rvalues::to_instance</span><span class="plain-syntax">(</span><span class="identifier-syntax">dl</span><span class="plain-syntax">-></span><span class="identifier-syntax">speaker_description</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -86,7 +86,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">icd</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTInstances::value_iname</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">RTInstances::value_iname</span></span>:<br/><a href="5-ins.html#SP4">§4</a>, <a href="5-ins.html#SP5">§5</a><br/>Default Values - <a href="2-dv.html#SP2_4">§2.4</a><br/>Instance Counting - <a href="2-ic.html#SP8">§8</a><br/>Short Names - <a href="2-sn.html#SP4_1">§4.1</a><br/>List Literals - <a href="4-ll.html#SP7_2">§7.2</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">§1</a><br/>Backdrop Instances - <a href="5-bi.html#SP2_1">§2.1</a><br/>Door Instances - <a href="5-di.html#SP3">§3</a>, <a href="5-di.html#SP5">§5</a>, <a href="5-di.html#SP6">§6</a><br/>Region Instances - <a href="5-ri.html#SP2">§2</a><br/>Scene Instances - <a href="5-si.html#SP1">§1</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP2_4">§2.4</a>, <a href="5-dbi.html#SP2_5_1_1">§2.5.1.1</a>, <a href="5-dbi.html#SP2_6_1">§2.6.1</a>, <a href="5-dbi.html#SP3">§3</a><br/>Dialogue - <a href="5-dli.html#SP3_3">§3.3</a>, <a href="5-dli.html#SP3_4">§3.4</a>, <a href="5-dli.html#SP3_6">§3.6</a>, <a href="5-dli.html#SP3_7">§3.7</a>, <a href="5-dli.html#SP3_11">§3.11</a>, <a href="5-dli.html#SP3_12">§3.12</a><br/>Dialogue Choice Instances - <a href="5-dci.html#SP3_4">§3.4</a><br/>Rulebooks - <a href="5-rlb.html#SP7_1">§7.1</a><br/>Kind Constructors - <a href="5-kc.html#SP10_8_3">§10.8.3</a><br/>Test Scripts - <a href="5-ts.html#SP4">§4</a><br/>The Player - <a href="6-tp.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP1">§1</a>, <a href="6-tm.html#SP2">§2</a><br/>Property Permissions - <a href="6-pp.html#SP1">§1</a>, <a href="6-pp.html#SP3">§3</a><br/>Mapping Hints - <a href="6-mh.html#SP1">§1</a><br/>Kind GPRs - <a href="7-kg.html#SP5_1_1_1">§5.1.1.1</a>, <a href="7-kg.html#SP5_1_1_2">§5.1.1.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">inter_name</span><span class="plain-syntax"> *</span><span class="function-syntax">RTInstances::value_iname</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">RTInstances::value_iname</span></span>:<br/><a href="5-ins.html#SP4">§4</a>, <a href="5-ins.html#SP5">§5</a><br/>Default Values - <a href="2-dv.html#SP2_4">§2.4</a><br/>Instance Counting - <a href="2-ic.html#SP8">§8</a><br/>Short Names - <a href="2-sn.html#SP4_1">§4.1</a><br/>List Literals - <a href="4-ll.html#SP7_2">§7.2</a><br/>Stored Action Literals - <a href="4-sal.html#SP1">§1</a><br/>Backdrop Instances - <a href="5-bi.html#SP2_1">§2.1</a><br/>Door Instances - <a href="5-di.html#SP3">§3</a>, <a href="5-di.html#SP5">§5</a>, <a href="5-di.html#SP6">§6</a><br/>Region Instances - <a href="5-ri.html#SP2">§2</a><br/>Scene Instances - <a href="5-si.html#SP1">§1</a><br/>Dialogue Beat Instances - <a href="5-dbi.html#SP1">§1</a>, <a href="5-dbi.html#SP2">§2</a>, <a href="5-dbi.html#SP2_4">§2.4</a>, <a href="5-dbi.html#SP2_5">§2.5</a>, <a href="5-dbi.html#SP2_6_1_1">§2.6.1.1</a>, <a href="5-dbi.html#SP2_7_1">§2.7.1</a>, <a href="5-dbi.html#SP3">§3</a><br/>Dialogue - <a href="5-dli.html#SP3_3">§3.3</a>, <a href="5-dli.html#SP3_4">§3.4</a>, <a href="5-dli.html#SP3_6">§3.6</a>, <a href="5-dli.html#SP3_7">§3.7</a>, <a href="5-dli.html#SP3_11">§3.11</a>, <a href="5-dli.html#SP3_12">§3.12</a>, <a href="5-dli.html#SP3_13">§3.13</a><br/>Dialogue Choice Instances - <a href="5-dci.html#SP3_4">§3.4</a><br/>Rulebooks - <a href="5-rlb.html#SP7_1">§7.1</a><br/>Kind Constructors - <a href="5-kc.html#SP10_8_3">§10.8.3</a><br/>Test Scripts - <a href="5-ts.html#SP4">§4</a><br/>The Player - <a href="6-tp.html#SP1">§1</a><br/>The Map - <a href="6-tm.html#SP1">§1</a>, <a href="6-tm.html#SP2">§2</a><br/>Property Permissions - <a href="6-pp.html#SP1">§1</a>, <a href="6-pp.html#SP3">§3</a><br/>Mapping Hints - <a href="6-mh.html#SP1">§1</a><br/>Kind GPRs - <a href="7-kg.html#SP5_1_1_1">§5.1.1.1</a>, <a href="7-kg.html#SP5_1_1_2">§5.1.1.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">instance</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">I</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">I</span><span class="plain-syntax">-></span><span class="identifier-syntax">compilation_data</span><span class="plain-syntax">.</span><span class="element-syntax">instance_iname</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
|
|
@ -80,12 +80,19 @@ the current <span class="extract"><span class="extract-syntax">location</span></
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">ends</span><span class="plain-syntax">[0].</span><span class="identifier-syntax">anchor_condition</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">INSTANCE_SCENE_STARTS_ON_CONDITION_MD_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">ends</span><span class="plain-syntax">[0].</span><span class="identifier-syntax">as_beat</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">INSTANCE_SCENE_STARTS_ON_BEAT_MD_HL</span><span class="plain-syntax">, </span><a href="5-dbi.html#SP1" class="function-link"><span class="function-syntax">RTDialogueBeats::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">ends</span><span class="plain-syntax">[0].</span><span class="identifier-syntax">as_beat</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">ends</span><span class="plain-syntax">[1].</span><span class="identifier-syntax">as_beat</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">INSTANCE_SCENE_ENDS_ON_BEAT_MD_HL</span><span class="plain-syntax">, </span><a href="5-dbi.html#SP1" class="function-link"><span class="function-syntax">RTDialogueBeats::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">ends</span><span class="plain-syntax">[1].</span><span class="identifier-syntax">as_beat</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inference_subject</span><span class="plain-syntax"> *</span><span class="identifier-syntax">subj</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Instances::as_subject</span><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">as_instance</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">PropertyInferences::either_or_state</span><span class="plain-syntax">(</span><span class="identifier-syntax">subj</span><span class="plain-syntax">, </span><span class="identifier-syntax">P_recurring</span><span class="plain-syntax">) > </span><span class="identifier-syntax">UNKNOWN_CE</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP23" class="function-link"><span class="function-syntax">Hierarchy::apply_metadata_from_number</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">pack</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">INSTANCE_SCENE_RECURS_MD_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">ways_to_end</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">e</span><span class="plain-syntax">=1; </span><span class="identifier-syntax">e</span><span class="function-syntax"><sc-></span><span class="identifier-syntax">no_ends</span><span class="plain-syntax">; </span><span class="identifier-syntax">e</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">ends</span><span class="plain-syntax">[</span><span class="identifier-syntax">e</span><span class="plain-syntax">].</span><span class="identifier-syntax">as_beat</span><span class="plain-syntax">) </span><span class="identifier-syntax">ways_to_end</span><span class="plain-syntax">++;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">ends</span><span class="plain-syntax">[</span><span class="identifier-syntax">e</span><span class="plain-syntax">].</span><span class="identifier-syntax">anchor_connectors</span><span class="plain-syntax">) </span><span class="identifier-syntax">ways_to_end</span><span class="plain-syntax">++;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">ends</span><span class="plain-syntax">[</span><span class="identifier-syntax">e</span><span class="plain-syntax">].</span><span class="identifier-syntax">anchor_condition</span><span class="plain-syntax">) </span><span class="identifier-syntax">ways_to_end</span><span class="plain-syntax">++;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -246,6 +253,10 @@ below.
|
|||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-si.html#SP4_1" class="named-paragraph-link"><span class="named-paragraph">Reparse the scene end condition in this new context</span><span class="named-paragraph-number">4.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-si.html#SP4_2" class="named-paragraph-link"><span class="named-paragraph">Compile code to test the scene end condition</span><span class="named-paragraph-number">4.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">dialogue_beat</span><span class="plain-syntax"> *</span><span class="identifier-syntax">db</span><span class="plain-syntax"> = </span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">ends</span><span class="plain-syntax">[</span><span class="identifier-syntax">end</span><span class="plain-syntax">].</span><span class="identifier-syntax">as_beat</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">db</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-si.html#SP4_3" class="named-paragraph-link"><span class="named-paragraph">Compile code to test the beat end condition</span><span class="named-paragraph-number">4.3</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP4_1" class="paragraph-anchor"></a><b>§4.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Reparse the scene end condition in this new context</span><span class="named-paragraph-number">4.1</span></span><span class="comment-syntax"> =</span>
|
||||
|
@ -295,6 +306,45 @@ instruction because we're not compiling a loop.)
|
|||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-si.html#SP4">§4</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP4_3" class="paragraph-anchor"></a><b>§4.3. </b>If the condition holds, we set the change flag <span class="extract"><span class="extract-syntax">ch</span></span> and abort the search
|
||||
through scenes by jumping past the run of tests. (We can't compile a break
|
||||
instruction because we're not compiling a loop.)
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile code to test the beat end condition</span><span class="named-paragraph-number">4.3</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP13" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">IF_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">end</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP13" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">DIRECTOR_BEAT_BEING_PERFORMED_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="5-dbi.html#SP1" class="function-link"><span class="function-syntax">RTDialogueBeats::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">ends</span><span class="plain-syntax">[</span><span class="identifier-syntax">end</span><span class="plain-syntax">].</span><span class="identifier-syntax">as_beat</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">end</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP13" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">EQ_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP13" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">DIRECTOR_BEAT_BEING_PERFORMED_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="5-dbi.html#SP1" class="function-link"><span class="function-syntax">RTDialogueBeats::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">ends</span><span class="plain-syntax">[</span><span class="identifier-syntax">end</span><span class="plain-syntax">].</span><span class="identifier-syntax">as_beat</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_number</span></a><span class="plain-syntax">(0);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"only ends 0 and 1 can be tied to a beat"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP5" class="function-link"><span class="function-syntax">EmitCode::code</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP13" class="function-link"><span class="function-syntax">EmitCode::inv</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">STORE_BIP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP12" class="function-link"><span class="function-syntax">EmitCode::ref_symbol</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><span class="identifier-syntax">ch_s</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_number</span></a><span class="plain-syntax">(1);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="5-si.html#SP5" class="function-link"><span class="function-syntax">RTScenes::compile_scene_end</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">, </span><span class="identifier-syntax">end</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP14" class="function-link"><span class="function-syntax">EmitCode::rtrue</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-si.html#SP4">§4</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>§5. </b>That's everything except for the consequences of a scene end occurring.
|
||||
Code for that is generated here.
|
||||
</p>
|
||||
|
@ -307,7 +357,7 @@ for this purpose.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTScenes::compile_scene_end</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">RTScenes::compile_scene_end</span></span>:<br/><a href="5-si.html#SP4">§4</a>, <a href="5-si.html#SP4_2">§4.2</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">end</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTScenes::compile_scene_end</span><button class="popup" onclick="togglePopup('usagePopup4')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup4">Usage of <span class="code-font"><span class="function-syntax">RTScenes::compile_scene_end</span></span>:<br/><a href="5-si.html#SP4">§4</a>, <a href="5-si.html#SP4_2">§4.2</a>, <a href="5-si.html#SP4_3">§4.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">end</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sc2</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">sc2</span><span class="plain-syntax">, </span><span class="identifier-syntax">scene</span><span class="plain-syntax">) </span><span class="identifier-syntax">sc2</span><span class="plain-syntax">-></span><span class="identifier-syntax">marker</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="5-si.html#SP6" class="function-link"><span class="function-syntax">RTScenes::compile_scene_end_r</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">, </span><span class="identifier-syntax">end</span><span class="plain-syntax">);</span>
|
||||
|
@ -335,7 +385,7 @@ take effect first.
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-si.html#SP6_4" class="named-paragraph-link"><span class="named-paragraph">Compile code to print text in response to the SCENES command</span><span class="named-paragraph-number">6.4</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-si.html#SP6_1" class="named-paragraph-link"><span class="named-paragraph">Compile code to update the scene status</span><span class="named-paragraph-number">6.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-si.html#SP6_2" class="named-paragraph-link"><span class="named-paragraph">Compile code to run the scene end rulebooks</span><span class="named-paragraph-number">6.2</span></a></span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-si.html#SP6_2" class="named-paragraph-link"><span class="named-paragraph">Compile code to run the scene end rulebooks</span><span class="named-paragraph-number">6.2</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-si.html#SP6_3" class="named-paragraph-link"><span class="named-paragraph">Compile code to update the arrays recording most recent scene ending</span><span class="named-paragraph-number">6.3</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="5-si.html#SP6_5" class="named-paragraph-link"><span class="named-paragraph">Compile code to cause consequent scene ends</span><span class="named-paragraph-number">6.5</span></a></span><span class="plain-syntax">;</span>
|
||||
|
||||
|
@ -435,6 +485,12 @@ end actually occurred.)
|
|||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_number</span></a><span class="plain-syntax">((</span><span class="identifier-syntax">inter_ti</span><span class="plain-syntax">) (</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax"> + </span><span class="constant-syntax">1</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">end</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">ends</span><span class="plain-syntax">[0].</span><span class="identifier-syntax">as_beat</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP13" class="function-link"><span class="function-syntax">EmitCode::call</span></a><span class="plain-syntax">(</span><a href="2-hrr.html#SP11" class="function-link"><span class="function-syntax">Hierarchy::find</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">DIRECTOR_PERFORM_TIED_BEAT_HL</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::down</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP7" class="function-link"><span class="function-syntax">EmitCode::val_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">K_value</span><span class="plain-syntax">, </span><a href="5-dbi.html#SP1" class="function-link"><span class="function-syntax">RTDialogueBeats::iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">-></span><span class="identifier-syntax">ends</span><span class="plain-syntax">[0].</span><span class="identifier-syntax">as_beat</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ec.html#SP3" class="function-link"><span class="function-syntax">EmitCode::up</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="5-si.html#SP6">§6</a> (twice).</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP6_3" class="paragraph-anchor"></a><b>§6.3. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Compile code to update the arrays recording most recent scene ending</span><span class="named-paragraph-number">6.3</span></span><span class="comment-syntax"> =</span>
|
||||
|
|
|
@ -67,7 +67,8 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><a href="6-tp.html#SP1" class="function-link"><span class="function-syntax">RTPlayer::InitialSituation_define</span></a><span class="plain-syntax">(</span><span class="constant-syntax">START_OBJECT_INIS_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="6-tp.html#SP1" class="function-link"><span class="function-syntax">RTPlayer::InitialSituation_define</span></a><span class="plain-syntax">(</span><span class="constant-syntax">START_ROOM_INIS_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="6-tp.html#SP1" class="function-link"><span class="function-syntax">RTPlayer::InitialSituation_define</span></a><span class="plain-syntax">(</span><span class="constant-syntax">START_TIME_INIS_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">3</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="6-tp.html#SP1" class="function-link"><span class="function-syntax">RTPlayer::InitialSituation_define</span></a><span class="plain-syntax">(</span><span class="constant-syntax">DONE_INIS_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="6-tp.html#SP1" class="function-link"><span class="function-syntax">RTPlayer::InitialSituation_define</span></a><span class="plain-syntax">(</span><span class="constant-syntax">START_BEAT_INIS_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">4</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="6-tp.html#SP1" class="function-link"><span class="function-syntax">RTPlayer::InitialSituation_define</span></a><span class="plain-syntax">(</span><span class="constant-syntax">DONE_INIS_HL</span><span class="plain-syntax">, </span><span class="constant-syntax">5</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">RTPlayer::InitialSituation</span><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
|
@ -79,6 +80,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">start_room</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::numeric_entry</span></a><span class="plain-syntax">(0);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::iname_entry</span></a><span class="plain-syntax">(</span><a href="5-ins.html#SP1" class="function-link"><span class="function-syntax">RTInstances::value_iname</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">start_room</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><a href="5-vrb.html#SP15" class="function-link"><span class="function-syntax">RTVariables::initial_value_as_array_entry</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">time_of_day_VAR</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="5-dbi.html#SP2" class="function-link"><span class="function-syntax">RTDialogueBeats::compile_starting_beat_entry</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP4" class="function-link"><span class="function-syntax">EmitArrays::numeric_entry</span></a><span class="plain-syntax">(0);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ea.html#SP5" class="function-link"><span class="function-syntax">EmitArrays::end</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">save</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-hrr.html#SP17" class="function-link"><span class="function-syntax">Hierarchy::make_available</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">iname</span><span class="plain-syntax">);</span>
|
||||
|
|
|
@ -51,7 +51,7 @@
|
|||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../extensions.html">Extensions</a></li><li><a href="index.html">srules</a></li><li><b>Activities</b></li></ul></div>
|
||||
<p class="purpose">The built-in activities and their default stock of rules; and in particular, the locale description mechanism.</p>
|
||||
|
||||
<ul class="toc"><li><a href="S-act.html#SP2">§2. Issuing responses</a></li><li><a href="S-act.html#SP3">§3. Naming and listing</a></li><li><a href="S-act.html#SP10">§10. Parsing activites</a></li><li><a href="S-act.html#SP15">§15. Posthumous activities</a></li><li><a href="S-act.html#SP22">§22. Locale activities</a></li><li><a href="S-act.html#SP23">§23. Locale Implementation</a></li><li><a href="S-act.html#SP24">§24. Printing the Locale Description</a></li><li><a href="S-act.html#SP25">§25. Choosing Notable Locale Objects</a></li><li><a href="S-act.html#SP26">§26. Printing a Locale Paragraph</a></li></ul><hr class="tocbar">
|
||||
<ul class="toc"><li><a href="S-act.html#SP2">§2. Issuing responses</a></li><li><a href="S-act.html#SP3">§3. Naming and listing</a></li><li><a href="S-act.html#SP10">§10. Parsing activites</a></li><li><a href="S-act.html#SP15">§15. Posthumous activities</a></li><li><a href="S-act.html#SP22">§22. Locale activities</a></li><li><a href="S-act.html#SP23">§23. Locale Implementation</a></li><li><a href="S-act.html#SP24">§24. Printing the Locale Description</a></li><li><a href="S-act.html#SP25">§25. Choosing Notable Locale Objects</a></li><li><a href="S-act.html#SP26">§26. Printing a Locale Paragraph</a></li><li><a href="S-act.html#SP27">§27. Dialogue support</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b>These must not be created until the basic rulebooks are in place, because
|
||||
creating any activity automatically creates three rulebooks as well.
|
||||
|
@ -794,6 +794,43 @@ in March 2008.
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">say</span><span class="plain-syntax"> </span><span class="string-syntax">".[paragraph break]"</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">continue</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">activity</span><span class="plain-syntax">.</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP27" class="paragraph-anchor"></a><b>§27. Dialogue support. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">Section</span><span class="plain-syntax"> </span><span class="constant-syntax">8</span><span class="plain-syntax"> - </span><span class="identifier-syntax">Dialogue</span><span class="plain-syntax"> (</span><span class="identifier-syntax">for</span><span class="plain-syntax"> </span><span class="identifier-syntax">dialogue</span><span class="plain-syntax"> </span><span class="identifier-syntax">language</span><span class="plain-syntax"> </span><span class="identifier-syntax">element</span><span class="plain-syntax"> </span><span class="identifier-syntax">only</span><span class="plain-syntax">)</span>
|
||||
|
||||
<span class="identifier-syntax">Offering</span><span class="plain-syntax"> </span><span class="identifier-syntax">something</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">an</span><span class="plain-syntax"> </span><span class="identifier-syntax">activity</span><span class="plain-syntax"> </span><span class="identifier-syntax">on</span><span class="plain-syntax"> </span><span class="identifier-syntax">lists</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">dialogue</span><span class="plain-syntax"> </span><span class="identifier-syntax">choices</span><span class="plain-syntax">.</span>
|
||||
|
||||
<span class="identifier-syntax">For</span><span class="plain-syntax"> </span><span class="identifier-syntax">offering</span><span class="plain-syntax"> </span><span class="identifier-syntax">a</span><span class="plain-syntax"> </span><span class="identifier-syntax">list</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">dialogue</span><span class="plain-syntax"> </span><span class="identifier-syntax">choices</span><span class="plain-syntax"> (</span><span class="identifier-syntax">called</span><span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">this</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">default</span><span class="plain-syntax"> </span><span class="identifier-syntax">offering</span><span class="plain-syntax"> </span><span class="identifier-syntax">dialogue</span><span class="plain-syntax"> </span><span class="identifier-syntax">choices</span><span class="plain-syntax"> </span><span class="identifier-syntax">rule</span><span class="plain-syntax">):</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">let</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax"> </span><span class="identifier-syntax">be</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">repeat</span><span class="plain-syntax"> </span><span class="identifier-syntax">with</span><span class="plain-syntax"> </span><span class="identifier-syntax">C</span><span class="plain-syntax"> </span><span class="identifier-syntax">running</span><span class="plain-syntax"> </span><span class="identifier-syntax">through</span><span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="plain-syntax">:</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">say</span><span class="plain-syntax"> </span><span class="string-syntax">"([N]) [textual content of C][line break]"</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">increase</span><span class="plain-syntax"> </span><span class="identifier-syntax">N</span><span class="plain-syntax"> </span><span class="identifier-syntax">by</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span><span class="plain-syntax">.</span>
|
||||
|
||||
<span class="identifier-syntax">Performing</span><span class="plain-syntax"> </span><span class="identifier-syntax">something</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">an</span><span class="plain-syntax"> </span><span class="identifier-syntax">activity</span><span class="plain-syntax"> </span><span class="identifier-syntax">on</span><span class="plain-syntax"> </span><span class="identifier-syntax">dialogue</span><span class="plain-syntax"> </span><span class="identifier-syntax">lines</span><span class="plain-syntax">.</span>
|
||||
|
||||
<span class="identifier-syntax">The</span><span class="plain-syntax"> </span><span class="identifier-syntax">performing</span><span class="plain-syntax"> </span><span class="identifier-syntax">activity</span><span class="plain-syntax"> </span><span class="identifier-syntax">has</span><span class="plain-syntax"> </span><span class="identifier-syntax">an</span><span class="plain-syntax"> </span><span class="identifier-syntax">object</span><span class="plain-syntax"> </span><span class="identifier-syntax">called</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">speaker</span><span class="plain-syntax">.</span>
|
||||
|
||||
<span class="identifier-syntax">The</span><span class="plain-syntax"> </span><span class="identifier-syntax">performing</span><span class="plain-syntax"> </span><span class="identifier-syntax">activity</span><span class="plain-syntax"> </span><span class="identifier-syntax">has</span><span class="plain-syntax"> </span><span class="identifier-syntax">an</span><span class="plain-syntax"> </span><span class="identifier-syntax">object</span><span class="plain-syntax"> </span><span class="identifier-syntax">called</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">interlocutor</span><span class="plain-syntax">.</span>
|
||||
|
||||
<span class="identifier-syntax">The</span><span class="plain-syntax"> </span><span class="identifier-syntax">performing</span><span class="plain-syntax"> </span><span class="identifier-syntax">activity</span><span class="plain-syntax"> </span><span class="identifier-syntax">has</span><span class="plain-syntax"> </span><span class="identifier-syntax">a</span><span class="plain-syntax"> </span><span class="identifier-syntax">performance</span><span class="plain-syntax"> </span><span class="identifier-syntax">style</span><span class="plain-syntax"> </span><span class="identifier-syntax">called</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">style</span><span class="plain-syntax">.</span>
|
||||
|
||||
<span class="identifier-syntax">Before</span><span class="plain-syntax"> </span><span class="identifier-syntax">performing</span><span class="plain-syntax"> </span><span class="identifier-syntax">a</span><span class="plain-syntax"> </span><span class="identifier-syntax">dialogue</span><span class="plain-syntax"> </span><span class="identifier-syntax">line</span><span class="plain-syntax">:</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">now</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">speaker</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">current</span><span class="plain-syntax"> </span><span class="identifier-syntax">dialogue</span><span class="plain-syntax"> </span><span class="identifier-syntax">line</span><span class="plain-syntax"> </span><span class="identifier-syntax">speaker</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">now</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">interlocutor</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">current</span><span class="plain-syntax"> </span><span class="identifier-syntax">dialogue</span><span class="plain-syntax"> </span><span class="identifier-syntax">line</span><span class="plain-syntax"> </span><span class="identifier-syntax">interlocutor</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">now</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">style</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">current</span><span class="plain-syntax"> </span><span class="identifier-syntax">dialogue</span><span class="plain-syntax"> </span><span class="identifier-syntax">line</span><span class="plain-syntax"> </span><span class="identifier-syntax">style</span><span class="plain-syntax">.</span>
|
||||
|
||||
<span class="identifier-syntax">For</span><span class="plain-syntax"> </span><span class="identifier-syntax">performing</span><span class="plain-syntax"> </span><span class="identifier-syntax">a</span><span class="plain-syntax"> </span><span class="identifier-syntax">dialogue</span><span class="plain-syntax"> </span><span class="identifier-syntax">line</span><span class="plain-syntax"> (</span><span class="identifier-syntax">called</span><span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">this</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">default</span><span class="plain-syntax"> </span><span class="identifier-syntax">dialogue</span><span class="plain-syntax"> </span><span class="identifier-syntax">performance</span><span class="plain-syntax"> </span><span class="identifier-syntax">rule</span><span class="plain-syntax">):</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">if</span><span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">narrated</span><span class="plain-syntax"> </span><span class="identifier-syntax">or</span><span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">elaborated</span><span class="plain-syntax"> </span><span class="identifier-syntax">or</span><span class="plain-syntax"> </span><span class="identifier-syntax">L</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">non</span><span class="plain-syntax">-</span><span class="identifier-syntax">verbal</span><span class="plain-syntax">:</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">say</span><span class="plain-syntax"> </span><span class="string-syntax">"[textual content of L][line break]"</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">otherwise</span><span class="plain-syntax">:</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">say</span><span class="plain-syntax"> </span><span class="string-syntax">"[The speaker]"</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">if</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">interlocutor</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">something</span><span class="plain-syntax">:</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">say</span><span class="plain-syntax"> </span><span class="string-syntax">" (to [the interlocutor])"</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">say</span><span class="plain-syntax"> </span><span class="string-syntax">": '[textual content of L]'[line break]"</span><span class="plain-syntax">.</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="S-var.html">❮</a></li><li class="progresssection"><a href="S-prm.html">prm</a></li><li class="progresssection"><a href="S-pwm.html">pwm</a></li><li class="progresssection"><a href="S-var.html">var</a></li><li class="progresscurrent">act</li><li class="progresssection"><a href="S-act2.html">act2</a></li><li class="progresssection"><a href="S-cg.html">cg</a></li><li class="progresssection"><a href="S-pd.html">pd</a></li><li class="progressnext"><a href="S-act2.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
|
|
@ -132,6 +132,7 @@ no built-in verbs "to see" or "to touch".
|
|||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">The</span><span class="plain-syntax"> </span><span class="identifier-syntax">verb</span><span class="plain-syntax"> </span><span class="identifier-syntax">to</span><span class="plain-syntax"> </span><span class="identifier-syntax">be</span><span class="plain-syntax"> </span><span class="identifier-syntax">able</span><span class="plain-syntax"> </span><span class="identifier-syntax">to</span><span class="plain-syntax"> </span><span class="identifier-syntax">see</span><span class="plain-syntax"> </span><span class="identifier-syntax">means</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">visibility</span><span class="plain-syntax"> </span><span class="identifier-syntax">relation</span><span class="plain-syntax">.</span>
|
||||
<span class="identifier-syntax">The</span><span class="plain-syntax"> </span><span class="identifier-syntax">verb</span><span class="plain-syntax"> </span><span class="identifier-syntax">to</span><span class="plain-syntax"> </span><span class="identifier-syntax">be</span><span class="plain-syntax"> </span><span class="identifier-syntax">able</span><span class="plain-syntax"> </span><span class="identifier-syntax">to</span><span class="plain-syntax"> </span><span class="identifier-syntax">hear</span><span class="plain-syntax"> </span><span class="identifier-syntax">means</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">audibility</span><span class="plain-syntax"> </span><span class="identifier-syntax">relation</span><span class="plain-syntax">.</span>
|
||||
<span class="identifier-syntax">The</span><span class="plain-syntax"> </span><span class="identifier-syntax">verb</span><span class="plain-syntax"> </span><span class="identifier-syntax">to</span><span class="plain-syntax"> </span><span class="identifier-syntax">be</span><span class="plain-syntax"> </span><span class="identifier-syntax">able</span><span class="plain-syntax"> </span><span class="identifier-syntax">to</span><span class="plain-syntax"> </span><span class="identifier-syntax">touch</span><span class="plain-syntax"> </span><span class="identifier-syntax">means</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">touchability</span><span class="plain-syntax"> </span><span class="identifier-syntax">relation</span><span class="plain-syntax">.</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP6" class="paragraph-anchor"></a><b>§6. </b>The special status of the player as the sensory focus, so to speak, is
|
||||
|
|
|
@ -1384,6 +1384,8 @@ some response texts can be hung.
|
|||
<span class="identifier-syntax">unperformed</span><span class="plain-syntax">.</span>
|
||||
<span class="identifier-syntax">A</span><span class="plain-syntax"> </span><span class="identifier-syntax">dialogue</span><span class="plain-syntax"> </span><span class="identifier-syntax">line</span><span class="plain-syntax"> </span><span class="identifier-syntax">can</span><span class="plain-syntax"> </span><span class="identifier-syntax">be</span><span class="plain-syntax"> </span><span class="identifier-syntax">recurring</span><span class="plain-syntax"> </span><span class="identifier-syntax">or</span><span class="plain-syntax"> </span><span class="identifier-syntax">non</span><span class="plain-syntax">-</span><span class="identifier-syntax">recurring</span><span class="plain-syntax">. </span><span class="identifier-syntax">A</span><span class="plain-syntax"> </span><span class="identifier-syntax">dialogue</span><span class="plain-syntax"> </span><span class="identifier-syntax">line</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">usually</span>
|
||||
<span class="identifier-syntax">non</span><span class="plain-syntax">-</span><span class="identifier-syntax">recurring</span><span class="plain-syntax">.</span>
|
||||
<span class="identifier-syntax">A</span><span class="plain-syntax"> </span><span class="identifier-syntax">dialogue</span><span class="plain-syntax"> </span><span class="identifier-syntax">line</span><span class="plain-syntax"> </span><span class="identifier-syntax">can</span><span class="plain-syntax"> </span><span class="identifier-syntax">be</span><span class="plain-syntax"> </span><span class="identifier-syntax">elaborated</span><span class="plain-syntax"> </span><span class="identifier-syntax">or</span><span class="plain-syntax"> </span><span class="identifier-syntax">unelaborated</span><span class="plain-syntax">. </span><span class="identifier-syntax">A</span><span class="plain-syntax"> </span><span class="identifier-syntax">dialogue</span><span class="plain-syntax"> </span><span class="identifier-syntax">line</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">usually</span>
|
||||
<span class="identifier-syntax">unelaborated</span><span class="plain-syntax">.</span>
|
||||
|
||||
<span class="identifier-syntax">A</span><span class="plain-syntax"> </span><span class="identifier-syntax">dialogue</span><span class="plain-syntax"> </span><span class="identifier-syntax">choice</span><span class="plain-syntax"> </span><span class="identifier-syntax">can</span><span class="plain-syntax"> </span><span class="identifier-syntax">be</span><span class="plain-syntax"> </span><span class="identifier-syntax">performed</span><span class="plain-syntax"> </span><span class="identifier-syntax">or</span><span class="plain-syntax"> </span><span class="identifier-syntax">unperformed</span><span class="plain-syntax">. </span><span class="identifier-syntax">A</span><span class="plain-syntax"> </span><span class="identifier-syntax">dialogue</span><span class="plain-syntax"> </span><span class="identifier-syntax">choice</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">usually</span>
|
||||
<span class="identifier-syntax">unperformed</span><span class="plain-syntax">.</span>
|
||||
|
@ -1400,14 +1402,26 @@ some response texts can be hung.
|
|||
<span class="plain-syntax"> (- </span><span class="identifier-syntax">DirectorLiveSubjectList</span><span class="plain-syntax">({-</span><span class="identifier-syntax">new</span><span class="plain-syntax">:</span><span class="identifier-syntax">list</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">objects</span><span class="plain-syntax">}) -).</span>
|
||||
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">alter</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">live</span><span class="plain-syntax"> </span><span class="identifier-syntax">conversational</span><span class="plain-syntax"> </span><span class="identifier-syntax">subject</span><span class="plain-syntax"> </span><span class="identifier-syntax">list</span><span class="plain-syntax"> </span><span class="identifier-syntax">to</span><span class="plain-syntax"> (</span><span class="identifier-syntax">L</span><span class="plain-syntax"> - </span><span class="identifier-syntax">list</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">objects</span><span class="plain-syntax">):</span>
|
||||
<span class="plain-syntax"> (- </span><span class="identifier-syntax">DirectorAlterLiveSubjectList</span><span class="plain-syntax">({-</span><span class="identifier-syntax">by</span><span class="plain-syntax">-</span><span class="identifier-syntax">reference</span><span class="plain-syntax">:</span><span class="identifier-syntax">L</span><span class="plain-syntax">}); -).</span>
|
||||
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">decide</span><span class="plain-syntax"> </span><span class="identifier-syntax">what</span><span class="plain-syntax"> </span><span class="identifier-syntax">list</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">objects</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">list</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">speakers</span><span class="plain-syntax"> </span><span class="identifier-syntax">required</span><span class="plain-syntax"> </span><span class="identifier-syntax">by</span><span class="plain-syntax"> (</span><span class="identifier-syntax">B</span><span class="plain-syntax"> - </span><span class="identifier-syntax">dialogue</span><span class="plain-syntax"> </span><span class="identifier-syntax">beat</span><span class="plain-syntax">):</span>
|
||||
<span class="plain-syntax"> (- </span><span class="identifier-syntax">DirectorLiveRequiredList</span><span class="plain-syntax">({-</span><span class="identifier-syntax">new</span><span class="plain-syntax">:</span><span class="identifier-syntax">list</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> </span><span class="identifier-syntax">objects</span><span class="plain-syntax">}, {</span><span class="identifier-syntax">B</span><span class="plain-syntax">}) -).</span>
|
||||
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">decide</span><span class="plain-syntax"> </span><span class="identifier-syntax">what</span><span class="plain-syntax"> </span><span class="identifier-syntax">text</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">textual</span><span class="plain-syntax"> </span><span class="identifier-syntax">content</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> (</span><span class="identifier-syntax">L</span><span class="plain-syntax"> - </span><span class="identifier-syntax">dialogue</span><span class="plain-syntax"> </span><span class="identifier-syntax">line</span><span class="plain-syntax">):</span>
|
||||
<span class="plain-syntax"> (- </span><span class="identifier-syntax">DirectorLineContent</span><span class="plain-syntax">({</span><span class="identifier-syntax">L</span><span class="plain-syntax">}, {-</span><span class="identifier-syntax">new</span><span class="plain-syntax">:</span><span class="identifier-syntax">text</span><span class="plain-syntax">}) -).</span>
|
||||
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">decide</span><span class="plain-syntax"> </span><span class="identifier-syntax">what</span><span class="plain-syntax"> </span><span class="identifier-syntax">text</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">textual</span><span class="plain-syntax"> </span><span class="identifier-syntax">content</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> (</span><span class="identifier-syntax">C</span><span class="plain-syntax"> - </span><span class="identifier-syntax">dialogue</span><span class="plain-syntax"> </span><span class="identifier-syntax">choice</span><span class="plain-syntax">):</span>
|
||||
<span class="plain-syntax"> (- </span><span class="identifier-syntax">DirectorChoiceContent</span><span class="plain-syntax">({</span><span class="identifier-syntax">C</span><span class="plain-syntax">}, {-</span><span class="identifier-syntax">new</span><span class="plain-syntax">:</span><span class="identifier-syntax">text</span><span class="plain-syntax">}) -).</span>
|
||||
|
||||
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">decide</span><span class="plain-syntax"> </span><span class="identifier-syntax">what</span><span class="plain-syntax"> </span><span class="identifier-syntax">object</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">current</span><span class="plain-syntax"> </span><span class="identifier-syntax">dialogue</span><span class="plain-syntax"> </span><span class="identifier-syntax">line</span><span class="plain-syntax"> </span><span class="identifier-syntax">speaker</span><span class="plain-syntax">:</span>
|
||||
<span class="plain-syntax"> (- </span><span class="identifier-syntax">DirectorCurrentLineSpeaker</span><span class="plain-syntax">() -).</span>
|
||||
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">decide</span><span class="plain-syntax"> </span><span class="identifier-syntax">what</span><span class="plain-syntax"> </span><span class="identifier-syntax">object</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">current</span><span class="plain-syntax"> </span><span class="identifier-syntax">dialogue</span><span class="plain-syntax"> </span><span class="identifier-syntax">line</span><span class="plain-syntax"> </span><span class="identifier-syntax">interlocutor</span><span class="plain-syntax">:</span>
|
||||
<span class="plain-syntax"> (- </span><span class="identifier-syntax">DirectorCurrentLineInterlocutor</span><span class="plain-syntax">() -).</span>
|
||||
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">decide</span><span class="plain-syntax"> </span><span class="identifier-syntax">what</span><span class="plain-syntax"> </span><span class="identifier-syntax">performance</span><span class="plain-syntax"> </span><span class="identifier-syntax">style</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">current</span><span class="plain-syntax"> </span><span class="identifier-syntax">dialogue</span><span class="plain-syntax"> </span><span class="identifier-syntax">line</span><span class="plain-syntax"> </span><span class="identifier-syntax">style</span><span class="plain-syntax">:</span>
|
||||
<span class="plain-syntax"> (- </span><span class="identifier-syntax">DirectorCurrentLineStyle</span><span class="plain-syntax">() -).</span>
|
||||
|
||||
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">perform</span><span class="plain-syntax"> (</span><span class="identifier-syntax">B</span><span class="plain-syntax"> - </span><span class="identifier-syntax">a</span><span class="plain-syntax"> </span><span class="identifier-syntax">dialogue</span><span class="plain-syntax"> </span><span class="identifier-syntax">beat</span><span class="plain-syntax">):</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ask</span><span class="plain-syntax"> </span><span class="identifier-syntax">DialogueKit</span><span class="plain-syntax"> </span><span class="identifier-syntax">to</span><span class="plain-syntax"> </span><span class="identifier-syntax">perform</span><span class="plain-syntax"> </span><span class="identifier-syntax">B</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">now</span><span class="plain-syntax"> </span><span class="identifier-syntax">B</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">performed</span><span class="plain-syntax">.</span>
|
||||
|
||||
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">ask</span><span class="plain-syntax"> </span><span class="identifier-syntax">DialogueKit</span><span class="plain-syntax"> </span><span class="identifier-syntax">to</span><span class="plain-syntax"> </span><span class="identifier-syntax">perform</span><span class="plain-syntax"> (</span><span class="identifier-syntax">B</span><span class="plain-syntax"> - </span><span class="identifier-syntax">a</span><span class="plain-syntax"> </span><span class="identifier-syntax">dialogue</span><span class="plain-syntax"> </span><span class="identifier-syntax">beat</span><span class="plain-syntax">):</span>
|
||||
<span class="plain-syntax"> (- </span><span class="identifier-syntax">DirectorPerform</span><span class="plain-syntax">({</span><span class="identifier-syntax">B</span><span class="plain-syntax">}); -).</span>
|
||||
|
||||
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">decide</span><span class="plain-syntax"> </span><span class="identifier-syntax">whether</span><span class="plain-syntax"> </span><span class="identifier-syntax">dialogue</span><span class="plain-syntax">/</span><span class="identifier-syntax">dialog</span><span class="plain-syntax"> </span><span class="identifier-syntax">about</span><span class="plain-syntax"> (</span><span class="identifier-syntax">O</span><span class="plain-syntax"> - </span><span class="identifier-syntax">an</span><span class="plain-syntax"> </span><span class="identifier-syntax">object</span><span class="plain-syntax">) </span><span class="identifier-syntax">intervenes</span><span class="plain-syntax">:</span>
|
||||
<span class="plain-syntax"> (- </span><span class="identifier-syntax">DirectorIntervenes</span><span class="plain-syntax">({</span><span class="identifier-syntax">O</span><span class="plain-syntax">}) -).</span>
|
||||
|
||||
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">showme</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">beat</span><span class="plain-syntax"> </span><span class="identifier-syntax">structure</span><span class="plain-syntax"> </span><span class="identifier-syntax">of</span><span class="plain-syntax"> (</span><span class="identifier-syntax">B</span><span class="plain-syntax"> - </span><span class="identifier-syntax">dialogue</span><span class="plain-syntax"> </span><span class="identifier-syntax">beat</span><span class="plain-syntax">): (- </span><span class="identifier-syntax">DirectorBeatPrintStructure</span><span class="plain-syntax">({</span><span class="identifier-syntax">B</span><span class="plain-syntax">}); -).</span>
|
||||
|
||||
<span class="identifier-syntax">Definition</span><span class="plain-syntax">: </span><span class="identifier-syntax">A</span><span class="plain-syntax"> </span><span class="identifier-syntax">dialogue</span><span class="plain-syntax"> </span><span class="identifier-syntax">beat</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">available</span><span class="plain-syntax"> </span><span class="identifier-syntax">rather</span><span class="plain-syntax"> </span><span class="identifier-syntax">than</span><span class="plain-syntax"> </span><span class="identifier-syntax">unavailable</span><span class="plain-syntax"> </span><span class="identifier-syntax">if</span><span class="plain-syntax"> </span><span class="identifier-syntax">Inter</span><span class="plain-syntax"> </span><span class="identifier-syntax">routine</span>
|
||||
|
@ -1419,6 +1433,21 @@ some response texts can be hung.
|
|||
<span class="identifier-syntax">Definition</span><span class="plain-syntax">: </span><span class="identifier-syntax">A</span><span class="plain-syntax"> </span><span class="identifier-syntax">dialogue</span><span class="plain-syntax"> </span><span class="identifier-syntax">line</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">available</span><span class="plain-syntax"> </span><span class="identifier-syntax">rather</span><span class="plain-syntax"> </span><span class="identifier-syntax">than</span><span class="plain-syntax"> </span><span class="identifier-syntax">unavailable</span><span class="plain-syntax"> </span><span class="identifier-syntax">if</span><span class="plain-syntax"> </span><span class="identifier-syntax">Inter</span><span class="plain-syntax"> </span><span class="identifier-syntax">routine</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"DirectorLineAvailable"</span><span class="plain-syntax"> </span><span class="identifier-syntax">says</span><span class="plain-syntax"> </span><span class="identifier-syntax">so</span><span class="plain-syntax"> (</span><span class="identifier-syntax">it</span><span class="plain-syntax"> </span><span class="identifier-syntax">meets</span><span class="plain-syntax"> </span><span class="identifier-syntax">all</span><span class="plain-syntax"> </span><span class="identifier-syntax">its</span><span class="plain-syntax"> </span><span class="identifier-syntax">if</span><span class="plain-syntax"> </span><span class="identifier-syntax">and</span><span class="plain-syntax"> </span><span class="identifier-syntax">unless</span><span class="plain-syntax"> </span><span class="identifier-syntax">conditions</span><span class="plain-syntax">).</span>
|
||||
|
||||
<span class="identifier-syntax">Definition</span><span class="plain-syntax">: </span><span class="identifier-syntax">A</span><span class="plain-syntax"> </span><span class="identifier-syntax">dialogue</span><span class="plain-syntax"> </span><span class="identifier-syntax">line</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">narrated</span><span class="plain-syntax"> </span><span class="identifier-syntax">rather</span><span class="plain-syntax"> </span><span class="identifier-syntax">than</span><span class="plain-syntax"> </span><span class="identifier-syntax">unnarrated</span><span class="plain-syntax"> </span><span class="identifier-syntax">if</span><span class="plain-syntax"> </span><span class="identifier-syntax">Inter</span><span class="plain-syntax"> </span><span class="identifier-syntax">routine</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"DirectorLineNarrated"</span><span class="plain-syntax"> </span><span class="identifier-syntax">says</span><span class="plain-syntax"> </span><span class="identifier-syntax">so</span><span class="plain-syntax"> (</span><span class="identifier-syntax">it</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">a</span><span class="plain-syntax"> </span><span class="identifier-syntax">Narration</span><span class="plain-syntax"> </span><span class="identifier-syntax">line</span><span class="plain-syntax"> </span><span class="identifier-syntax">rather</span><span class="plain-syntax"> </span><span class="identifier-syntax">than</span><span class="plain-syntax"> </span><span class="identifier-syntax">what</span><span class="plain-syntax"> </span><span class="identifier-syntax">somebody</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">saying</span><span class="plain-syntax">).</span>
|
||||
|
||||
<span class="identifier-syntax">Definition</span><span class="plain-syntax">: </span><span class="identifier-syntax">A</span><span class="plain-syntax"> </span><span class="identifier-syntax">dialogue</span><span class="plain-syntax"> </span><span class="identifier-syntax">line</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">non</span><span class="plain-syntax">-</span><span class="identifier-syntax">verbal</span><span class="plain-syntax"> </span><span class="identifier-syntax">rather</span><span class="plain-syntax"> </span><span class="identifier-syntax">than</span><span class="plain-syntax"> </span><span class="identifier-syntax">verbal</span><span class="plain-syntax"> </span><span class="identifier-syntax">if</span><span class="plain-syntax"> </span><span class="identifier-syntax">Inter</span><span class="plain-syntax"> </span><span class="identifier-syntax">routine</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"DirectorLineNonverbal"</span><span class="plain-syntax"> </span><span class="identifier-syntax">says</span><span class="plain-syntax"> </span><span class="identifier-syntax">so</span><span class="plain-syntax"> (</span><span class="identifier-syntax">it</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">a</span><span class="plain-syntax"> </span><span class="identifier-syntax">non</span><span class="plain-syntax">-</span><span class="identifier-syntax">verbal</span><span class="plain-syntax"> </span><span class="identifier-syntax">communication</span><span class="plain-syntax">, </span><span class="identifier-syntax">like</span><span class="plain-syntax"> </span><span class="identifier-syntax">a</span><span class="plain-syntax"> </span><span class="identifier-syntax">gesture</span><span class="plain-syntax">).</span>
|
||||
|
||||
<span class="identifier-syntax">Definition</span><span class="plain-syntax">: </span><span class="identifier-syntax">A</span><span class="plain-syntax"> </span><span class="identifier-syntax">dialogue</span><span class="plain-syntax"> </span><span class="identifier-syntax">line</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">story</span><span class="plain-syntax">-</span><span class="identifier-syntax">ending</span><span class="plain-syntax"> </span><span class="identifier-syntax">if</span><span class="plain-syntax"> </span><span class="identifier-syntax">Inter</span><span class="plain-syntax"> </span><span class="identifier-syntax">routine</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"DirectorLineStoryEnding"</span><span class="plain-syntax"> </span><span class="identifier-syntax">says</span><span class="plain-syntax"> </span><span class="identifier-syntax">so</span><span class="plain-syntax"> (</span><span class="identifier-syntax">it</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">a</span><span class="plain-syntax"> </span><span class="identifier-syntax">line</span><span class="plain-syntax"> </span><span class="identifier-syntax">which</span><span class="plain-syntax">, </span><span class="identifier-syntax">when</span><span class="plain-syntax"> </span><span class="identifier-syntax">performed</span><span class="plain-syntax">, </span><span class="identifier-syntax">ends</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">story</span><span class="plain-syntax">).</span>
|
||||
|
||||
<span class="identifier-syntax">Definition</span><span class="plain-syntax">: </span><span class="identifier-syntax">A</span><span class="plain-syntax"> </span><span class="identifier-syntax">dialogue</span><span class="plain-syntax"> </span><span class="identifier-syntax">beat</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">being</span><span class="plain-syntax"> </span><span class="identifier-syntax">performed</span><span class="plain-syntax"> </span><span class="identifier-syntax">if</span><span class="plain-syntax"> </span><span class="identifier-syntax">Inter</span><span class="plain-syntax"> </span><span class="identifier-syntax">routine</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"DirectorBeatBeingPerformed"</span><span class="plain-syntax"> </span><span class="identifier-syntax">says</span><span class="plain-syntax"> </span><span class="identifier-syntax">so</span><span class="plain-syntax"> (</span><span class="identifier-syntax">it</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">currently</span><span class="plain-syntax"> </span><span class="identifier-syntax">having</span><span class="plain-syntax"> </span><span class="identifier-syntax">its</span><span class="plain-syntax"> </span><span class="identifier-syntax">lines</span><span class="plain-syntax"> </span><span class="identifier-syntax">performed</span><span class="plain-syntax">).</span>
|
||||
|
||||
<span class="identifier-syntax">Definition</span><span class="plain-syntax">: </span><span class="identifier-syntax">A</span><span class="plain-syntax"> </span><span class="identifier-syntax">dialogue</span><span class="plain-syntax"> </span><span class="identifier-syntax">choice</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">flowing</span><span class="plain-syntax"> </span><span class="identifier-syntax">rather</span><span class="plain-syntax"> </span><span class="identifier-syntax">than</span><span class="plain-syntax"> </span><span class="identifier-syntax">offered</span><span class="plain-syntax"> </span><span class="identifier-syntax">if</span><span class="plain-syntax"> </span><span class="identifier-syntax">Inter</span><span class="plain-syntax"> </span><span class="identifier-syntax">routine</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"DirectorChoiceFlowing"</span><span class="plain-syntax"> </span><span class="identifier-syntax">says</span><span class="plain-syntax"> </span><span class="identifier-syntax">so</span><span class="plain-syntax"> (</span><span class="identifier-syntax">it</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">a</span><span class="plain-syntax"> </span><span class="identifier-syntax">flow</span><span class="plain-syntax">-</span><span class="identifier-syntax">control</span><span class="plain-syntax"> </span><span class="identifier-syntax">point</span><span class="plain-syntax"> </span><span class="identifier-syntax">rather</span><span class="plain-syntax"> </span><span class="identifier-syntax">than</span><span class="plain-syntax"> </span><span class="identifier-syntax">an</span><span class="plain-syntax"> </span><span class="identifier-syntax">option</span><span class="plain-syntax">).</span>
|
||||
|
||||
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">abide</span><span class="plain-syntax"> </span><span class="identifier-syntax">by</span><span class="plain-syntax"> </span><span class="identifier-syntax">dialogue</span><span class="plain-syntax"> </span><span class="identifier-syntax">before</span><span class="plain-syntax"> </span><span class="identifier-syntax">action</span><span class="plain-syntax"> </span><span class="identifier-syntax">choices</span><span class="plain-syntax">:</span>
|
||||
<span class="plain-syntax"> (- </span><span class="identifier-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">DirectorBeforeAction</span><span class="plain-syntax">()) </span><span class="identifier-syntax">rtrue</span><span class="plain-syntax">; -).</span>
|
||||
|
||||
|
@ -1440,6 +1469,9 @@ some response texts can be hung.
|
|||
<span class="identifier-syntax">The</span><span class="plain-syntax"> </span><span class="identifier-syntax">dialogue</span><span class="plain-syntax"> </span><span class="identifier-syntax">direction</span><span class="plain-syntax"> </span><span class="identifier-syntax">rule</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">listed</span><span class="plain-syntax"> </span><span class="identifier-syntax">in</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">turn</span><span class="plain-syntax"> </span><span class="identifier-syntax">sequence</span><span class="plain-syntax"> </span><span class="identifier-syntax">rulebook</span><span class="plain-syntax">.</span>
|
||||
<span class="identifier-syntax">The</span><span class="plain-syntax"> </span><span class="identifier-syntax">dialogue</span><span class="plain-syntax"> </span><span class="identifier-syntax">direction</span><span class="plain-syntax"> </span><span class="identifier-syntax">rule</span><span class="plain-syntax"> </span><span class="identifier-syntax">translates</span><span class="plain-syntax"> </span><span class="identifier-syntax">into</span><span class="plain-syntax"> </span><span class="identifier-syntax">Inter</span><span class="plain-syntax"> </span><span class="identifier-syntax">as</span><span class="plain-syntax"> </span><span class="string-syntax">"DIALOGUE_DIRECTION_R"</span><span class="plain-syntax">.</span>
|
||||
|
||||
<span class="identifier-syntax">The</span><span class="plain-syntax"> </span><span class="identifier-syntax">performing</span><span class="plain-syntax"> </span><span class="identifier-syntax">opening</span><span class="plain-syntax"> </span><span class="identifier-syntax">dialogue</span><span class="plain-syntax"> </span><span class="identifier-syntax">beat</span><span class="plain-syntax"> </span><span class="identifier-syntax">rule</span><span class="plain-syntax"> </span><span class="identifier-syntax">is</span><span class="plain-syntax"> </span><span class="identifier-syntax">listed</span><span class="plain-syntax"> </span><span class="identifier-syntax">in</span><span class="plain-syntax"> </span><span class="identifier-syntax">the</span><span class="plain-syntax"> </span><span class="identifier-syntax">startup</span><span class="plain-syntax"> </span><span class="identifier-syntax">rulebook</span><span class="plain-syntax">.</span>
|
||||
<span class="identifier-syntax">The</span><span class="plain-syntax"> </span><span class="identifier-syntax">performing</span><span class="plain-syntax"> </span><span class="identifier-syntax">opening</span><span class="plain-syntax"> </span><span class="identifier-syntax">dialogue</span><span class="plain-syntax"> </span><span class="identifier-syntax">beat</span><span class="plain-syntax"> </span><span class="identifier-syntax">rule</span><span class="plain-syntax"> </span><span class="identifier-syntax">translates</span><span class="plain-syntax"> </span><span class="identifier-syntax">into</span><span class="plain-syntax"> </span><span class="identifier-syntax">Inter</span><span class="plain-syntax"> </span><span class="identifier-syntax">as</span><span class="plain-syntax"> </span><span class="string-syntax">"PERFORM_OPENING_BEAT_R"</span><span class="plain-syntax">.</span>
|
||||
|
||||
<span class="identifier-syntax">Section</span><span class="plain-syntax"> </span><span class="constant-syntax">10</span><span class="plain-syntax"> - </span><span class="identifier-syntax">Dialogue</span><span class="plain-syntax"> </span><span class="identifier-syntax">Fallback</span><span class="plain-syntax"> (</span><span class="identifier-syntax">not</span><span class="plain-syntax"> </span><span class="identifier-syntax">for</span><span class="plain-syntax"> </span><span class="identifier-syntax">dialogue</span><span class="plain-syntax"> </span><span class="identifier-syntax">language</span><span class="plain-syntax"> </span><span class="identifier-syntax">element</span><span class="plain-syntax">)</span>
|
||||
|
||||
<span class="identifier-syntax">To</span><span class="plain-syntax"> </span><span class="identifier-syntax">abide</span><span class="plain-syntax"> </span><span class="identifier-syntax">by</span><span class="plain-syntax"> </span><span class="identifier-syntax">dialogue</span><span class="plain-syntax"> </span><span class="identifier-syntax">before</span><span class="plain-syntax"> </span><span class="identifier-syntax">action</span><span class="plain-syntax"> </span><span class="identifier-syntax">choices</span><span class="plain-syntax">:</span>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
Size of lexicon: 3116 excerpt meanings
|
||||
Stored among 843 words out of total vocabulary of 10598
|
||||
713 words have a start list: longest belongs to report (with 293 meanings)
|
||||
Size of lexicon: 3117 excerpt meanings
|
||||
Stored among 844 words out of total vocabulary of 10640
|
||||
714 words have a start list: longest belongs to report (with 293 meanings)
|
||||
15 words have an end list: longest belongs to case (with 6 meanings)
|
||||
29 words have a middle list: longest belongs to to (with 4 meanings)
|
||||
108 words have a subset list: longest belongs to street (with 4 meanings)
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,75 +1,75 @@
|
|||
Total memory consumption was 121078K = 118 MB
|
||||
Total memory consumption was 121163K = 118 MB
|
||||
|
||||
---- was used for 2050504 objects, in 365226 frames in 0 x 800K = 0K = 0 MB:
|
||||
---- was used for 2051924 objects, in 365755 frames in 0 x 800K = 0K = 0 MB:
|
||||
|
||||
33.7% inter_tree_node_array 58 x 8192 = 475136 objects, 41813824 bytes
|
||||
21.0% text_stream_array 4623 x 100 = 462300 objects, 26036736 bytes
|
||||
19.8% linked_list 43975 objects, 24626000 bytes
|
||||
21.0% text_stream_array 4630 x 100 = 463000 objects, 26076160 bytes
|
||||
19.8% linked_list 44018 objects, 24650080 bytes
|
||||
11.4% inter_symbol_array 133 x 1024 = 136192 objects, 14168224 bytes
|
||||
10.6% inter_error_stash_array 101 x 1024 = 103424 objects, 13241504 bytes
|
||||
8.3% parse_node 129779 objects, 10382320 bytes
|
||||
5.9% verb_conjugation 160 objects, 7425280 bytes
|
||||
8.3% parse_node 129804 objects, 10384320 bytes
|
||||
6.0% verb_conjugation 162 objects, 7518096 bytes
|
||||
4.4% parse_node_annotation_array 346 x 500 = 173000 objects, 5547072 bytes
|
||||
2.7% pcalc_prop_array 25 x 1000 = 25000 objects, 3400800 bytes
|
||||
2.5% inter_name_array 67 x 1000 = 67000 objects, 3218144 bytes
|
||||
2.1% kind_array 66 x 1000 = 66000 objects, 2642112 bytes
|
||||
1.7% scan_directory 528 objects, 2179584 bytes
|
||||
1.6% inter_name_generator_array 51 x 1000 = 51000 objects, 2041632 bytes
|
||||
1.6% inter_schema_token 13970 objects, 2011680 bytes
|
||||
1.5% package_request 21160 objects, 1862080 bytes
|
||||
1.4% vocabulary_entry_array 161 x 100 = 16100 objects, 1808352 bytes
|
||||
1.2% dict_entry_array 474 x 100 = 47400 objects, 1531968 bytes
|
||||
1.6% inter_schema_token 14112 objects, 2032128 bytes
|
||||
1.5% package_request 21170 objects, 1862960 bytes
|
||||
1.4% vocabulary_entry_array 162 x 100 = 16200 objects, 1819584 bytes
|
||||
1.2% dict_entry_array 475 x 100 = 47500 objects, 1535200 bytes
|
||||
1.2% match_trie_array 11 x 1000 = 11000 objects, 1496352 bytes
|
||||
1.2% inter_symbols_table 26616 objects, 1490496 bytes
|
||||
1.2% inter_symbols_table 26632 objects, 1491392 bytes
|
||||
1.1% i6_schema_array 23 x 100 = 2300 objects, 1380736 bytes
|
||||
1.0% inter_package 26616 objects, 1277568 bytes
|
||||
0.9% map_data 673 objects, 1130640 bytes
|
||||
1.0% inter_package 26632 objects, 1278336 bytes
|
||||
0.9% map_data 675 objects, 1134000 bytes
|
||||
0.8% id_body 945 objects, 1081080 bytes
|
||||
0.8% adjective_meaning 202 objects, 1000304 bytes
|
||||
0.7% excerpt_meaning 3116 objects, 972192 bytes
|
||||
0.7% production 3931 objects, 911992 bytes
|
||||
0.7% ptoken 8532 objects, 887328 bytes
|
||||
0.7% grammatical_usage 3617 objects, 868080 bytes
|
||||
0.6% individual_form 2567 objects, 862512 bytes
|
||||
0.6% inter_schema_node 8921 objects, 856416 bytes
|
||||
0.7% excerpt_meaning 3117 objects, 972504 bytes
|
||||
0.7% production 3939 objects, 913848 bytes
|
||||
0.7% ptoken 8544 objects, 888576 bytes
|
||||
0.7% grammatical_usage 3638 objects, 873120 bytes
|
||||
0.6% inter_schema_node 9045 objects, 868320 bytes
|
||||
0.6% individual_form 2568 objects, 862848 bytes
|
||||
0.5% unary_predicate_array 16 x 1000 = 16000 objects, 640512 bytes
|
||||
0.3% local_variable_array 47 x 100 = 4700 objects, 452704 bytes
|
||||
0.3% verb_usage 1128 objects, 388032 bytes
|
||||
0.3% verb_usage 1148 objects, 394912 bytes
|
||||
0.2% rule 470 objects, 368480 bytes
|
||||
0.2% dictionary 7594 objects, 364512 bytes
|
||||
0.2% verb_form 386 objects, 348944 bytes
|
||||
0.2% noun 2386 objects, 286320 bytes
|
||||
0.2% compilation_subtask 3359 objects, 268720 bytes
|
||||
0.2% dictionary 7603 objects, 364944 bytes
|
||||
0.2% verb_form 388 objects, 350752 bytes
|
||||
0.2% noun 2387 objects, 286440 bytes
|
||||
0.2% compilation_subtask 3365 objects, 269200 bytes
|
||||
0.2% inference_subject 670 objects, 262640 bytes
|
||||
0.2% inter_annotation_array 2 x 8192 = 16384 objects, 262208 bytes
|
||||
0.2% inference_subject 668 objects, 261856 bytes
|
||||
0.1% vanilla_function 3691 objects, 236224 bytes
|
||||
0.1% binary_predicate 324 objects, 171072 bytes
|
||||
0.1% hierarchy_location 1160 objects, 167040 bytes
|
||||
0.1% linguistic_stock_item 3322 objects, 159456 bytes
|
||||
0.1% vanilla_function 3696 objects, 236544 bytes
|
||||
0.1% binary_predicate 326 objects, 172128 bytes
|
||||
0.1% hierarchy_location 1169 objects, 168336 bytes
|
||||
0.1% linguistic_stock_item 3327 objects, 159696 bytes
|
||||
0.1% rule_family_data 401 objects, 147568 bytes
|
||||
0.1% nonterminal 768 objects, 141312 bytes
|
||||
0.1% nascent_array 2127 objects, 136128 bytes
|
||||
0.1% nonterminal 771 objects, 141864 bytes
|
||||
0.1% nascent_array 2130 objects, 136320 bytes
|
||||
---- inference 1703 objects, 122616 bytes
|
||||
---- documentation_ref 1273 objects, 112024 bytes
|
||||
---- imperative_defn 1382 objects, 99504 bytes
|
||||
---- noun_usage 2408 objects, 96320 bytes
|
||||
---- noun_usage 2409 objects, 96360 bytes
|
||||
---- anl_entry_array 2 x 1000 = 2000 objects, 96064 bytes
|
||||
---- preposition 273 objects, 87360 bytes
|
||||
---- inter_schema 1512 objects, 84672 bytes
|
||||
---- inter_tree 6 objects, 81168 bytes
|
||||
---- lexical_cluster 2523 objects, 80736 bytes
|
||||
---- preposition 274 objects, 87680 bytes
|
||||
---- inter_schema 1521 objects, 85176 bytes
|
||||
---- inter_tree 6 objects, 81552 bytes
|
||||
---- lexical_cluster 2524 objects, 80768 bytes
|
||||
---- pcalc_term_array 2 x 1000 = 2000 objects, 80064 bytes
|
||||
---- kind_variable_declaration 1655 objects, 79440 bytes
|
||||
---- label_namespace 1472 objects, 70656 bytes
|
||||
---- rulebook 407 objects, 68376 bytes
|
||||
---- spatial_data 673 objects, 64608 bytes
|
||||
---- spatial_data 675 objects, 64800 bytes
|
||||
---- linked_list_item_array 4 x 1000 = 4000 objects, 64128 bytes
|
||||
---- kind_macro_definition 9 objects, 62280 bytes
|
||||
---- booking 861 objects, 61992 bytes
|
||||
---- actions_rcd_data 1890 objects, 60480 bytes
|
||||
---- scenes_rcd_data 1890 objects, 60480 bytes
|
||||
---- kind_constructor 77 objects, 58520 bytes
|
||||
---- command_grammar 130 objects, 58240 bytes
|
||||
---- kind_constructor 77 objects, 57904 bytes
|
||||
---- table 7 objects, 56672 bytes
|
||||
---- pcalc_func_array 1 x 1000 objects, 56032 bytes
|
||||
---- cg_line 230 objects, 53360 bytes
|
||||
|
@ -83,17 +83,17 @@ Total memory consumption was 121078K = 118 MB
|
|||
---- activity_list_array 1 x 1000 objects, 40032 bytes
|
||||
---- to_family_data 500 objects, 40000 bytes
|
||||
---- shared_variable_access_list_array 12 x 100 = 1200 objects, 38784 bytes
|
||||
---- heading 200 objects, 38400 bytes
|
||||
---- parsing_data 673 objects, 37688 bytes
|
||||
---- production_list 625 objects, 35000 bytes
|
||||
---- regions_data 673 objects, 32304 bytes
|
||||
---- counting_data 673 objects, 32304 bytes
|
||||
---- heading 201 objects, 38592 bytes
|
||||
---- parsing_data 675 objects, 37800 bytes
|
||||
---- production_list 628 objects, 35168 bytes
|
||||
---- regions_data 675 objects, 32400 bytes
|
||||
---- counting_data 675 objects, 32400 bytes
|
||||
---- property_permission 96 objects, 31488 bytes
|
||||
---- stack_frame_box 305 objects, 29280 bytes
|
||||
---- verb_sense 403 objects, 29016 bytes
|
||||
---- verb_sense 405 objects, 29160 bytes
|
||||
---- action_pattern_array 7 x 100 = 700 objects, 28224 bytes
|
||||
---- shared_variable_set_array 6 x 100 = 600 objects, 24192 bytes
|
||||
---- backdrops_data 673 objects, 21536 bytes
|
||||
---- backdrops_data 675 objects, 21600 bytes
|
||||
---- inter_node_list 654 objects, 20928 bytes
|
||||
---- pipeline_step 15 objects, 20280 bytes
|
||||
---- action_name 90 objects, 20160 bytes
|
||||
|
@ -123,7 +123,7 @@ Total memory consumption was 121078K = 118 MB
|
|||
---- understanding_item_array 3 x 100 = 300 objects, 7296 bytes
|
||||
---- shared_variable_array 1 x 100 objects, 7232 bytes
|
||||
---- determiner 22 objects, 7216 bytes
|
||||
---- verb 108 objects, 6912 bytes
|
||||
---- verb 109 objects, 6976 bytes
|
||||
---- hierarchy_attachment_point 77 objects, 6776 bytes
|
||||
---- inbuild_copy 55 objects, 6600 bytes
|
||||
---- inbuild_work 102 objects, 6528 bytes
|
||||
|
@ -138,7 +138,7 @@ Total memory consumption was 121078K = 118 MB
|
|||
---- compatibility_specification 84 objects, 4032 bytes
|
||||
---- command_line_switch 49 objects, 3920 bytes
|
||||
---- activity 35 objects, 3920 bytes
|
||||
---- parse_node_annotation_type 118 objects, 3776 bytes
|
||||
---- parse_node_annotation_type 119 objects, 3808 bytes
|
||||
---- submodule_request 85 objects, 3400 bytes
|
||||
---- method_set 105 objects, 3360 bytes
|
||||
---- property_setting_bp_data 84 objects, 3360 bytes
|
||||
|
@ -154,8 +154,8 @@ Total memory consumption was 121078K = 118 MB
|
|||
---- kind_constructor_casting_rule_array 1 x 100 objects, 2432 bytes
|
||||
---- kind_constructor_instance_array 1 x 100 objects, 2432 bytes
|
||||
---- equation_symbol 30 objects, 2400 bytes
|
||||
---- scene 1 object, 2352 bytes
|
||||
---- JSON_type 31 objects, 2232 bytes
|
||||
---- scene 1 object, 2096 bytes
|
||||
---- JSON_single_requirement 43 objects, 2064 bytes
|
||||
---- build_step 28 objects, 2016 bytes
|
||||
---- pronoun_usage 42 objects, 1680 bytes
|
||||
|
@ -247,23 +247,23 @@ Total memory consumption was 121078K = 118 MB
|
|||
|
||||
100.0% was used for memory not allocated for objects:
|
||||
|
||||
56.8% text stream storage 70463076 bytes in 479480 claims
|
||||
4.2% dictionary storage 5298688 bytes in 7594 claims
|
||||
56.8% text stream storage 70531652 bytes in 480174 claims
|
||||
4.2% dictionary storage 5303296 bytes in 7603 claims
|
||||
---- sorting 1560 bytes in 159 claims
|
||||
5.8% source text 7200000 bytes in 3 claims
|
||||
8.7% source text details 10800000 bytes in 2 claims
|
||||
0.2% documentation fragments 262144 bytes in 1 claim
|
||||
---- linguistic stock array 81920 bytes in 2 claims
|
||||
---- small word set array 105600 bytes in 22 claims
|
||||
3.6% inter symbols storage 4556576 bytes in 27977 claims
|
||||
13.5% inter bytecode storage 16767672 bytes in 14 claims
|
||||
3.6% inter symbols storage 4559616 bytes in 27995 claims
|
||||
13.5% inter bytecode storage 16768272 bytes in 14 claims
|
||||
5.0% inter links storage 6222976 bytes in 11 claims
|
||||
0.1% inter tree location list storage 191232 bytes in 32 claims
|
||||
1.3% instance-of-kind counting 1710864 bytes in 1 claim
|
||||
---- compilation workspace for objects 21976 bytes in 25 claims
|
||||
1.3% instance-of-kind counting 1721344 bytes in 1 claim
|
||||
---- compilation workspace for objects 22056 bytes in 25 claims
|
||||
---- lists for type-checking invocations 16000 bytes in 1 claim
|
||||
---- code generation workspace for objects 3480 bytes in 19 claims
|
||||
0.2% emitter array storage 280288 bytes in 1999 claims
|
||||
0.2% emitter array storage 280544 bytes in 2001 claims
|
||||
|
||||
-150.-1% was overhead - -186183792 bytes = -181820K = -177 MB
|
||||
-150.-2% was overhead - -186421096 bytes = -182051K = -177 MB
|
||||
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
(@1)<cardinal-number>=1
|
||||
(hits 171/171) (matched: '100') constraint CS = {r0} extremes [1, 1]
|
||||
(@1)minus (@2)<cardinal-number>=1
|
||||
(hits 0/1518) constraint DS = {21} extremes [2, 2]
|
||||
(hits 0/1506) constraint DS = {21} extremes [2, 2]
|
||||
(@1)<quoted-text>=1 (@2)( (@3)<response-letter>=2 (@4))
|
||||
(hits 274/765) (matched: '"[current item from the multiple object list]: [run paragraph on]" ( a )') constraint DS = {21} extremes [4, 4]
|
||||
(hits 274/766) (matched: '"[current item from the multiple object list]: [run paragraph on]" ( a )') constraint DS = {21} extremes [4, 4]
|
||||
(@1)<quoted-text>=1
|
||||
(hits 1566/5560) (matched: 'Represents geographical locations, both indoor
|
||||
and outdoor, which are not necessarily areas in a building. A player in one
|
||||
|
@ -14,12 +14,12 @@
|
|||
<s-literal-real-number>=1
|
||||
(hits 11/9935) (matched: 'plus infinity') constraint (none) extremes [1, infinity)
|
||||
(@1)<s-literal-truth-state>=1
|
||||
(hits 78/1307) (matched: 'false') constraint CS = {15} extremes [1, 1]
|
||||
(hits 78/1229) (matched: 'false') constraint CS = {15} extremes [1, 1]
|
||||
<s-literal-list>=1
|
||||
(hits 0/3252) constraint DS = {17} extremes [2, infinity)
|
||||
(hits 0/1569) constraint DS = {17} extremes [2, infinity)
|
||||
(@1)unicode <s-unicode-character>=1
|
||||
(hits 0/3412) constraint DS = {21} extremes [2, infinity)
|
||||
(hits 0/3381) constraint DS = {21} extremes [2, infinity)
|
||||
<s-literal-time>=1
|
||||
(hits 0/3712) constraint DW = {18, 19, 20} extremes [2, 5]
|
||||
(hits 0/3808) constraint DW = {18, 19, 20} extremes [2, 5]
|
||||
<s-literal-unit-notation>=1
|
||||
(hits 0/9846) constraint (none) extremes [1, infinity)
|
||||
|
|
|
@ -781,34 +781,34 @@ ROOT_NT
|
|||
PROPER_NOUN_NT'blank' {refined} {refers: infs'blank'} {eval: CONSTANT_NT'blank' {kind: room} {instance: I113'blank'} {enumeration: 0}}
|
||||
RELATIONSHIP_NT'contains' {meaning: is-in} {refined}
|
||||
AND_NT
|
||||
PROPER_NOUN_NT {refers: infs414} {eval: CONSTANT_NT {kind: ice cream cone} {instance: I114} {enumeration: 0}} {created here}
|
||||
PROPER_NOUN_NT {refers: infs416} {eval: CONSTANT_NT {kind: ice cream cone} {instance: I114} {enumeration: 0}} {created here}
|
||||
AND_NT
|
||||
PROPER_NOUN_NT {refers: infs415} {eval: CONSTANT_NT {kind: ice cream cone} {instance: I115} {enumeration: 0}} {created here}
|
||||
PROPER_NOUN_NT {refers: infs417} {eval: CONSTANT_NT {kind: ice cream cone} {instance: I115} {enumeration: 0}} {created here}
|
||||
AND_NT
|
||||
PROPER_NOUN_NT {refers: infs416} {eval: CONSTANT_NT {kind: ice cream cone} {instance: I116} {enumeration: 0}} {created here}
|
||||
PROPER_NOUN_NT {refers: infs418} {eval: CONSTANT_NT {kind: ice cream cone} {instance: I116} {enumeration: 0}} {created here}
|
||||
AND_NT
|
||||
PROPER_NOUN_NT {refers: infs417} {eval: CONSTANT_NT {kind: ice cream cone} {instance: I117} {enumeration: 0}} {created here}
|
||||
PROPER_NOUN_NT {refers: infs419} {eval: CONSTANT_NT {kind: ice cream cone} {instance: I117} {enumeration: 0}} {created here}
|
||||
AND_NT
|
||||
PROPER_NOUN_NT {refers: infs418} {eval: CONSTANT_NT {kind: ice cream cone} {instance: I118} {enumeration: 0}} {created here}
|
||||
PROPER_NOUN_NT {refers: infs420} {eval: CONSTANT_NT {kind: ice cream cone} {instance: I118} {enumeration: 0}} {created here}
|
||||
AND_NT
|
||||
PROPER_NOUN_NT {refers: infs419} {eval: CONSTANT_NT {kind: ice cream cone} {instance: I119} {enumeration: 0}} {created here}
|
||||
PROPER_NOUN_NT {refers: infs421} {eval: CONSTANT_NT {kind: ice cream cone} {instance: I119} {enumeration: 0}} {created here}
|
||||
AND_NT
|
||||
PROPER_NOUN_NT {refers: infs420} {eval: CONSTANT_NT {kind: ice cream cone} {instance: I120} {enumeration: 0}} {created here}
|
||||
PROPER_NOUN_NT {refers: infs422} {eval: CONSTANT_NT {kind: ice cream cone} {instance: I120} {enumeration: 0}} {created here}
|
||||
AND_NT
|
||||
PROPER_NOUN_NT {refers: infs421} {eval: CONSTANT_NT {kind: ice cream cone} {instance: I121} {enumeration: 0}} {created here}
|
||||
PROPER_NOUN_NT {refers: infs423} {eval: CONSTANT_NT {kind: ice cream cone} {instance: I121} {enumeration: 0}} {created here}
|
||||
AND_NT
|
||||
PROPER_NOUN_NT {refers: infs422} {eval: CONSTANT_NT {kind: ice cream cone} {instance: I122} {enumeration: 0}} {created here}
|
||||
PROPER_NOUN_NT {refers: infs424} {eval: CONSTANT_NT {kind: ice cream cone} {instance: I122} {enumeration: 0}} {created here}
|
||||
AND_NT
|
||||
PROPER_NOUN_NT {refers: infs423} {eval: CONSTANT_NT {kind: ice cream cone} {instance: I123} {enumeration: 0}} {created here}
|
||||
PROPER_NOUN_NT {refers: infs425} {eval: CONSTANT_NT {kind: ice cream cone} {instance: I123} {enumeration: 0}} {created here}
|
||||
AND_NT
|
||||
PROPER_NOUN_NT {refers: infs424} {eval: CONSTANT_NT {kind: ice cream cone} {instance: I124} {enumeration: 0}} {created here}
|
||||
PROPER_NOUN_NT {refers: infs426} {eval: CONSTANT_NT {kind: ice cream cone} {instance: I124} {enumeration: 0}} {created here}
|
||||
AND_NT
|
||||
PROPER_NOUN_NT {refers: infs425} {eval: CONSTANT_NT {kind: ice cream cone} {instance: I125} {enumeration: 0}} {created here}
|
||||
PROPER_NOUN_NT {refers: infs427} {eval: CONSTANT_NT {kind: ice cream cone} {instance: I125} {enumeration: 0}} {created here}
|
||||
AND_NT
|
||||
PROPER_NOUN_NT {refers: infs426} {eval: CONSTANT_NT {kind: ice cream cone} {instance: I126} {enumeration: 0}} {created here}
|
||||
PROPER_NOUN_NT {refers: infs428} {eval: CONSTANT_NT {kind: ice cream cone} {instance: I126} {enumeration: 0}} {created here}
|
||||
AND_NT
|
||||
PROPER_NOUN_NT {refers: infs427} {eval: CONSTANT_NT {kind: ice cream cone} {instance: I127} {enumeration: 0}} {created here}
|
||||
PROPER_NOUN_NT {refers: infs428} {eval: CONSTANT_NT {kind: ice cream cone} {instance: I128} {enumeration: 0}} {created here}
|
||||
PROPER_NOUN_NT {refers: infs429} {eval: CONSTANT_NT {kind: ice cream cone} {instance: I127} {enumeration: 0}} {created here}
|
||||
PROPER_NOUN_NT {refers: infs430} {eval: CONSTANT_NT {kind: ice cream cone} {instance: I128} {enumeration: 0}} {created here}
|
||||
HEADING_NT'section 4 - other players' {heading 5} {under: H5'section 4 - other players'} {unit: 3}
|
||||
SENTENCE_NT'vanessa is a woman in cold comfort' {unit: 3} {classified}
|
||||
VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve}
|
||||
|
@ -842,10 +842,10 @@ ROOT_NT
|
|||
PROPER_NOUN_NT'lewis' {refined} {refers: infs'lewis'} {eval: CONSTANT_NT'lewis' {kind: man} {instance: I133'lewis'} {enumeration: 0}}
|
||||
RELATIONSHIP_NT'carries' {meaning: is-carried-by} {refined}
|
||||
AND_NT
|
||||
PROPER_NOUN_NT {refers: infs434} {eval: CONSTANT_NT {kind: stamped envelope} {instance: I134} {enumeration: 0}} {created here}
|
||||
PROPER_NOUN_NT {refers: infs436} {eval: CONSTANT_NT {kind: stamped envelope} {instance: I134} {enumeration: 0}} {created here}
|
||||
AND_NT
|
||||
PROPER_NOUN_NT {refers: infs435} {eval: CONSTANT_NT {kind: stamped envelope} {instance: I135} {enumeration: 0}} {created here}
|
||||
PROPER_NOUN_NT {refers: infs436} {eval: CONSTANT_NT {kind: stamped envelope} {instance: I136} {enumeration: 0}} {created here}
|
||||
PROPER_NOUN_NT {refers: infs437} {eval: CONSTANT_NT {kind: stamped envelope} {instance: I135} {enumeration: 0}} {created here}
|
||||
PROPER_NOUN_NT {refers: infs438} {eval: CONSTANT_NT {kind: stamped envelope} {instance: I136} {enumeration: 0}} {created here}
|
||||
SENTENCE_NT'lewis carries a book called idiot's guide to dating' {unit: 3} {classified} {interpretation of subject: infs'lewis'}
|
||||
VERB_NT'carries' {verb 'carry' 3p s act IS_TENSE +ve}
|
||||
PROPER_NOUN_NT'lewis' {refined} {refers: infs'lewis'} {eval: CONSTANT_NT'lewis' {kind: man} {instance: I133'lewis'} {enumeration: 0}}
|
||||
|
@ -874,7 +874,7 @@ ROOT_NT
|
|||
VERB_NT'carries' {verb 'carry' 3p s act IS_TENSE +ve}
|
||||
PROPER_NOUN_NT'gene' {refined} {refers: infs'gene'} {eval: CONSTANT_NT'gene' {kind: man} {instance: I141'gene'} {enumeration: 0}}
|
||||
RELATIONSHIP_NT'carries' {meaning: is-carried-by} {refined}
|
||||
PROPER_NOUN_NT {refers: infs442} {eval: CONSTANT_NT {kind: stamped envelope} {instance: I142} {enumeration: 0}} {created here}
|
||||
PROPER_NOUN_NT {refers: infs444} {eval: CONSTANT_NT {kind: stamped envelope} {instance: I142} {enumeration: 0}} {created here}
|
||||
SENTENCE_NT'gene carries a dvd called casablanca' {unit: 3} {classified} {interpretation of subject: infs'gene'}
|
||||
VERB_NT'carries' {verb 'carry' 3p s act IS_TENSE +ve}
|
||||
PROPER_NOUN_NT'gene' {refined} {refers: infs'gene'} {eval: CONSTANT_NT'gene' {kind: man} {instance: I141'gene'} {enumeration: 0}}
|
||||
|
@ -884,7 +884,7 @@ ROOT_NT
|
|||
VERB_NT'carries' {verb 'carry' 3p s act IS_TENSE +ve}
|
||||
PROPER_NOUN_NT'gene' {refined} {refers: infs'gene'} {eval: CONSTANT_NT'gene' {kind: man} {instance: I141'gene'} {enumeration: 0}}
|
||||
RELATIONSHIP_NT'carries' {meaning: is-carried-by} {refined}
|
||||
PROPER_NOUN_NT {refers: infs444} {eval: CONSTANT_NT {kind: coupon} {instance: I144} {enumeration: 0}} {created here}
|
||||
PROPER_NOUN_NT {refers: infs446} {eval: CONSTANT_NT {kind: coupon} {instance: I144} {enumeration: 0}} {created here}
|
||||
SENTENCE_NT'rhoda is a woman in marciony street' {unit: 3} {classified} {interpretation of subject: infs'gene'}
|
||||
VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve}
|
||||
PROPER_NOUN_NT'rhoda' {refined} {refers: infs'rhoda'} {eval: CONSTANT_NT'rhoda' {kind: object} {instance: I145'rhoda'} {enumeration: 0}} {created here}
|
||||
|
@ -917,7 +917,7 @@ ROOT_NT
|
|||
VERB_NT'carries' {verb 'carry' 3p s act IS_TENSE +ve}
|
||||
PROPER_NOUN_NT'martin' {refined} {refers: infs'martin'} {eval: CONSTANT_NT'martin' {kind: man} {instance: I149'martin'} {enumeration: 0}}
|
||||
RELATIONSHIP_NT'carries' {meaning: is-carried-by} {refined}
|
||||
PROPER_NOUN_NT {refers: infs451} {eval: CONSTANT_NT {kind: coupon} {instance: I151} {enumeration: 0}} {created here}
|
||||
PROPER_NOUN_NT {refers: infs453} {eval: CONSTANT_NT {kind: coupon} {instance: I151} {enumeration: 0}} {created here}
|
||||
SENTENCE_NT'antony is a man in movie rental' {unit: 3} {classified} {interpretation of subject: infs'martin'}
|
||||
VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve}
|
||||
PROPER_NOUN_NT'antony' {refined} {refers: infs'antony'} {eval: CONSTANT_NT'antony' {kind: object} {instance: I152'antony'} {enumeration: 0}} {created here}
|
||||
|
@ -926,7 +926,7 @@ ROOT_NT
|
|||
VERB_NT'carries' {verb 'carry' 3p s act IS_TENSE +ve}
|
||||
PROPER_NOUN_NT'antony' {refined} {refers: infs'antony'} {eval: CONSTANT_NT'antony' {kind: man} {instance: I152'antony'} {enumeration: 0}}
|
||||
RELATIONSHIP_NT'carries' {meaning: is-carried-by} {refined}
|
||||
PROPER_NOUN_NT {refers: infs453} {eval: CONSTANT_NT {kind: coupon} {instance: I153} {enumeration: 0}} {created here}
|
||||
PROPER_NOUN_NT {refers: infs455} {eval: CONSTANT_NT {kind: coupon} {instance: I153} {enumeration: 0}} {created here}
|
||||
SENTENCE_NT'antony carries a stamped envelope called a postcard' {unit: 3} {classified} {interpretation of subject: infs'antony'}
|
||||
VERB_NT'carries' {verb 'carry' 3p s act IS_TENSE +ve}
|
||||
PROPER_NOUN_NT'antony' {refined} {refers: infs'antony'} {eval: CONSTANT_NT'antony' {kind: man} {instance: I152'antony'} {enumeration: 0}}
|
||||
|
@ -946,24 +946,24 @@ ROOT_NT
|
|||
PROPER_NOUN_NT'shelby' {refined} {refers: infs'shelby'} {eval: CONSTANT_NT'shelby' {kind: man} {instance: I155'shelby'} {enumeration: 0}}
|
||||
RELATIONSHIP_NT'carries' {meaning: is-carried-by} {refined}
|
||||
AND_NT
|
||||
PROPER_NOUN_NT {refers: infs457} {eval: CONSTANT_NT {kind: stamped envelope} {instance: I157} {enumeration: 0}} {created here}
|
||||
PROPER_NOUN_NT {refers: infs459} {eval: CONSTANT_NT {kind: stamped envelope} {instance: I157} {enumeration: 0}} {created here}
|
||||
AND_NT
|
||||
PROPER_NOUN_NT {refers: infs458} {eval: CONSTANT_NT {kind: stamped envelope} {instance: I158} {enumeration: 0}} {created here}
|
||||
PROPER_NOUN_NT {refers: infs460} {eval: CONSTANT_NT {kind: stamped envelope} {instance: I158} {enumeration: 0}} {created here}
|
||||
AND_NT
|
||||
PROPER_NOUN_NT {refers: infs459} {eval: CONSTANT_NT {kind: stamped envelope} {instance: I159} {enumeration: 0}} {created here}
|
||||
PROPER_NOUN_NT {refers: infs461} {eval: CONSTANT_NT {kind: stamped envelope} {instance: I159} {enumeration: 0}} {created here}
|
||||
AND_NT
|
||||
PROPER_NOUN_NT {refers: infs460} {eval: CONSTANT_NT {kind: stamped envelope} {instance: I160} {enumeration: 0}} {created here}
|
||||
PROPER_NOUN_NT {refers: infs461} {eval: CONSTANT_NT {kind: stamped envelope} {instance: I161} {enumeration: 0}} {created here}
|
||||
PROPER_NOUN_NT {refers: infs462} {eval: CONSTANT_NT {kind: stamped envelope} {instance: I160} {enumeration: 0}} {created here}
|
||||
PROPER_NOUN_NT {refers: infs463} {eval: CONSTANT_NT {kind: stamped envelope} {instance: I161} {enumeration: 0}} {created here}
|
||||
SENTENCE_NT'shelby carries an ice cream cone' {unit: 3} {classified} {interpretation of subject: infs'shelby'}
|
||||
VERB_NT'carries' {verb 'carry' 3p s act IS_TENSE +ve}
|
||||
PROPER_NOUN_NT'shelby' {refined} {refers: infs'shelby'} {eval: CONSTANT_NT'shelby' {kind: man} {instance: I155'shelby'} {enumeration: 0}}
|
||||
RELATIONSHIP_NT'carries' {meaning: is-carried-by} {refined}
|
||||
PROPER_NOUN_NT {refers: infs462} {eval: CONSTANT_NT {kind: ice cream cone} {instance: I162} {enumeration: 0}} {created here}
|
||||
PROPER_NOUN_NT {refers: infs464} {eval: CONSTANT_NT {kind: ice cream cone} {instance: I162} {enumeration: 0}} {created here}
|
||||
SENTENCE_NT'shelby carries a coupon' {unit: 3} {classified} {interpretation of subject: infs'shelby'}
|
||||
VERB_NT'carries' {verb 'carry' 3p s act IS_TENSE +ve}
|
||||
PROPER_NOUN_NT'shelby' {refined} {refers: infs'shelby'} {eval: CONSTANT_NT'shelby' {kind: man} {instance: I155'shelby'} {enumeration: 0}}
|
||||
RELATIONSHIP_NT'carries' {meaning: is-carried-by} {refined}
|
||||
PROPER_NOUN_NT {refers: infs463} {eval: CONSTANT_NT {kind: coupon} {instance: I163} {enumeration: 0}} {created here}
|
||||
PROPER_NOUN_NT {refers: infs465} {eval: CONSTANT_NT {kind: coupon} {instance: I163} {enumeration: 0}} {created here}
|
||||
SENTENCE_NT'christopher is a man in the library' {unit: 3} {classified} {interpretation of subject: infs'shelby'}
|
||||
VERB_NT'is' {verb 'be' 3p s act IS_TENSE +ve}
|
||||
PROPER_NOUN_NT'christopher' {refined} {refers: infs'christopher'} {eval: CONSTANT_NT'christopher' {kind: object} {instance: I164'christopher'} {enumeration: 0}} {created here}
|
||||
|
|
|
@ -1,32 +1,33 @@
|
|||
100.0% in inform7 run
|
||||
71.0% in compilation to Inter
|
||||
50.4% in //Sequence::undertake_queued_tasks//
|
||||
4.8% in //MajorNodes::pre_pass//
|
||||
3.5% in //MajorNodes::pass_1//
|
||||
71.4% in compilation to Inter
|
||||
51.0% in //Sequence::undertake_queued_tasks//
|
||||
4.6% in //MajorNodes::pre_pass//
|
||||
3.4% in //MajorNodes::pass_1//
|
||||
1.8% in //ImperativeDefinitions::assess_all//
|
||||
1.6% in //RTPhrasebook::compile_entries//
|
||||
1.4% in //RTKindConstructors::compile//
|
||||
1.4% in //RTPhrasebook::compile_entries//
|
||||
1.0% in //Sequence::lint_inter//
|
||||
0.6% in //MajorNodes::pass_2//
|
||||
0.6% in //Sequence::undertake_queued_tasks//
|
||||
0.6% in //World::stage_V//
|
||||
0.4% in //ImperativeDefinitions::compile_first_block//
|
||||
0.4% in //Sequence::undertake_queued_tasks//
|
||||
0.4% in //Sequence::undertake_queued_tasks//
|
||||
0.2% in //CompletionModule::compile//
|
||||
0.2% in //InferenceSubjects::emit_all//
|
||||
0.2% in //RTKindConstructors::compile_permissions//
|
||||
0.2% in //Task::make_built_in_kind_constructors//
|
||||
3.0% not specifically accounted for
|
||||
3.2% not specifically accounted for
|
||||
25.8% in running Inter pipeline
|
||||
10.0% in step 14/15: generate inform6 -> auto.inf
|
||||
5.6% in step 5/15: load-binary-kits
|
||||
5.4% in step 6/15: make-synoptic-module
|
||||
5.6% in step 6/15: make-synoptic-module
|
||||
1.4% in step 9/15: make-identifiers-unique
|
||||
0.4% in step 12/15: eliminate-redundant-operations
|
||||
0.4% in step 4/15: compile-splats
|
||||
0.4% in step 7/15: shorten-wiring
|
||||
0.4% in step 8/15: detect-indirect-calls
|
||||
0.2% in step 10/15: reconcile-verbs
|
||||
0.2% in step 11/15: eliminate-redundant-labels
|
||||
0.2% in step 8/15: detect-indirect-calls
|
||||
1.5% not specifically accounted for
|
||||
2.7% in supervisor
|
||||
0.5% not specifically accounted for
|
||||
1.2% not specifically accounted for
|
||||
2.6% in supervisor
|
||||
0.2% not specifically accounted for
|
||||
|
|
|
@ -449,6 +449,26 @@ The current S-grammar has the following verb and preposition usages:
|
|||
{verb 'be able to see' s/p 3p pass WAS_TENSE -ve}
|
||||
{verb 'be able to see' s/p 3p pass IS_TENSE +ve}
|
||||
{verb 'be able to see' s/p 3p pass WAS_TENSE +ve}
|
||||
{verb 'be able to hear' 3p s act HASBEEN_TENSE -ve}
|
||||
{verb 'be able to hear' 3p p act HASBEEN_TENSE -ve}
|
||||
{verb 'be able to hear' s/p 3p act HADBEEN_TENSE -ve}
|
||||
{verb 'be able to hear' 3p s act HASBEEN_TENSE +ve}
|
||||
{verb 'be able to hear' 3p p act HASBEEN_TENSE +ve}
|
||||
{verb 'be able to hear' s/p 3p act HADBEEN_TENSE +ve}
|
||||
{verb 'be able to hear' s/p 3p act IS_TENSE -ve}
|
||||
{verb 'be able to hear' s/p 3p act WAS_TENSE -ve}
|
||||
{verb 'be able to hear' s/p 3p act IS_TENSE +ve}
|
||||
{verb 'be able to hear' s/p 3p act WAS_TENSE +ve}
|
||||
{verb 'be able to hear' 3p s pass HASBEEN_TENSE -ve}
|
||||
{verb 'be able to hear' 3p p pass HASBEEN_TENSE -ve}
|
||||
{verb 'be able to hear' s/p 3p pass HADBEEN_TENSE -ve}
|
||||
{verb 'be able to hear' 3p s pass HASBEEN_TENSE +ve}
|
||||
{verb 'be able to hear' 3p p pass HASBEEN_TENSE +ve}
|
||||
{verb 'be able to hear' s/p 3p pass HADBEEN_TENSE +ve}
|
||||
{verb 'be able to hear' s/p 3p pass IS_TENSE -ve}
|
||||
{verb 'be able to hear' s/p 3p pass WAS_TENSE -ve}
|
||||
{verb 'be able to hear' s/p 3p pass IS_TENSE +ve}
|
||||
{verb 'be able to hear' s/p 3p pass WAS_TENSE +ve}
|
||||
{verb 'be able to touch' 3p s act HASBEEN_TENSE -ve}
|
||||
{verb 'be able to touch' 3p p act HASBEEN_TENSE -ve}
|
||||
{verb 'be able to touch' s/p 3p act HADBEEN_TENSE -ve}
|
||||
|
@ -1224,6 +1244,7 @@ holding
|
|||
worn by
|
||||
wearing
|
||||
being able to see
|
||||
being able to hear
|
||||
being able to touch
|
||||
concealed by
|
||||
concealing
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"is": {
|
||||
"type": "kit",
|
||||
"title": "BasicInformExtrasKit",
|
||||
"version": "10.2.0-beta+6V70"
|
||||
"version": "10.2.0-beta+6V71"
|
||||
},
|
||||
"kit-details": {
|
||||
"has-priority": 1
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"is": {
|
||||
"type": "kit",
|
||||
"title": "BasicInformKit",
|
||||
"version": "10.2.0-beta+6V70"
|
||||
"version": "10.2.0-beta+6V71"
|
||||
},
|
||||
"needs": [ {
|
||||
"unless": {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"is": {
|
||||
"type": "kit",
|
||||
"title": "CommandParserKit",
|
||||
"version": "10.2.0-beta+6V70"
|
||||
"version": "10.2.0-beta+6V71"
|
||||
},
|
||||
"needs": [ {
|
||||
"need": {
|
||||
|
|
|
@ -102,7 +102,7 @@ Array DirectorStackLastInterlocutor --> MAX_BEAT_PERFORMANCE_NESTING;
|
|||
if (debug_dialogue >= 2) { print "-- Pop to: "; DirectorTraceStack(); }
|
||||
];
|
||||
|
||||
[ DirectorPerform db tab;
|
||||
[ DirectorPerform db without_detecting tab;
|
||||
if ((db == 0) || (db > NO_DIALOGUE_BEATS)) rfalse;
|
||||
if (debug_dialogue) {
|
||||
print "-- Performing ", (PrintDialogueBeatName) db, "^";
|
||||
|
@ -112,9 +112,10 @@ Array DirectorStackLastInterlocutor --> MAX_BEAT_PERFORMANCE_NESTING;
|
|||
DirectorPush(db, 0, 0);
|
||||
DirectorStackStart-->(director_sp - 1) = 1;
|
||||
tab = TableOfDialogueBeats-->db;
|
||||
if (tab-->3) DetectSceneChange();
|
||||
if ((tab-->3) && (without_detecting == false)) DetectSceneChange();
|
||||
if (tab-->1) (tab-->1)(DialogueTopicPool, true);
|
||||
DirectorRun(0);
|
||||
if (tab-->3) DetectSceneChange();
|
||||
if ((tab-->3) && (without_detecting == false)) DetectSceneChange();
|
||||
if (debug_dialogue) {
|
||||
print "-- Performance of ", (PrintDialogueBeatName) db, " ended^";
|
||||
}
|
||||
|
@ -128,15 +129,18 @@ Array DirectorStackLastInterlocutor --> MAX_BEAT_PERFORMANCE_NESTING;
|
|||
rfalse;
|
||||
];
|
||||
|
||||
[ DirectorPerformTiedBeat db;
|
||||
if (DirectorBeatBeingPerformed(db) == false) {
|
||||
DirectorPerform(db, true);
|
||||
}
|
||||
];
|
||||
|
||||
[ PERFORM_OPENING_BEAT_R db;
|
||||
db = InitialSituation-->START_BEAT_INIS;
|
||||
if (db) DirectorPerform(db);
|
||||
rfalse;
|
||||
];
|
||||
|
||||
[ DirectorTraceInst structure pc instruction depth;
|
||||
];
|
||||
|
||||
[ DirectorTraceStack j structure pc instruction depth tab;
|
||||
if (director_sp > 0) {
|
||||
print "[";
|
||||
|
@ -237,7 +241,7 @@ Global director_current_style = 1;
|
|||
];
|
||||
|
||||
Global director_speaker_list;
|
||||
[ DirectorSelectConverser val select_speaker speaker len i best best_score this_score x best_count;
|
||||
[ DirectorSelectConverser val select_speaker nonverbal speaker len i best best_score this_score x best_count;
|
||||
speaker = val;
|
||||
if (metaclass(val) == Routine) {
|
||||
if (director_speaker_list == 0) {
|
||||
|
@ -255,8 +259,8 @@ Global director_speaker_list;
|
|||
best_score = -1;
|
||||
best_count = 0;
|
||||
for (i=1: i<=len: i++) {
|
||||
speaker = LIST_OF_TY_GetItem(director_speaker_list, i);
|
||||
this_score = DirectorScoreConverser(speaker, select_speaker);
|
||||
speaker = LIST_OF_TY_GetItem(director_speaker_list, i, nonverbal);
|
||||
this_score = DirectorScoreConverser(speaker, select_speaker, nonverbal);
|
||||
if (this_score > best_score) {
|
||||
best = speaker;
|
||||
best_score = this_score;
|
||||
|
@ -283,16 +287,16 @@ Global director_speaker_list;
|
|||
return speaker;
|
||||
];
|
||||
|
||||
[ DirectorScoreConverser speaker select_speaker this_score;
|
||||
[ DirectorScoreConverser speaker select_speaker nonverbal this_score;
|
||||
if (select_speaker) {
|
||||
if (OnStage(speaker, -1)) this_score = this_score + 16;
|
||||
if (TestAudibility(player, speaker)) this_score = this_score + 8;
|
||||
if (DirectorTestAccessible(player, speaker, nonverbal)) this_score = this_score + 8;
|
||||
if (speaker == DirectorStackLastInterlocutor-->(director_sp-1)) this_score = this_score + 4;
|
||||
if (speaker ofclass K8_person) this_score = this_score + 2;
|
||||
if (speaker ~= DirectorStackLastSpeaker-->(director_sp-1)) this_score = this_score + 1;
|
||||
} else {
|
||||
if (OnStage(speaker, -1)) this_score = this_score + 16;
|
||||
if (TestAudibility(player, speaker)) this_score = this_score + 8;
|
||||
if (DirectorTestAccessible(player, speaker, nonverbal)) this_score = this_score + 8;
|
||||
if (speaker == DirectorStackLastSpeaker-->(director_sp-1)) this_score = this_score + 4;
|
||||
if (speaker ofclass K8_person) this_score = this_score + 2;
|
||||
if (speaker ~= DirectorStackLastInterlocutor-->(director_sp-1)) this_score = this_score + 1;
|
||||
|
@ -300,7 +304,7 @@ Global director_speaker_list;
|
|||
return this_score;
|
||||
];
|
||||
|
||||
[ DirectorPerformLine dl tab fn action_fn speaker interlocutor manner mentioning;
|
||||
[ DirectorPerformLine dl tab fn action_fn speaker interlocutor manner mentioning nonverbal;
|
||||
if (dl == 0) rfalse;
|
||||
line_performance_count++;
|
||||
! Must either be unperformed or recurring
|
||||
|
@ -309,15 +313,15 @@ Global director_speaker_list;
|
|||
tab = TableOfDialogueLines-->dl;
|
||||
! Must be available
|
||||
fn = tab-->0; if ((fn) && (fn() == false)) rfalse;
|
||||
|
||||
if ((tab-->7) & 2) nonverbal = true;
|
||||
! A speaker matching the description must be found, unless it's narration
|
||||
if (tab-->1) {
|
||||
speaker = DirectorSelectConverser(tab-->1, true);
|
||||
if ((speaker == nothing) || (TestAudibility(player, speaker) == false)) rfalse;
|
||||
speaker = DirectorSelectConverser(tab-->1, true, nonverbal);
|
||||
if ((speaker == nothing) || (DirectorTestAccessible(player, speaker, nonverbal) == false)) rfalse;
|
||||
}
|
||||
if (tab-->2) {
|
||||
interlocutor = DirectorSelectConverser(tab-->2, false);
|
||||
if ((interlocutor == nothing) || (TestAudibility(speaker, interlocutor) == false)) rfalse;
|
||||
interlocutor = DirectorSelectConverser(tab-->2, false, nonverbal);
|
||||
if ((interlocutor == nothing) || (DirectorTestAccessible(speaker, interlocutor, nonverbal) == false)) rfalse;
|
||||
}
|
||||
manner = tab-->4;
|
||||
action_fn = tab-->6;
|
||||
|
@ -687,6 +691,11 @@ Global director_is_active = false;
|
|||
director_is_active = false;
|
||||
];
|
||||
|
||||
[ DirectorTestAccessible from to nonverbal;
|
||||
if (nonverbal) return TestVisibility(from, to);
|
||||
return TestAudibility(from, to);
|
||||
];
|
||||
|
||||
[ DirectorBeatAvailableToPlayer db tab i speaker;
|
||||
if ((GProperty(DIALOGUE_BEAT_TY, db, performed) == 0) ||
|
||||
(GProperty(DIALOGUE_BEAT_TY, db, recurring))) {
|
||||
|
@ -729,7 +738,11 @@ Global director_is_active = false;
|
|||
fn = tab-->0;
|
||||
if ((fn == 0) || ((fn)(latest_performed_beat))) {
|
||||
fn = tab-->1;
|
||||
if ((fn) && (fn(DialogueTopicPool))) { DirectorPerform(db); break; }
|
||||
if ((fn) && (fn(DialogueTopicPool))) {
|
||||
DirectorPerform(db);
|
||||
line_performance_count = 0;
|
||||
rfalse;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -737,7 +750,9 @@ Global director_is_active = false;
|
|||
if (GProperty(DIALOGUE_BEAT_TY, db, spontaneous)) {
|
||||
if (DirectorBeatAvailableToPlayer(db)) {
|
||||
DirectorEmptyLiveSubjectList();
|
||||
DirectorPerform(db); break;
|
||||
DirectorPerform(db);
|
||||
line_performance_count = 0;
|
||||
rfalse;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -746,6 +761,20 @@ Global director_is_active = false;
|
|||
rfalse;
|
||||
];
|
||||
|
||||
[ DirectorIntervenes obj tab fn db;
|
||||
for (db=1: db<=NO_DIALOGUE_BEATS: db++) {
|
||||
if (DirectorBeatAvailableToPlayer(db)) {
|
||||
tab = TableOfDialogueBeats-->db;
|
||||
fn = tab-->0;
|
||||
if ((fn == 0) || ((fn)(latest_performed_beat))) {
|
||||
fn = tab-->1;
|
||||
if ((fn) && (fn(DialogueTopicPool))) { DirectorPerform(db); rtrue; }
|
||||
}
|
||||
}
|
||||
}
|
||||
rfalse;
|
||||
];
|
||||
|
||||
[ DirectorTestLineContainment dl db tab structure pc instruction;
|
||||
! print "I.e. whether ", (PrintDialogueLineName) dl, " is in ", (PrintDialogueBeatName) db, "^";
|
||||
if ((db < 1) || (db > NO_DIALOGUE_BEATS)) rfalse;
|
||||
|
@ -769,9 +798,39 @@ Global director_is_active = false;
|
|||
return text;
|
||||
];
|
||||
|
||||
[ DirectorLineNarrated dl tab;
|
||||
if ((dl == 0) || (dl > NO_DIALOGUE_LINES)) rfalse;
|
||||
tab = TableOfDialogueLines-->dl;
|
||||
if (tab-->1 == 0) rtrue;
|
||||
rfalse;
|
||||
];
|
||||
|
||||
[ DirectorLineNonverbal dl tab;
|
||||
if ((dl == 0) || (dl > NO_DIALOGUE_LINES)) rfalse;
|
||||
tab = TableOfDialogueLines-->dl;
|
||||
if ((tab-->7) & 2) rtrue;
|
||||
rfalse;
|
||||
];
|
||||
|
||||
[ DirectorLineStoryEnding dl tab;
|
||||
if ((dl == 0) || (dl > NO_DIALOGUE_LINES)) rfalse;
|
||||
tab = TableOfDialogueLines-->dl;
|
||||
if ((tab-->7) & 12) rtrue;
|
||||
rfalse;
|
||||
];
|
||||
|
||||
[ DirectorChoiceContent dc text tab;
|
||||
if ((dc == 0) || (dc > NO_DIALOGUE_CHOICES)) return text;
|
||||
tab = TableOfDialogueChoices-->dc;
|
||||
BlkValueCopy(text, tab-->2);
|
||||
return text;
|
||||
];
|
||||
|
||||
[ DirectorChoiceFlowing dc tab type;
|
||||
if ((dc == 0) || (dc > NO_DIALOGUE_CHOICES)) rfalse;
|
||||
tab = TableOfDialogueChoices-->dc;
|
||||
type = tab-->0;
|
||||
if (type == NEW_CHOICE_DSEL or AGAIN_DSEL or STOP_DSEL or PERFORM_DSEL)
|
||||
rtrue;
|
||||
rfalse;
|
||||
];
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -2,7 +2,7 @@
|
|||
"is": {
|
||||
"type": "kit",
|
||||
"title": "EnglishLanguageKit",
|
||||
"version": "10.2.0-beta+6V70"
|
||||
"version": "10.2.0-beta+6V71"
|
||||
},
|
||||
"needs": [ {
|
||||
"need": {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"is": {
|
||||
"type": "kit",
|
||||
"title": "WorldModelKit",
|
||||
"version": "10.2.0-beta+6V70"
|
||||
"version": "10.2.0-beta+6V71"
|
||||
},
|
||||
"needs": [ {
|
||||
"need": {
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
"list of subdued dialogue beats" = list of dialogue beats: {epsilon beat}
|
||||
== Performance...
|
||||
"list of unperformed dialogue beats" = list of dialogue beats: {alpha beat, beta beat, gamma beat, delta beat, epsilon beat, nu beat, mu beat, eta beat}
|
||||
|
||||
Daphne: "Welcome to the Museum of Cricket."
|
||||
|
||||
"list of unperformed dialogue beats" = list of dialogue beats: {beta beat, gamma beat, delta beat, epsilon beat, nu beat, mu beat, eta beat}
|
||||
|
@ -30,14 +31,15 @@
|
|||
"list of relevant dialogue beats" = list of dialogue beats: {beta beat, gamma beat}
|
||||
== Availability...
|
||||
"list of available dialogue beats" = list of dialogue beats: {alpha beat, beta beat, gamma beat, nu beat, eta beat}
|
||||
|
||||
Daphne: "A cricket ball is made with a core of cork, which is layered with tightly wound string, and covered by a leather case with a slightly raised sewn seam."
|
||||
|
||||
"list of available dialogue beats" = list of dialogue beats: {alpha beat, beta beat, gamma beat, epsilon beat, nu beat, eta beat}
|
||||
Daphne: "Cricket's kind of dull, when you think about it."
|
||||
|
||||
ball: "I disagree!"
|
||||
The ball: "I disagree!"
|
||||
|
||||
bat: "I especially enjoy it."
|
||||
The bat: "I especially enjoy it."
|
||||
|
||||
"list of available dialogue beats" = list of dialogue beats: {alpha beat, beta beat, gamma beat, epsilon beat, nu beat}
|
||||
"list of available dialogue beats" = list of dialogue beats: {alpha beat, beta beat, gamma beat, epsilon beat, nu beat, mu beat}
|
||||
|
|
|
@ -45,7 +45,7 @@
|
|||
> > Cricket History Museum
|
||||
Listen politely.
|
||||
|
||||
Honey Maiden (Spoken rapidly): "The first ever cricket match is thought to have taken place in 18th-century Hampshire."
|
||||
Honey Maiden: "The first ever cricket match is thought to have taken place in 18th-century Hampshire."
|
||||
|
||||
Honey Maiden: "And now, Mr Bond, it is time for you to consider our exhibits!"
|
||||
|
||||
|
@ -61,7 +61,7 @@
|
|||
** kiss honey
|
||||
Honey Maiden: "Oh, James... Ever since we met eighty seconds ago I have wanted you..."
|
||||
|
||||
You took Sean Connery choice, choice-2, choice-3, choice-6, choice-7, choice-10, choice-11, choice-12, choice-14, choice-15 and choice-16, and heard line-1, line-2, line-3, line-4, line-7, line-11, line-12, line-14 and line-15 in the beats arrival beat and closer examination beat.
|
||||
You took Sean Connery choice, flow-2, choice-3, choice-6, flow-7, flow-10, choice-11, flow-12, choice-14, flow-15 and choice-16, and heard line-1, line-2, line-3, line-4, line-7, line-11, line-12, line-14 and line-15 in the beats arrival beat and closer examination beat.
|
||||
|
||||
|
||||
|
||||
|
@ -112,7 +112,7 @@
|
|||
> > Cricket History Museum
|
||||
Listen politely.
|
||||
|
||||
Honey Maiden (Spoken rapidly): "The first ever cricket match is thought to have taken place in stone-age Dresden."
|
||||
Honey Maiden: "The first ever cricket match is thought to have taken place in stone-age Dresden."
|
||||
|
||||
Honey Maiden: "And now, Mr Bond, it is time for you to consider our exhibits!"
|
||||
|
||||
|
@ -142,7 +142,7 @@
|
|||
|
||||
Honey Maiden: "That concludes our tour. And frankly, Mr Bond, I expected a little more personal attention from Universal Export's most notorious womanizer."
|
||||
|
||||
You took choice-3, choice-4, choice-5, choice-10, choice-11, choice-12, choice-13, choice-14, choice-15, choice-19 and choice-20, and heard line-1, line-2, line-4, line-6, line-10, line-11, line-12, line-13, line-14, line-16, line-17 and line-18 in the beats arrival beat and closer examination beat.
|
||||
You took choice-3, choice-4, flow-5, flow-10, choice-11, flow-12, choice-13, choice-14, flow-15, choice-19 and flow-20, and heard line-1, line-2, line-4, line-6, line-10, line-11, line-12, line-13, line-14, line-16, line-17 and line-18 in the beats arrival beat and closer examination beat.
|
||||
|
||||
|
||||
|
||||
|
@ -174,7 +174,7 @@
|
|||
> > Cricket History Museum
|
||||
Make feeble wordplay, light of it, and an escape.
|
||||
|
||||
yourself: "Sorry, Honey, it's time for a "run out"."
|
||||
You: "Sorry, Honey, it's time for a "run out"."
|
||||
|
||||
(1) Hurl myself at the window.
|
||||
(2) Use my rocket-pack.
|
||||
|
|
|
@ -378,6 +378,20 @@
|
|||
thing
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left" valign="top">
|
||||
audibility
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
spatial
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
thing
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
thing
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="left" valign="top">
|
||||
touchability
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
Inform 7 v10.1.0 has started.
|
||||
Inform 7 v10.2.0 has started.
|
||||
I've now read your source text, which is 11 words long.
|
||||
I've also read Basic Inform by Graham Nelson, which is 7687 words long.
|
||||
I've also read Basic Inform by Graham Nelson, which is 7691 words long.
|
||||
I've also read English Language by Graham Nelson, which is 2328 words long.
|
||||
I've also read Standard Rules by Graham Nelson, which is 32113 words long.
|
||||
I've also read Standard Rules by Graham Nelson, which is 32957 words long.
|
||||
Problem__ PM_KindUnalterable
|
||||
>--> You wrote 'A person is a kind of room' (source text, line 2), but that
|
||||
seems to contradict 'A person is a kind of thing' (the Standard Rules, line 94),
|
||||
seems to contradict 'A person is a kind of thing' (the Standard Rules, line 95),
|
||||
as a room and a thing are incompatible. (If a room were a kind of a thing
|
||||
or vice versa there'd be no problem, but they aren't.)
|
||||
Inform 7 has finished.
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
Inform 7 v10.1.0 has started.
|
||||
Inform 7 v10.2.0 has started.
|
||||
I've now read your source text, which is 11 words long.
|
||||
I've also read Basic Inform by Graham Nelson, which is 7687 words long.
|
||||
I've also read Basic Inform by Graham Nelson, which is 7691 words long.
|
||||
I've also read English Language by Graham Nelson, which is 2328 words long.
|
||||
I've also read Standard Rules by Graham Nelson, which is 32113 words long.
|
||||
I've also read Standard Rules by Graham Nelson, which is 32957 words long.
|
||||
Problem__ PM_KindsCircular
|
||||
>--> You wrote 'A person is a kind of animal' (source text, line 3), but that
|
||||
seems to contradict 'An animal is a kind of person' (the Standard Rules, line 316),
|
||||
seems to contradict 'An animal is a kind of person' (the Standard Rules, line 317),
|
||||
as it would make a circularity with an animal and a thing each being kinds
|
||||
of the other.
|
||||
Inform 7 has finished.
|
||||
|
|
|
@ -2,10 +2,10 @@ Inform 7 v10.2.0 has started.
|
|||
I've now read your source text, which is 33 words long.
|
||||
I've also read Basic Inform by Graham Nelson, which is 7691 words long.
|
||||
I've also read English Language by Graham Nelson, which is 2328 words long.
|
||||
I've also read Standard Rules by Graham Nelson, which is 32205 words long.
|
||||
I've also read Standard Rules by Graham Nelson, which is 32936 words long.
|
||||
Problem__ PM_LineToNonObject
|
||||
In Section 1 - Meeting:
|
||||
>--> The dialogue line 'Marcellus (to 150): "I have seen naught."' (source
|
||||
text, line 9) is apparently spoken to '150', but that seems to describe a
|
||||
number, not an object.
|
||||
number, not a person or some other object.
|
||||
Inform 7 has finished.
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
Inform 7 v10.1.0 has started.
|
||||
Inform 7 v10.2.0 has started.
|
||||
I've now read your source text, which is 46 words long.
|
||||
I've also read Basic Inform by Graham Nelson, which is 7687 words long.
|
||||
I've also read Basic Inform by Graham Nelson, which is 7691 words long.
|
||||
I've also read English Language by Graham Nelson, which is 2328 words long.
|
||||
I've also read Standard Rules by Graham Nelson, which is 32113 words long.
|
||||
I've also read Standard Rules by Graham Nelson, which is 32957 words long.
|
||||
Problem__ PM_VarKOVClash
|
||||
In Part Three - Variables and Rulebooks, Chapter 1 - Variables, Section 3 -
|
||||
Used when ruling on accessibility in the extension Standard Rules by Graham
|
||||
Nelson:
|
||||
>--> You wrote 'The container in question is an object that varies' (the
|
||||
Standard Rules, line 430): but the name supplied for this new variable is a
|
||||
Standard Rules, line 431): but the name supplied for this new variable is a
|
||||
piece of text which is not available because it has a rival meaning
|
||||
already, as a result of definitions made elsewhere. (Sometimes these are
|
||||
indirect: for instance, defining a column in a table called 'question' can
|
||||
|
@ -19,7 +19,7 @@ In Part Three - Variables and Rulebooks, Chapter 1 - Variables, Section 3 -
|
|||
defined which might cause this clash.
|
||||
Problem__ PM_VarKOVClash
|
||||
>--> You wrote 'The supporter in question is an object that varies' (the
|
||||
Standard Rules, line 431): again, the name supplied for this new variable
|
||||
Standard Rules, line 432): again, the name supplied for this new variable
|
||||
is a piece of text which is not available because it has a rival meaning
|
||||
already.
|
||||
Inform 7 has finished.
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
Inform 7 v10.1.0 has started.
|
||||
Inform 7 v10.2.0 has started.
|
||||
I've now read your source text, which is 15 words long.
|
||||
I've also read Basic Inform by Graham Nelson, which is 7687 words long.
|
||||
I've also read Basic Inform by Graham Nelson, which is 7691 words long.
|
||||
I've also read English Language by Graham Nelson, which is 2328 words long.
|
||||
I've also read Standard Rules by Graham Nelson, which is 32067 words long.
|
||||
I've also read Standard Rules by Graham Nelson, which is 32957 words long.
|
||||
Problem__ PM_VariableContradiction
|
||||
>--> You wrote 'The command prompt is "What do you want to do? >"' (source
|
||||
text, line 3), but in another sentence 'The command prompt is ">"' (the
|
||||
Standard Rules, line 455): but this looks like a contradiction, because the
|
||||
Standard Rules, line 456): but this looks like a contradiction, because the
|
||||
initial value of this variable seems to be being set in each of these
|
||||
sentences, but with a different outcome.
|
||||
Inform 7 has finished.
|
||||
|
|
|
@ -138,6 +138,7 @@ organisation, and are not directly functional in themselves.
|
|||
|
||||
case DIALOGUE_CUE_NT:
|
||||
if (global_pass_state.pass == 0) DialogueBeats::new(p);
|
||||
if (global_pass_state.pass == 1) DialogueBeats::make_tied_scene(p);
|
||||
break;
|
||||
case DIALOGUE_CHOICE_NT:
|
||||
if (global_pass_state.pass == 0) DialogueChoices::new(p);
|
||||
|
|
|
@ -281,6 +281,7 @@ void CoreSyntax::grant_unit_permissions(void) {
|
|||
|
||||
@h Annotations of Level 2 nodes.
|
||||
|
||||
@e beat_defined_here_ANNOT /* |dialogue_beat|: for nodes of beat cues */
|
||||
@e classified_ANNOT /* |int|: this sentence has been classified */
|
||||
@e clears_pronouns_ANNOT /* |int|: this sentence erases the current value of "it" */
|
||||
@e dialogue_beat_clause_ANNOT /* |int|: for clauses of dialogue cues introducing beats */
|
||||
|
@ -294,17 +295,21 @@ void CoreSyntax::grant_unit_permissions(void) {
|
|||
@e you_can_ignore_ANNOT /* |int|: for assertions now drained of meaning */
|
||||
|
||||
= (early code)
|
||||
DECLARE_ANNOTATION_FUNCTIONS(beat_defined_here, dialogue_beat)
|
||||
DECLARE_ANNOTATION_FUNCTIONS(impdef, imperative_defn)
|
||||
DECLARE_ANNOTATION_FUNCTIONS(implicit_in_creation_of, inference_subject)
|
||||
DECLARE_ANNOTATION_FUNCTIONS(interpretation_of_subject, inference_subject)
|
||||
|
||||
@ =
|
||||
MAKE_ANNOTATION_FUNCTIONS(beat_defined_here, dialogue_beat)
|
||||
MAKE_ANNOTATION_FUNCTIONS(impdef, imperative_defn)
|
||||
MAKE_ANNOTATION_FUNCTIONS(implicit_in_creation_of, inference_subject)
|
||||
MAKE_ANNOTATION_FUNCTIONS(interpretation_of_subject, inference_subject)
|
||||
|
||||
@ =
|
||||
void CoreSyntax::declare_L2_annotations(void) {
|
||||
Annotations::declare_type(
|
||||
beat_defined_here_ANNOT, CoreSyntax::write_beat_defined_here_ANNOT);
|
||||
Annotations::declare_type(
|
||||
classified_ANNOT, CoreSyntax::write_classified_ANNOT);
|
||||
Annotations::declare_type(
|
||||
|
@ -328,6 +333,10 @@ void CoreSyntax::declare_L2_annotations(void) {
|
|||
Annotations::declare_type(
|
||||
you_can_ignore_ANNOT, CoreSyntax::write_you_can_ignore_ANNOT);
|
||||
}
|
||||
void CoreSyntax::write_beat_defined_here_ANNOT(text_stream *OUT, parse_node *p) {
|
||||
if (Node::get_beat_defined_here(p))
|
||||
WRITE(" {defines beat: %d}", Node::get_beat_defined_here(p)->allocation_id);
|
||||
}
|
||||
void CoreSyntax::write_classified_ANNOT(text_stream *OUT, parse_node *p) {
|
||||
if (Annotations::read_int(p, classified_ANNOT))
|
||||
WRITE(" {classified}");
|
||||
|
@ -386,6 +395,7 @@ void CoreSyntax::grant_L2_permissions(void) {
|
|||
Annotations::allow_for_category(L2_NCAT, clears_pronouns_ANNOT);
|
||||
Annotations::allow_for_category(L2_NCAT, interpretation_of_subject_ANNOT);
|
||||
Annotations::allow_for_category(L2_NCAT, verb_problem_issued_ANNOT);
|
||||
Annotations::allow(DIALOGUE_CUE_NT, beat_defined_here_ANNOT);
|
||||
Annotations::allow(IMPERATIVE_NT, impdef_ANNOT);
|
||||
Annotations::allow(IMPERATIVE_NT, indentation_level_ANNOT);
|
||||
Annotations::allow(SENTENCE_NT, implicit_in_creation_of_ANNOT);
|
||||
|
|
|
@ -742,13 +742,10 @@ Before performing a dialogue line:
|
|||
|
||||
For performing a dialogue line (called L)
|
||||
(this is the default dialogue performance rule):
|
||||
if L is elaborated:
|
||||
if L is narrated or L is elaborated or L is non-verbal:
|
||||
say "[textual content of L][line break]";
|
||||
otherwise:
|
||||
if the speaker is something:
|
||||
say "[The speaker]";
|
||||
if the interlocutor is something:
|
||||
say " (to [the interlocutor])";
|
||||
say ": '[textual content of L]'[line break]";
|
||||
otherwise:
|
||||
say "[textual content of L][line break]".
|
||||
say "[The speaker]";
|
||||
if the interlocutor is something:
|
||||
say " (to [the interlocutor])";
|
||||
say ": '[textual content of L]'[line break]".
|
||||
|
|
|
@ -1322,12 +1322,11 @@ To decide what performance style is the current dialogue line style:
|
|||
(- DirectorCurrentLineStyle() -).
|
||||
|
||||
To perform (B - a dialogue beat):
|
||||
ask DialogueKit to perform B;
|
||||
now B is performed.
|
||||
|
||||
To ask DialogueKit to perform (B - a dialogue beat):
|
||||
(- DirectorPerform({B}); -).
|
||||
|
||||
To decide whether dialogue/dialog about (O - an object) intervenes:
|
||||
(- DirectorIntervenes({O}) -).
|
||||
|
||||
To showme the beat structure of (B - dialogue beat): (- DirectorBeatPrintStructure({B}); -).
|
||||
|
||||
Definition: A dialogue beat is available rather than unavailable if Inter routine
|
||||
|
@ -1339,9 +1338,21 @@ Definition: A dialogue beat is relevant rather than irrelevant if Inter routine
|
|||
Definition: A dialogue line is available rather than unavailable if Inter routine
|
||||
"DirectorLineAvailable" says so (it meets all its if and unless conditions).
|
||||
|
||||
Definition: A dialogue line is narrated rather than unnarrated if Inter routine
|
||||
"DirectorLineNarrated" says so (it is a Narration line rather than what somebody is saying).
|
||||
|
||||
Definition: A dialogue line is non-verbal rather than verbal if Inter routine
|
||||
"DirectorLineNonverbal" says so (it is a non-verbal communication, like a gesture).
|
||||
|
||||
Definition: A dialogue line is story-ending if Inter routine
|
||||
"DirectorLineStoryEnding" says so (it is a line which, when performed, ends the story).
|
||||
|
||||
Definition: A dialogue beat is being performed if Inter routine
|
||||
"DirectorBeatBeingPerformed" says so (it is currently having its lines performed).
|
||||
|
||||
Definition: A dialogue choice is flowing rather than offered if Inter routine
|
||||
"DirectorChoiceFlowing" says so (it is a flow-control point rather than an option).
|
||||
|
||||
To abide by dialogue before action choices:
|
||||
(- if (DirectorBeforeAction()) rtrue; -).
|
||||
|
||||
|
|
|
@ -48,6 +48,7 @@ each of which is a |DIALOGUE_CLAUSE_NT|.
|
|||
dialogue_beat *DialogueBeats::new(parse_node *PN) {
|
||||
@<See if we are expecting a dialogue beat@>;
|
||||
dialogue_beat *db = CREATE(dialogue_beat);
|
||||
Node::set_beat_defined_here(PN, db);
|
||||
@<Initialise the beat@>;
|
||||
|
||||
previous_dialogue_beat = current_dialogue_beat;
|
||||
|
@ -276,6 +277,21 @@ void DialogueBeats::non_unique_instance_problem(instance *I, kind *K) {
|
|||
Problems::issue_problem_end();
|
||||
}
|
||||
|
||||
@h During pass 1.
|
||||
This is unfinished business (see above):
|
||||
|
||||
=
|
||||
void DialogueBeats::make_tied_scene(parse_node *p) {
|
||||
dialogue_beat *db = Node::get_beat_defined_here(p);
|
||||
if ((db) && (Wordings::nonempty(db->scene_name))) {
|
||||
pcalc_prop *prop =
|
||||
Propositions::Abstract::to_create_something(K_scene, db->scene_name);
|
||||
Assert::true(prop, CERTAIN_CE);
|
||||
db->as_scene = Scenes::from_named_constant(Instances::latest());
|
||||
Scenes::set_beat(db->as_scene, db);
|
||||
}
|
||||
}
|
||||
|
||||
@h Processing beats after pass 1.
|
||||
It's now a little later, and the following is called to look at each beat and
|
||||
parse its clauses further.
|
||||
|
@ -285,24 +301,12 @@ void DialogueBeats::decide_cue_sequencing(void) {
|
|||
dialogue_beat *db, *previous = NULL;
|
||||
LOOP_OVER(db, dialogue_beat) {
|
||||
current_sentence = db->cue_at;
|
||||
@<Create any scene instance needed@>;
|
||||
@<Parse sequencing clauses@>;
|
||||
DialogueNodes::find_decisions_in_beat(db);
|
||||
previous = db;
|
||||
}
|
||||
}
|
||||
|
||||
@ This is unfinished business (see above), and not in fact to with beat
|
||||
sequencing.
|
||||
|
||||
@<Create any scene instance needed@> =
|
||||
if (Wordings::nonempty(db->scene_name)) {
|
||||
pcalc_prop *prop = Propositions::Abstract::to_create_something(K_scene, db->scene_name);
|
||||
Assert::true(prop, CERTAIN_CE);
|
||||
db->as_scene = Scenes::from_named_constant(Instances::latest());
|
||||
Scenes::set_beat(db->as_scene, db);
|
||||
}
|
||||
|
||||
@ But now we take care of another five clause types, all to do with the beat being
|
||||
performed only after or before other beats.
|
||||
|
||||
|
|
|
@ -20,6 +20,7 @@ will have become:
|
|||
dialogue_choice *DialogueChoices::new(parse_node *PN) {
|
||||
int L = Annotations::read_int(PN, dialogue_level_ANNOT);
|
||||
if (L < 0) L = 0;
|
||||
int flow_control = FALSE;
|
||||
dialogue_choice *dc = CREATE(dialogue_choice);
|
||||
@<Initialise the choice@>;
|
||||
@<Parse the clauses just enough to classify them@>;
|
||||
|
@ -52,22 +53,6 @@ typedef struct dialogue_choice {
|
|||
dc->selection_type = AGAIN_DSEL;
|
||||
dc->compilation_data = RTDialogueChoices::new(PN, dc);
|
||||
|
||||
@ Each choice produces an instance of the kind |dialogue choice|, using the name
|
||||
given in its clauses if one was.
|
||||
|
||||
@<Add the choice to the world model@> =
|
||||
if (K_dialogue_choice == NULL) internal_error("DialogueKit has not created K_dialogue_choice");
|
||||
wording W = dc->choice_name;
|
||||
if (Wordings::empty(W)) {
|
||||
TEMPORARY_TEXT(faux_name)
|
||||
WRITE_TO(faux_name, "choice-%d", dc->allocation_id + 1);
|
||||
W = Feeds::feed_text(faux_name);
|
||||
DISCARD_TEXT(faux_name)
|
||||
}
|
||||
pcalc_prop *prop = Propositions::Abstract::to_create_something(K_dialogue_choice, W);
|
||||
Assert::true(prop, CERTAIN_CE);
|
||||
dc->as_instance = Instances::latest();
|
||||
|
||||
@<Parse the clauses just enough to classify them@> =
|
||||
int failed_already = FALSE;
|
||||
for (parse_node *clause = PN->down; clause; clause = clause->next) {
|
||||
|
@ -173,6 +158,7 @@ given in its clauses if one was.
|
|||
"rather than '<-' (backwards flow) or '--' (an option).");
|
||||
Problems::issue_problem_end();
|
||||
}
|
||||
if ((left_arrow) || (right_arrow)) flow_control = TRUE;
|
||||
|
||||
@ As with the analogous clauses for //Dialogue Beats//, each clause can be one
|
||||
of the following possibilities:
|
||||
|
@ -226,6 +212,25 @@ void DialogueChoices::write_dcc(OUTPUT_STREAM, int c) {
|
|||
perform <definite-article> ... | ==> { PERFORM_DSEL, - }
|
||||
perform ... ==> { PERFORM_DSEL, - }
|
||||
|
||||
@ Each choice produces an instance of the kind |dialogue choice|, using the name
|
||||
given in its clauses if one was.
|
||||
|
||||
@<Add the choice to the world model@> =
|
||||
if (K_dialogue_choice == NULL) internal_error("DialogueKit has not created K_dialogue_choice");
|
||||
wording W = dc->choice_name;
|
||||
if (Wordings::empty(W)) {
|
||||
TEMPORARY_TEXT(faux_name)
|
||||
if (flow_control)
|
||||
WRITE_TO(faux_name, "flow-%d", dc->allocation_id + 1);
|
||||
else
|
||||
WRITE_TO(faux_name, "choice-%d", dc->allocation_id + 1);
|
||||
W = Feeds::feed_text(faux_name);
|
||||
DISCARD_TEXT(faux_name)
|
||||
}
|
||||
pcalc_prop *prop = Propositions::Abstract::to_create_something(K_dialogue_choice, W);
|
||||
Assert::true(prop, CERTAIN_CE);
|
||||
dc->as_instance = Instances::latest();
|
||||
|
||||
@h Processing choices after pass 1.
|
||||
It's now a little later, and the following is called to look at each choice.
|
||||
There's not much to do: just to identify the beat to be performed, if there
|
||||
|
|
|
@ -267,7 +267,7 @@ void DialogueLines::decide_line_mentions(void) {
|
|||
EitherOrProperties::as_adjective(P_elaborated), FALSE);
|
||||
prop = Propositions::concatenate(
|
||||
Propositions::Abstract::prop_to_set_kind(K_dialogue_line), prop);
|
||||
Assert::true_about(prop, subj, CERTAIN_CE);
|
||||
Assert::true_about(prop, subj, LIKELY_CE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -330,7 +330,7 @@ void DialogueLines::decide_line_mentions(void) {
|
|||
Problems::quote_kind(3, K);
|
||||
StandardProblems::handmade_problem(Task::syntax_tree(), _p_(PM_LineToNonObject));
|
||||
Problems::issue_problem_segment(
|
||||
"The dialogue line %1 is apparently spoken by '%2', but that "
|
||||
"The dialogue line %1 is apparently spoken to '%2', but that "
|
||||
"seems to describe %3, not a person or some other object.");
|
||||
Problems::issue_problem_end();
|
||||
}
|
||||
|
@ -339,7 +339,7 @@ void DialogueLines::decide_line_mentions(void) {
|
|||
Problems::quote_wording(2, S);
|
||||
StandardProblems::handmade_problem(Task::syntax_tree(), _p_(PM_LineToUnknown));
|
||||
Problems::issue_problem_segment(
|
||||
"The dialogue line %1 is apparently spoken by '%2', but that "
|
||||
"The dialogue line %1 is apparently spoken to '%2', but that "
|
||||
"isn't something I recognise as the name of a thing or person.");
|
||||
Problems::issue_problem_end();
|
||||
}
|
||||
|
|
|
@ -547,7 +547,7 @@ problem messages are phrased differently if something goes wrong.
|
|||
@<Inline annotation "try-action"@> =
|
||||
if (Rvalues::is_CONSTANT_of_kind(supplied, K_stored_action)) {
|
||||
explicit_action *ea = Node::get_constant_explicit_action(supplied);
|
||||
CompileRvalues::compile_explicit_action(ea, FALSE);
|
||||
CSIInline::compile_try_action(ea, FALSE);
|
||||
} else {
|
||||
EmitCode::call(Hierarchy::find(STORED_ACTION_TY_TRY_HL));
|
||||
EmitCode::down();
|
||||
|
@ -560,42 +560,7 @@ problem messages are phrased differently if something goes wrong.
|
|||
@<Inline annotation "try-action-silently"@> =
|
||||
if (Rvalues::is_CONSTANT_of_kind(supplied, K_stored_action)) {
|
||||
explicit_action *ea = Node::get_constant_explicit_action(supplied);
|
||||
EmitCode::inv(PUSH_BIP);
|
||||
EmitCode::down();
|
||||
EmitCode::val_iname(K_value, Hierarchy::find(KEEP_SILENT_HL));
|
||||
EmitCode::up();
|
||||
EmitCode::inv(STORE_BIP);
|
||||
EmitCode::down();
|
||||
EmitCode::ref_iname(K_value, Hierarchy::find(KEEP_SILENT_HL));
|
||||
EmitCode::val_number(1);
|
||||
EmitCode::up();
|
||||
EmitCode::inv(PUSH_BIP);
|
||||
EmitCode::down();
|
||||
EmitCode::val_iname(K_value, Hierarchy::find(SAY__P_HL));
|
||||
EmitCode::up();
|
||||
EmitCode::inv(PUSH_BIP);
|
||||
EmitCode::down();
|
||||
EmitCode::val_iname(K_value, Hierarchy::find(SAY__PC_HL));
|
||||
EmitCode::up();
|
||||
EmitCode::call(Hierarchy::find(CLEARPARAGRAPHING_HL));
|
||||
EmitCode::down();
|
||||
EmitCode::val_true();
|
||||
EmitCode::up();
|
||||
CompileRvalues::compile_explicit_action(ea, FALSE);
|
||||
EmitCode::call(Hierarchy::find(DIVIDEPARAGRAPHPOINT_HL));
|
||||
EmitCode::inv(PULL_BIP);
|
||||
EmitCode::down();
|
||||
EmitCode::ref_iname(K_value, Hierarchy::find(SAY__PC_HL));
|
||||
EmitCode::up();
|
||||
EmitCode::inv(PULL_BIP);
|
||||
EmitCode::down();
|
||||
EmitCode::ref_iname(K_value, Hierarchy::find(SAY__P_HL));
|
||||
EmitCode::up();
|
||||
EmitCode::call(Hierarchy::find(ADJUSTPARAGRAPHPOINT_HL));
|
||||
EmitCode::inv(PULL_BIP);
|
||||
EmitCode::down();
|
||||
EmitCode::ref_iname(K_value, Hierarchy::find(KEEP_SILENT_HL));
|
||||
EmitCode::up();
|
||||
CSIInline::compile_try_action(ea, TRUE);
|
||||
} else {
|
||||
EmitCode::call(Hierarchy::find(STORED_ACTION_TY_TRY_HL));
|
||||
EmitCode::down();
|
||||
|
@ -640,6 +605,52 @@ that would be "property name". Instead:
|
|||
Problems::issue_problem_end();
|
||||
return;
|
||||
|
||||
@h Try and try silently.
|
||||
|
||||
=
|
||||
void CSIInline::compile_try_action(explicit_action *ea, int silently) {
|
||||
if (silently) {
|
||||
EmitCode::inv(PUSH_BIP);
|
||||
EmitCode::down();
|
||||
EmitCode::val_iname(K_value, Hierarchy::find(KEEP_SILENT_HL));
|
||||
EmitCode::up();
|
||||
EmitCode::inv(STORE_BIP);
|
||||
EmitCode::down();
|
||||
EmitCode::ref_iname(K_value, Hierarchy::find(KEEP_SILENT_HL));
|
||||
EmitCode::val_number(1);
|
||||
EmitCode::up();
|
||||
EmitCode::inv(PUSH_BIP);
|
||||
EmitCode::down();
|
||||
EmitCode::val_iname(K_value, Hierarchy::find(SAY__P_HL));
|
||||
EmitCode::up();
|
||||
EmitCode::inv(PUSH_BIP);
|
||||
EmitCode::down();
|
||||
EmitCode::val_iname(K_value, Hierarchy::find(SAY__PC_HL));
|
||||
EmitCode::up();
|
||||
EmitCode::call(Hierarchy::find(CLEARPARAGRAPHING_HL));
|
||||
EmitCode::down();
|
||||
EmitCode::val_true();
|
||||
EmitCode::up();
|
||||
}
|
||||
CompileRvalues::compile_explicit_action(ea, FALSE);
|
||||
if (silently) {
|
||||
EmitCode::call(Hierarchy::find(DIVIDEPARAGRAPHPOINT_HL));
|
||||
EmitCode::inv(PULL_BIP);
|
||||
EmitCode::down();
|
||||
EmitCode::ref_iname(K_value, Hierarchy::find(SAY__PC_HL));
|
||||
EmitCode::up();
|
||||
EmitCode::inv(PULL_BIP);
|
||||
EmitCode::down();
|
||||
EmitCode::ref_iname(K_value, Hierarchy::find(SAY__P_HL));
|
||||
EmitCode::up();
|
||||
EmitCode::call(Hierarchy::find(ADJUSTPARAGRAPHPOINT_HL));
|
||||
EmitCode::inv(PULL_BIP);
|
||||
EmitCode::down();
|
||||
EmitCode::ref_iname(K_value, Hierarchy::find(KEEP_SILENT_HL));
|
||||
EmitCode::up();
|
||||
}
|
||||
}
|
||||
|
||||
@h Commands about kinds.
|
||||
And that's it for the general machinery, but in another sense we're only just
|
||||
getting started. We now go through all of the special syntaxes which make
|
||||
|
|
|
@ -320,9 +320,11 @@ void RTDialogueBeats::beat_compilation_agent(compilation_subtask *ct) {
|
|||
@<Compile the relevant function@> =
|
||||
packaging_state save = Functions::begin(RTDialogueBeats::relevant_fn_iname(db));
|
||||
local_variable *pool = LocalVariables::new_internal_commented(I"pool", I"pool of live topics");
|
||||
local_variable *set = LocalVariables::new_internal_commented(I"set", I"if true, make these relevant");
|
||||
local_variable *iv = LocalVariables::new_internal_commented(I"iv", I"index variable");
|
||||
local_variable *topic = LocalVariables::new_internal_commented(I"topic", I"live topic");
|
||||
inter_symbol *pool_s = LocalVariables::declare(pool);
|
||||
inter_symbol *set_s = LocalVariables::declare(set);
|
||||
inter_symbol *iv_s = LocalVariables::declare(iv);
|
||||
inter_symbol *topic_s = LocalVariables::declare(topic);
|
||||
@<Check the about list against the subject pool@>;
|
||||
|
@ -330,6 +332,25 @@ void RTDialogueBeats::beat_compilation_agent(compilation_subtask *ct) {
|
|||
Functions::end(save);
|
||||
|
||||
@<Check the about list against the subject pool@> =
|
||||
EmitCode::inv(IF_BIP);
|
||||
EmitCode::down();
|
||||
EmitCode::val_symbol(K_value, set_s);
|
||||
EmitCode::code();
|
||||
EmitCode::down();
|
||||
parse_node *desc;
|
||||
LOOP_OVER_LINKED_LIST(desc, parse_node, db->about_list) {
|
||||
instance *I = Rvalues::to_instance(desc);
|
||||
if (I) {
|
||||
EmitCode::call(Hierarchy::find(DIRECTOR_ADD_LIVE_SUBJECT_LIST_HL));
|
||||
EmitCode::down();
|
||||
EmitCode::val_iname(K_value, RTInstances::value_iname(I));
|
||||
EmitCode::up();
|
||||
}
|
||||
}
|
||||
EmitCode::rtrue();
|
||||
EmitCode::up();
|
||||
EmitCode::up();
|
||||
|
||||
inter_symbol *loop_label = EmitCode::reserve_label(I"about_loop");
|
||||
EmitCode::place_label(loop_label);
|
||||
EmitCode::inv(STORE_BIP);
|
||||
|
@ -350,7 +371,6 @@ void RTDialogueBeats::beat_compilation_agent(compilation_subtask *ct) {
|
|||
EmitCode::up();
|
||||
EmitCode::code();
|
||||
EmitCode::down();
|
||||
parse_node *desc;
|
||||
LOOP_OVER_LINKED_LIST(desc, parse_node, db->about_list) {
|
||||
instance *I = Rvalues::to_instance(desc);
|
||||
EmitCode::inv(IF_BIP);
|
||||
|
|
|
@ -448,10 +448,22 @@ void RTDialogueLines::line_compilation_agent(compilation_subtask *ct) {
|
|||
wording NW = GET_RW(<dialogue-line-clause>, 1);
|
||||
CompileBlocksAndLines::compile_a_now(NW);
|
||||
|
||||
@
|
||||
|
||||
=
|
||||
<silently-modifier> ::=
|
||||
silently ... |
|
||||
... silently
|
||||
|
||||
@<Take action on this action clause@> =
|
||||
wording CW = Node::get_text(clause);
|
||||
<dialogue-line-clause>(CW);
|
||||
wording AW = GET_RW(<dialogue-line-clause>, 1);
|
||||
int silently = FALSE;
|
||||
if (<silently-modifier>(AW)) {
|
||||
silently = TRUE;
|
||||
AW = GET_RW(<silently-modifier>, 1);
|
||||
}
|
||||
if (<s-action-pattern-as-value>(AW)) {
|
||||
parse_node *supplied = <<rp>>;
|
||||
if (Dash::check_value(supplied, K_stored_action)) {
|
||||
|
@ -462,11 +474,12 @@ void RTDialogueLines::line_compilation_agent(compilation_subtask *ct) {
|
|||
Dash::check_value(actor, K_object);
|
||||
ea->actor = Lvalues::new_LOCAL_VARIABLE(EMPTY_WORDING, speaker);
|
||||
}
|
||||
CompileRvalues::compile_explicit_action(ea, FALSE);
|
||||
CSIInline::compile_try_action(ea, silently);
|
||||
} else {
|
||||
EmitCode::call(Hierarchy::find(STORED_ACTION_TY_TRY_HL));
|
||||
EmitCode::down();
|
||||
CompileValues::to_code_val_of_kind(supplied, K_stored_action);
|
||||
if (silently) EmitCode::val_true();
|
||||
EmitCode::up();
|
||||
}
|
||||
EmitCode::inv(IF_BIP);
|
||||
|
|
|
@ -305,7 +305,7 @@ void RTScenes::compile_scene_end_r(scene *sc, int end) {
|
|||
}
|
||||
@<Compile code to print text in response to the SCENES command@>;
|
||||
@<Compile code to update the scene status@>;
|
||||
@<Compile code to run the scene end rulebooks@>
|
||||
@<Compile code to run the scene end rulebooks@>;
|
||||
@<Compile code to update the arrays recording most recent scene ending@>;
|
||||
@<Compile code to cause consequent scene ends@>;
|
||||
|
||||
|
@ -397,6 +397,12 @@ end actually occurred.)
|
|||
EmitCode::val_number((inter_ti) (sc->allocation_id + 1));
|
||||
EmitCode::up();
|
||||
}
|
||||
if ((end == 0) && (sc->ends[0].as_beat)) {
|
||||
EmitCode::call(Hierarchy::find(DIRECTOR_PERFORM_TIED_BEAT_HL));
|
||||
EmitCode::down();
|
||||
EmitCode::val_iname(K_value, RTDialogueBeats::iname(sc->ends[0].as_beat));
|
||||
EmitCode::up();
|
||||
}
|
||||
|
||||
@<Compile code to update the arrays recording most recent scene ending@> =
|
||||
inter_name *sarr = Hierarchy::find(SCENE_ENDED_HL);
|
||||
|
|
|
@ -556,8 +556,10 @@ comprehensive list of what is there.)
|
|||
@e DIRECTOR_ADD_LIVE_SUBJECT_LIST_HL
|
||||
@e DIRECTOR_AFTER_ACTION_HL
|
||||
@e DIRECTOR_BEAT_BEING_PERFORMED_HL
|
||||
@e DIRECTOR_PERFORM_TIED_BEAT_HL
|
||||
|
||||
@<Establish resources offered by DialogueKit@> =
|
||||
KIT_PROVIDED(DIRECTOR_ADD_LIVE_SUBJECT_LIST_HL, I"DirectorAddLiveSubjectList")
|
||||
KIT_PROVIDED(DIRECTOR_AFTER_ACTION_HL, I"DirectorAfterAction")
|
||||
KIT_PROVIDED(DIRECTOR_BEAT_BEING_PERFORMED_HL, I"DirectorBeatBeingPerformed")
|
||||
KIT_PROVIDED(DIRECTOR_PERFORM_TIED_BEAT_HL, I"DirectorPerformTiedBeat")
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
Size of lexicon: 3116 excerpt meanings
|
||||
Stored among 843 words out of total vocabulary of 10598
|
||||
713 words have a start list: longest belongs to report (with 293 meanings)
|
||||
Size of lexicon: 3117 excerpt meanings
|
||||
Stored among 844 words out of total vocabulary of 10640
|
||||
714 words have a start list: longest belongs to report (with 293 meanings)
|
||||
15 words have an end list: longest belongs to case (with 6 meanings)
|
||||
29 words have a middle list: longest belongs to to (with 4 meanings)
|
||||
108 words have a subset list: longest belongs to street (with 4 meanings)
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
adjective: 137 items
|
||||
article: 2 items
|
||||
noun: 2386 items
|
||||
noun: 2387 items
|
||||
pronoun: 8 items
|
||||
preposition: 273 items
|
||||
preposition: 274 items
|
||||
determiner: 22 items
|
||||
verb: 108 items
|
||||
verb_form: 386 items
|
||||
total in all categories: 3322
|
||||
verb: 109 items
|
||||
verb_form: 388 items
|
||||
total in all categories: 3327
|
||||
|
||||
adjective: 'even'
|
||||
adjective: 'odd'
|
||||
|
@ -198,6 +198,7 @@ noun: proper: 'wearing relation'
|
|||
noun: proper: 'possession relation'
|
||||
noun: proper: 'room-containment relation'
|
||||
noun: proper: 'visibility relation'
|
||||
noun: proper: 'audibility relation'
|
||||
noun: proper: 'touchability relation'
|
||||
noun: proper: 'concealment relation'
|
||||
noun: proper: 'enclosure relation'
|
||||
|
@ -2642,6 +2643,7 @@ preposition: holding
|
|||
preposition: worn by
|
||||
preposition: wearing
|
||||
preposition: being able to see
|
||||
preposition: being able to hear
|
||||
preposition: being able to touch
|
||||
preposition: concealed by
|
||||
preposition: concealing
|
||||
|
@ -2894,62 +2896,63 @@ verb: carry(48)
|
|||
verb: hold(49)
|
||||
verb: wear(50)
|
||||
verb: be able to see(51)
|
||||
verb: be able to touch(52)
|
||||
verb: conceal(53)
|
||||
verb: unlock(54)
|
||||
verb: achieve(55)
|
||||
verb: appreciate(56)
|
||||
verb: arrive(57)
|
||||
verb: care(58)
|
||||
verb: close(59)
|
||||
verb: die(60)
|
||||
verb: discover(61)
|
||||
verb: drop(62)
|
||||
verb: eat(63)
|
||||
verb: feel(64)
|
||||
verb: find(65)
|
||||
verb: get(66)
|
||||
verb: give(67)
|
||||
verb: go(68)
|
||||
verb: happen(69)
|
||||
verb: hear(70)
|
||||
verb: jump(71)
|
||||
verb: lack(72)
|
||||
verb: lead(73)
|
||||
verb: like(74)
|
||||
verb: listen(75)
|
||||
verb: lock(76)
|
||||
verb: look(77)
|
||||
verb: need(78)
|
||||
verb: open(79)
|
||||
verb: pass(80)
|
||||
verb: pick(81)
|
||||
verb: provoke(82)
|
||||
verb: pull(83)
|
||||
verb: push(84)
|
||||
verb: put(85)
|
||||
verb: rub(86)
|
||||
verb: say(87)
|
||||
verb: search(88)
|
||||
verb: see(89)
|
||||
verb: seem(90)
|
||||
verb: set(91)
|
||||
verb: smell(92)
|
||||
verb: sniff(93)
|
||||
verb: squeeze(94)
|
||||
verb: switch(95)
|
||||
verb: take(96)
|
||||
verb: talk(97)
|
||||
verb: taste(98)
|
||||
verb: touch(99)
|
||||
verb: turn(100)
|
||||
verb: wait(101)
|
||||
verb: wave(102)
|
||||
verb: win(103)
|
||||
verb: protect(104)
|
||||
verb: own(105)
|
||||
verb: fit(106)
|
||||
verb: unbolt(107)
|
||||
verb: be able to hear(52)
|
||||
verb: be able to touch(53)
|
||||
verb: conceal(54)
|
||||
verb: unlock(55)
|
||||
verb: achieve(56)
|
||||
verb: appreciate(57)
|
||||
verb: arrive(58)
|
||||
verb: care(59)
|
||||
verb: close(60)
|
||||
verb: die(61)
|
||||
verb: discover(62)
|
||||
verb: drop(63)
|
||||
verb: eat(64)
|
||||
verb: feel(65)
|
||||
verb: find(66)
|
||||
verb: get(67)
|
||||
verb: give(68)
|
||||
verb: go(69)
|
||||
verb: happen(70)
|
||||
verb: hear(71)
|
||||
verb: jump(72)
|
||||
verb: lack(73)
|
||||
verb: lead(74)
|
||||
verb: like(75)
|
||||
verb: listen(76)
|
||||
verb: lock(77)
|
||||
verb: look(78)
|
||||
verb: need(79)
|
||||
verb: open(80)
|
||||
verb: pass(81)
|
||||
verb: pick(82)
|
||||
verb: provoke(83)
|
||||
verb: pull(84)
|
||||
verb: push(85)
|
||||
verb: put(86)
|
||||
verb: rub(87)
|
||||
verb: say(88)
|
||||
verb: search(89)
|
||||
verb: see(90)
|
||||
verb: seem(91)
|
||||
verb: set(92)
|
||||
verb: smell(93)
|
||||
verb: sniff(94)
|
||||
verb: squeeze(95)
|
||||
verb: switch(96)
|
||||
verb: take(97)
|
||||
verb: talk(98)
|
||||
verb: taste(99)
|
||||
verb: touch(100)
|
||||
verb: turn(101)
|
||||
verb: wait(102)
|
||||
verb: wave(103)
|
||||
verb: win(104)
|
||||
verb: protect(105)
|
||||
verb: own(106)
|
||||
verb: fit(107)
|
||||
verb: unbolt(108)
|
||||
|
||||
verb_form: be(0) + ___ + ___ SVO
|
||||
verb_form: mean(1) + ___ + ___ SVO
|
||||
|
@ -3105,9 +3108,11 @@ verb_form: be(0) + worn by + ___ SVO
|
|||
verb_form: be(0) + wearing + ___ SVO
|
||||
verb_form: be able to see(51) + ___ + ___ SVO
|
||||
verb_form: be(0) + being able to see + ___ SVO
|
||||
verb_form: be able to touch(52) + ___ + ___ SVO
|
||||
verb_form: be able to hear(52) + ___ + ___ SVO
|
||||
verb_form: be(0) + being able to hear + ___ SVO
|
||||
verb_form: be able to touch(53) + ___ + ___ SVO
|
||||
verb_form: be(0) + being able to touch + ___ SVO
|
||||
verb_form: conceal(53) + ___ + ___ SVO
|
||||
verb_form: conceal(54) + ___ + ___ SVO
|
||||
verb_form: be(0) + concealed by + ___ SVO
|
||||
verb_form: be(0) + concealing + ___ SVO
|
||||
verb_form: be(0) + adjacent to + ___ SVO
|
||||
|
@ -3153,166 +3158,166 @@ verb_form: be(0) + mapped above + ___ SVO
|
|||
verb_form: be(0) + below + ___ SVO
|
||||
verb_form: be(0) + mapped below + ___ SVO
|
||||
verb_form: be(0) + through + ___ SVO
|
||||
verb_form: unlock(54) + ___ + ___ SVO
|
||||
verb_form: unlock(55) + ___ + ___ SVO
|
||||
verb_form: be(0) + unlocked by + ___ SVO
|
||||
verb_form: be(0) + unlocking + ___ SVO
|
||||
verb_form: achieve(55) + ___ + ___ SVO
|
||||
verb_form: achieve(56) + ___ + ___ SVO
|
||||
verb_form: be(0) + achieved by + ___ SVO
|
||||
verb_form: be(0) + achieving + ___ SVO
|
||||
verb_form: appreciate(56) + ___ + ___ SVO
|
||||
verb_form: appreciate(57) + ___ + ___ SVO
|
||||
verb_form: be(0) + appreciated by + ___ SVO
|
||||
verb_form: be(0) + appreciating + ___ SVO
|
||||
verb_form: arrive(57) + ___ + ___ SVO
|
||||
verb_form: arrive(58) + ___ + ___ SVO
|
||||
verb_form: be(0) + arrived by + ___ SVO
|
||||
verb_form: be(0) + arriving + ___ SVO
|
||||
verb_form: care(58) + ___ + ___ SVO
|
||||
verb_form: care(59) + ___ + ___ SVO
|
||||
verb_form: be(0) + cared by + ___ SVO
|
||||
verb_form: be(0) + caring + ___ SVO
|
||||
verb_form: close(59) + ___ + ___ SVO
|
||||
verb_form: close(60) + ___ + ___ SVO
|
||||
verb_form: be(0) + closed by + ___ SVO
|
||||
verb_form: be(0) + closing + ___ SVO
|
||||
verb_form: die(60) + ___ + ___ SVO
|
||||
verb_form: die(61) + ___ + ___ SVO
|
||||
verb_form: be(0) + died by + ___ SVO
|
||||
verb_form: be(0) + dying + ___ SVO
|
||||
verb_form: discover(61) + ___ + ___ SVO
|
||||
verb_form: discover(62) + ___ + ___ SVO
|
||||
verb_form: be(0) + discovered by + ___ SVO
|
||||
verb_form: be(0) + discovering + ___ SVO
|
||||
verb_form: drop(62) + ___ + ___ SVO
|
||||
verb_form: drop(63) + ___ + ___ SVO
|
||||
verb_form: be(0) + dropped by + ___ SVO
|
||||
verb_form: be(0) + dropping + ___ SVO
|
||||
verb_form: eat(63) + ___ + ___ SVO
|
||||
verb_form: eat(64) + ___ + ___ SVO
|
||||
verb_form: be(0) + eaten by + ___ SVO
|
||||
verb_form: be(0) + eating + ___ SVO
|
||||
verb_form: feel(64) + ___ + ___ SVO
|
||||
verb_form: feel(65) + ___ + ___ SVO
|
||||
verb_form: be(0) + felt by + ___ SVO
|
||||
verb_form: be(0) + feeling + ___ SVO
|
||||
verb_form: find(65) + ___ + ___ SVO
|
||||
verb_form: find(66) + ___ + ___ SVO
|
||||
verb_form: be(0) + found by + ___ SVO
|
||||
verb_form: be(0) + finding + ___ SVO
|
||||
verb_form: get(66) + ___ + ___ SVO
|
||||
verb_form: get(67) + ___ + ___ SVO
|
||||
verb_form: be(0) + got by + ___ SVO
|
||||
verb_form: be(0) + getting + ___ SVO
|
||||
verb_form: give(67) + ___ + ___ SVO
|
||||
verb_form: give(68) + ___ + ___ SVO
|
||||
verb_form: be(0) + given by + ___ SVO
|
||||
verb_form: be(0) + giving + ___ SVO
|
||||
verb_form: go(68) + ___ + ___ SVO
|
||||
verb_form: go(69) + ___ + ___ SVO
|
||||
verb_form: be(0) + gone by + ___ SVO
|
||||
verb_form: be(0) + going + ___ SVO
|
||||
verb_form: happen(69) + ___ + ___ SVO
|
||||
verb_form: happen(70) + ___ + ___ SVO
|
||||
verb_form: be(0) + happened by + ___ SVO
|
||||
verb_form: be(0) + happening + ___ SVO
|
||||
verb_form: hear(70) + ___ + ___ SVO
|
||||
verb_form: hear(71) + ___ + ___ SVO
|
||||
verb_form: be(0) + heard by + ___ SVO
|
||||
verb_form: be(0) + hearing + ___ SVO
|
||||
verb_form: jump(71) + ___ + ___ SVO
|
||||
verb_form: jump(72) + ___ + ___ SVO
|
||||
verb_form: be(0) + jumped by + ___ SVO
|
||||
verb_form: be(0) + jumping + ___ SVO
|
||||
verb_form: lack(72) + ___ + ___ SVO
|
||||
verb_form: lack(73) + ___ + ___ SVO
|
||||
verb_form: be(0) + lacked by + ___ SVO
|
||||
verb_form: be(0) + lacking + ___ SVO
|
||||
verb_form: lead(73) + ___ + ___ SVO
|
||||
verb_form: lead(74) + ___ + ___ SVO
|
||||
verb_form: be(0) + led by + ___ SVO
|
||||
verb_form: be(0) + leading + ___ SVO
|
||||
verb_form: like(74) + ___ + ___ SVO
|
||||
verb_form: like(75) + ___ + ___ SVO
|
||||
verb_form: be(0) + liked by + ___ SVO
|
||||
verb_form: be(0) + liking + ___ SVO
|
||||
verb_form: listen(75) + ___ + ___ SVO
|
||||
verb_form: listen(76) + ___ + ___ SVO
|
||||
verb_form: be(0) + listened by + ___ SVO
|
||||
verb_form: be(0) + listening + ___ SVO
|
||||
verb_form: lock(76) + ___ + ___ SVO
|
||||
verb_form: lock(77) + ___ + ___ SVO
|
||||
verb_form: be(0) + locked by + ___ SVO
|
||||
verb_form: be(0) + locking + ___ SVO
|
||||
verb_form: look(77) + ___ + ___ SVO
|
||||
verb_form: look(78) + ___ + ___ SVO
|
||||
verb_form: be(0) + looked by + ___ SVO
|
||||
verb_form: be(0) + looking + ___ SVO
|
||||
verb_form: need(78) + ___ + ___ SVO
|
||||
verb_form: need(79) + ___ + ___ SVO
|
||||
verb_form: be(0) + needed by + ___ SVO
|
||||
verb_form: be(0) + needing + ___ SVO
|
||||
verb_form: open(79) + ___ + ___ SVO
|
||||
verb_form: open(80) + ___ + ___ SVO
|
||||
verb_form: be(0) + opened by + ___ SVO
|
||||
verb_form: be(0) + opening + ___ SVO
|
||||
verb_form: pass(80) + ___ + ___ SVO
|
||||
verb_form: pass(81) + ___ + ___ SVO
|
||||
verb_form: be(0) + passed by + ___ SVO
|
||||
verb_form: be(0) + passing + ___ SVO
|
||||
verb_form: pick(81) + ___ + ___ SVO
|
||||
verb_form: pick(82) + ___ + ___ SVO
|
||||
verb_form: be(0) + picked by + ___ SVO
|
||||
verb_form: be(0) + picking + ___ SVO
|
||||
verb_form: provoke(82) + ___ + ___ SVO
|
||||
verb_form: provoke(83) + ___ + ___ SVO
|
||||
verb_form: be(0) + provoked by + ___ SVO
|
||||
verb_form: be(0) + provoking + ___ SVO
|
||||
verb_form: pull(83) + ___ + ___ SVO
|
||||
verb_form: pull(84) + ___ + ___ SVO
|
||||
verb_form: be(0) + pulled by + ___ SVO
|
||||
verb_form: be(0) + pulling + ___ SVO
|
||||
verb_form: push(84) + ___ + ___ SVO
|
||||
verb_form: push(85) + ___ + ___ SVO
|
||||
verb_form: be(0) + pushed by + ___ SVO
|
||||
verb_form: be(0) + pushing + ___ SVO
|
||||
verb_form: put(85) + ___ + ___ SVO
|
||||
verb_form: put(86) + ___ + ___ SVO
|
||||
verb_form: be(0) + put by + ___ SVO
|
||||
verb_form: be(0) + putting + ___ SVO
|
||||
verb_form: rub(86) + ___ + ___ SVO
|
||||
verb_form: rub(87) + ___ + ___ SVO
|
||||
verb_form: be(0) + rubbed by + ___ SVO
|
||||
verb_form: be(0) + rubbing + ___ SVO
|
||||
verb_form: say(87) + ___ + ___ SVO
|
||||
verb_form: say(88) + ___ + ___ SVO
|
||||
verb_form: be(0) + said by + ___ SVO
|
||||
verb_form: be(0) + saying + ___ SVO
|
||||
verb_form: search(88) + ___ + ___ SVO
|
||||
verb_form: search(89) + ___ + ___ SVO
|
||||
verb_form: be(0) + searched by + ___ SVO
|
||||
verb_form: be(0) + searching + ___ SVO
|
||||
verb_form: see(89) + ___ + ___ SVO
|
||||
verb_form: see(90) + ___ + ___ SVO
|
||||
verb_form: be(0) + seen by + ___ SVO
|
||||
verb_form: be(0) + seeing + ___ SVO
|
||||
verb_form: seem(90) + ___ + ___ SVO
|
||||
verb_form: seem(91) + ___ + ___ SVO
|
||||
verb_form: be(0) + seemed by + ___ SVO
|
||||
verb_form: be(0) + seeming + ___ SVO
|
||||
verb_form: set(91) + ___ + ___ SVO
|
||||
verb_form: set(92) + ___ + ___ SVO
|
||||
verb_form: be(0) + set by + ___ SVO
|
||||
verb_form: be(0) + setting + ___ SVO
|
||||
verb_form: smell(92) + ___ + ___ SVO
|
||||
verb_form: smell(93) + ___ + ___ SVO
|
||||
verb_form: be(0) + smelled by + ___ SVO
|
||||
verb_form: be(0) + smelling + ___ SVO
|
||||
verb_form: sniff(93) + ___ + ___ SVO
|
||||
verb_form: sniff(94) + ___ + ___ SVO
|
||||
verb_form: be(0) + sniffed by + ___ SVO
|
||||
verb_form: be(0) + sniffing + ___ SVO
|
||||
verb_form: squeeze(94) + ___ + ___ SVO
|
||||
verb_form: squeeze(95) + ___ + ___ SVO
|
||||
verb_form: be(0) + squeezed by + ___ SVO
|
||||
verb_form: be(0) + squeezing + ___ SVO
|
||||
verb_form: switch(95) + ___ + ___ SVO
|
||||
verb_form: switch(96) + ___ + ___ SVO
|
||||
verb_form: be(0) + switched by + ___ SVO
|
||||
verb_form: be(0) + switching + ___ SVO
|
||||
verb_form: take(96) + ___ + ___ SVO
|
||||
verb_form: take(97) + ___ + ___ SVO
|
||||
verb_form: be(0) + taken by + ___ SVO
|
||||
verb_form: be(0) + taking + ___ SVO
|
||||
verb_form: talk(97) + ___ + ___ SVO
|
||||
verb_form: talk(98) + ___ + ___ SVO
|
||||
verb_form: be(0) + talked by + ___ SVO
|
||||
verb_form: be(0) + talking + ___ SVO
|
||||
verb_form: taste(98) + ___ + ___ SVO
|
||||
verb_form: taste(99) + ___ + ___ SVO
|
||||
verb_form: be(0) + tasted by + ___ SVO
|
||||
verb_form: be(0) + tasting + ___ SVO
|
||||
verb_form: touch(99) + ___ + ___ SVO
|
||||
verb_form: touch(100) + ___ + ___ SVO
|
||||
verb_form: be(0) + touched by + ___ SVO
|
||||
verb_form: be(0) + touching + ___ SVO
|
||||
verb_form: turn(100) + ___ + ___ SVO
|
||||
verb_form: turn(101) + ___ + ___ SVO
|
||||
verb_form: be(0) + turned by + ___ SVO
|
||||
verb_form: be(0) + turning + ___ SVO
|
||||
verb_form: wait(101) + ___ + ___ SVO
|
||||
verb_form: wait(102) + ___ + ___ SVO
|
||||
verb_form: be(0) + waited by + ___ SVO
|
||||
verb_form: be(0) + waiting + ___ SVO
|
||||
verb_form: wave(102) + ___ + ___ SVO
|
||||
verb_form: wave(103) + ___ + ___ SVO
|
||||
verb_form: be(0) + waved by + ___ SVO
|
||||
verb_form: be(0) + waving + ___ SVO
|
||||
verb_form: win(103) + ___ + ___ SVO
|
||||
verb_form: win(104) + ___ + ___ SVO
|
||||
verb_form: be(0) + won by + ___ SVO
|
||||
verb_form: be(0) + winning + ___ SVO
|
||||
verb_form: protect(104) + ___ + ___ SVO
|
||||
verb_form: protect(105) + ___ + ___ SVO
|
||||
verb_form: be(0) + protected by + ___ SVO
|
||||
verb_form: be(0) + protecting + ___ SVO
|
||||
verb_form: own(105) + ___ + ___ SVO
|
||||
verb_form: own(106) + ___ + ___ SVO
|
||||
verb_form: be(0) + owned by + ___ SVO
|
||||
verb_form: be(0) + owning + ___ SVO
|
||||
verb_form: fit(106) + ___ + ___ SVO
|
||||
verb_form: fit(107) + ___ + ___ SVO
|
||||
verb_form: be(0) + fitted by + ___ SVO
|
||||
verb_form: be(0) + fitting + ___ SVO
|
||||
verb_form: unbolt(107) + ___ + ___ SVO
|
||||
verb_form: unbolt(108) + ___ + ___ SVO
|
||||
verb_form: be(0) + unbolted by + ___ SVO
|
||||
verb_form: be(0) + unbolting + ___ SVO
|
||||
verb_form: be(0) + the same variable initial value as + ___ SVO
|
||||
|
|
Loading…
Reference in a new issue