User:Nescius: Difference between revisions
Jump to navigation
Jump to search
(Nescius changed the content model of the page User:Nescius from "wikitext" to "plain text") Tag: content model change |
No edit summary |
||
Line 1: | Line 1: | ||
<div id="bodyContent" class="mw-body-content"> | |||
| | <div id="siteSub" class="noprint">From Valve Developer Community</div> <div id="contentSub"><div class="mw-revision"><div id="mw-revision-info">Revision as of 17:45, 12 July 2024 by <a href="/wiki/User:Nescius" class="mw-userlink" title="User:Nescius"><bdi>Nescius</bdi></a> <span class="mw-usertoollinks">(<a href="/wiki/User_talk:Nescius" class="mw-usertoollinks-talk" title="User talk:Nescius">talk</a> | <a href="/wiki/Special:Contributions/Nescius" class="mw-usertoollinks-contribs" title="Special:Contributions/Nescius">contribs</a> | <a href="/wiki/Special:Block/Nescius" class="mw-usertoollinks-block" title="Special:Block/Nescius">block</a>)</span></div><div id="mw-revision-nav"><span class="mw-revdelundel-link">(<a href="/w/index.php?title=Special:RevisionDelete&type=revision&target=User%3ANescius&ids=432113" title="Special:RevisionDelete">change visibility</a>)</span> (<a href="/w/index.php?title=User:Nescius&diff=prev&oldid=432113" title="User:Nescius">diff</a>) <a href="/w/index.php?title=User:Nescius&direction=prev&oldid=432113" title="User:Nescius">← Older revision</a> | <a href="/wiki/User:Nescius" title="User:Nescius">Latest revision</a> (<a href="/w/index.php?title=User:Nescius&diff=cur&oldid=432113" title="User:Nescius">diff</a>) | <a href="/w/index.php?title=User:Nescius&direction=next&oldid=432113" title="User:Nescius">Newer revision →</a> (<a href="/w/index.php?title=User:Nescius&diff=next&oldid=432113" title="User:Nescius">diff</a>)</div></div></div> | ||
<div id="jump-to-nav" class="mw-jump"> | |||
Jump to: <a href="#mw-head">navigation</a>, <a href="#p-search">search</a> | |||
</div> | |||
<div id="mw-content-text" lang="en" dir="ltr" class="mw-content-ltr"><div class="mw-parser-output"><div style="width:calc(100% + 48px); height:calc(100% + 22px); background-color:transparent; opacity:0.6; overflow:hidden; pointer-events:none; user-select:none; position:absolute; z-index:-1; left:-24px; top:2px"> | |||
<div style="background:linear-gradient(180deg, rgb(38,38,38) 0%, rgba(38,38,38,0) 100%); width:100%; height:250px; position:absolute; z-index:1"></div> | |||
<div style="width:100%; display:flex; justify-content:center; position:absolute; z-index:0"><span style="-webkit-mask-image:linear-gradient(to right, transparent, black 5%, black 95%, transparent);"><img alt="UserAvatar-Nescius.png" src="/w/images/c/c3/UserAvatar-Nescius.png" width="643" height="566" data-file-width="643" data-file-height="566" /></span><div style="background:linear-gradient(0deg, rgb(38,38,38) 0%, rgba(38,38,38,0) 100%); width:100%; height:250px; position:absolute; z-index:1; bottom:0"></div> | |||
</div> | |||
</div> | |||
<p><br /> | |||
</p><p><br /> | |||
</p><p><br /> | |||
</p><p><br /> | |||
</p><p><br /> | |||
</p><p><br /> | |||
</p><p><br /> | |||
</p><p><br /> | |||
</p><p><br /> | |||
</p><p><br /> | |||
</p><p><br /> | |||
</p><p><br /> | |||
</p><p><br /> | |||
</p><p><br /> | |||
</p><p><br /> | |||
</p><p><br /> | |||
</p><p><br /> | |||
</p><p><br /> | |||
I just want to see my name in blue. You can leave now | I just want to see my name in blue. You can leave now | ||
</p><p>personal notes: | |||
</p> | |||
<ul><li><a rel="nofollow" class="external text" href="https://developer.valvesoftware.com/w/index.php?title=Template:CD/superclass&action=edit">Template:CD/superclass</a></li> | |||
<li><a href="/wiki/List_of_Unique_Entities_in_Valve_Source_Games" title="List of Unique Entities in Valve Source Games">List of Unique Entities in Valve Source Games</a></li> | |||
<li><a href="/wiki/List_of_Source_SDK_2013_Entities" title="List of Source SDK 2013 Entities">List of Source SDK 2013 Entities</a></li> | |||
<li><a href="/wiki/List_of_Alien_Swarm:_Reactive_Drop_Entities" title="List of Alien Swarm: Reactive Drop Entities">List of Alien Swarm: Reactive Drop Entities</a></li> | |||
<li><a href="/wiki/User:Nescius/remainingredirectlangtorelinkanddelete" title="User:Nescius/remainingredirectlangtorelinkanddelete">User:Nescius/remainingredirectlangtorelinkanddelete</a></li> | |||
<li><a href="/wiki/User:Nescius/Planned_language_page_changes" title="User:Nescius/Planned language page changes">User:Nescius/Planned language page changes</a></li></ul> | |||
<div class="mw-highlight mw-content-ltr" dir="ltr"><pre><span></span><span class="n">temp_reg</span> <span class="o">=</span> <span class="n">null</span> | |||
<span class="n">_stack</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> | |||
<span class="n">_registry</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> | |||
<span class="n">_table_default_delegate</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> <span class="c1">//contains table methods</span> | |||
<span class="n">_array_default_delegate</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> <span class="c1">//contains array methods</span> | |||
<span class="n">_string_default_delegate</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> <span class="c1">//contains string methods</span> | |||
<span class="n">_number_default_delegate</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> <span class="c1">//contains integer, float, bool methods</span> | |||
<span class="n">_handle_default_delegate</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> <span class="c1">//contains chandle methods(only tointeger(), used with point_script_use_target)</span> | |||
<span class="n">_utlstringtoken_default_delegate</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> <span class="c1">//?</span> | |||
<span class="n">_generator_default_delegate</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> <span class="c1">//contains generator methods</span> | |||
<span class="n">_thread_default_delegate</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> <span class="c1">//contains thread methods</span> | |||
<span class="n">_closure_default_delegate</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> <span class="c1">//contains function methods</span> | |||
<span class="n">_class_default_delegate</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> <span class="c1">//contains class methods</span> | |||
<span class="n">_instance_default_delegate</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> <span class="c1">//contains instance methods</span> | |||
<span class="n">_weakref_default_delegate</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> <span class="c1">//contains weak reference methods</span> | |||
<span class="n">_metamethodsmap</span> <span class="o">=</span> <span class="p">{</span> | |||
<span class="nl">_add</span><span class="p">:</span> <span class="mi">0</span> | |||
<span class="nl">_sub</span><span class="p">:</span> <span class="mi">1</span> | |||
<span class="nl">_mul</span><span class="p">:</span> <span class="mi">2</span> | |||
<span class="nl">_div</span><span class="p">:</span> <span class="mi">3</span> | |||
<span class="nl">_unm</span><span class="p">:</span> <span class="mi">4</span> | |||
<span class="nl">_modulo</span><span class="p">:</span> <span class="mi">5</span> | |||
<span class="nl">_set</span><span class="p">:</span> <span class="mi">6</span> | |||
<span class="nl">_get</span><span class="p">:</span> <span class="mi">7</span> | |||
<span class="nl">_typeof</span><span class="p">:</span> <span class="mi">8</span> | |||
<span class="nl">_nexti</span><span class="p">:</span> <span class="mi">9</span> | |||
<span class="nl">_cmp</span><span class="p">:</span> <span class="mi">10</span> | |||
<span class="nl">_call</span><span class="p">:</span> <span class="mi">11</span> | |||
<span class="nl">_cloned</span><span class="p">:</span> <span class="mi">12</span> | |||
<span class="nl">_newslot</span><span class="p">:</span> <span class="mi">13</span> | |||
<span class="nl">_delslot</span><span class="p">:</span> <span class="mi">14</span> | |||
<span class="nl">_tostring</span><span class="p">:</span> <span class="mi">15</span> | |||
<span class="nl">_newmember</span><span class="p">:</span> <span class="mi">16</span> | |||
<span class="nl">_inherited</span><span class="p">:</span> <span class="mi">17</span> | |||
<span class="p">}</span> | |||
<span class="n">_lasterror</span> <span class="o">=</span> <span class="n">null</span> | |||
<span class="n">_errorhandler</span> <span class="o">=</span> <span class="p">(</span><span class="n">native</span> <span class="n">function</span><span class="p">)</span> <span class="c1">//can be set to something else with seterrorhandler()</span> | |||
<span class="n">_consts</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> <span class="c1">//variables made with const and enum go here (getconsttable())</span> | |||
<span class="n">_roottable</span> <span class="o">=</span> <span class="p">{</span> <span class="c1">//script, script_execute and mapspawn.nut executed in this scope (getroottable())</span> | |||
<span class="c1">//global shortcuts {</span> | |||
<span class="n">g_ModeScript</span> <span class="o">=</span> <span class="n">DirectorScript</span><span class="p">.</span><span class="n">MapScript</span><span class="p">.</span><span class="n">ChallengeScript</span> | |||
<span class="n">g_MapScript</span> <span class="o">=</span> <span class="n">DirectorScript</span><span class="p">.</span><span class="n">MapScript</span> | |||
< | |||
<span class="n">SessionOptions</span> <span class="o">=</span> <span class="n">g_ModeScript</span><span class="p">.</span><span class="n">DirectorOptions</span> | |||
<span class="n">SessionState</span> <span class="o">=</span> <span class="n">g_ModeScript</span><span class="p">.</span><span class="n">MutationState</span> | |||
<span class="n">SessionSpawns</span> <span class="o">=</span> <span class="n">g_MapScript</span><span class="p">.</span><span class="n">MapSpawns</span> | |||
<span class="c1">// }</span> | |||
<span class="n">g_RoundState</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> <span class="c1">//used by hints and StartBox stuff in sm_utilities</span> | |||
<span class="n">g_rr</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> <span class="c1">//response_testbed.nut executed in this scope</span> | |||
<span class="n">GameEventCallbacks</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> <span class="c1">//OnGameEvent_</span> | |||
<span class="n">ScriptEventCallbacks</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> <span class="c1">//OnScriptEvent_</span> | |||
<span class="n">DirectorScript</span> <span class="o">=</span> <span class="p">{</span> <span class="c1">//director_base.nut executed in this scope</span> | |||
<span class="n">DirectorOptions</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> <span class="c1">//4</span> | |||
<span class="n">MapScript</span> <span class="o">=</span> <span class="p">{</span> <span class="c1">//mapscripts, trigger_finale scripts and scriptedmode.nut executed in this scope</span> | |||
<span class="n">DirectorOptions</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> <span class="c1">//3</span> | |||
} | <span class="n">BaseScriptedDOTable</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> <span class="c1">//added into ChallengeScript.DirectorOptions</span> | ||
<span class="c1">//these come from mapscripts {</span> | |||
<span class="n">MapOptions</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> <span class="c1">//added into ChallengeScript.DirectorOptions</span> | |||
<span class="n">MapState</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> <span class="c1">//added into ChallengeScript.MutationState</span> | |||
<span class="n">MapSpawns</span> <span class="o">=</span> <span class="p">[]</span> <span class="c1">//entity groups to spawn</span> | |||
// | <span class="n">SanitizeTable</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> <span class="c1">//entities to remove</span> | ||
<span class="c1">// }</span> | |||
// | <span class="n">ChallengeScript</span> <span class="o">=</span> <span class="p">{</span> <span class="c1">//modescripts executed in this scope</span> | ||
<span class="n">MutationOptions</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> <span class="c1">//added into DirectorOptions (below)</span> | |||
<span class="n">MutationState</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> | |||
<span class="n">ModeSpawns</span> <span class="o">=</span> <span class="p">[]</span> <span class="c1">//added into MapSpawns</span> | |||
<span class="n">DirectorOptions</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> <span class="c1">//1</span> | |||
<span class="p">}</span> | |||
<span class="n">LocalScript</span> <span class="o">=</span> <span class="p">{</span> <span class="c1">//director's BeginScript input runs script in this scope</span> | |||
<span class="n">DirectorOptions</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> <span class="c1">//2</span> | |||
<span class="p">}</span> | |||
<span class="n">ScriptedDamageInfo</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> <span class="c1">//used by AllowTakeDamage</span> | |||
<span class="c1">//entity group related</span> | |||
<span class="n">EntityGroups</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> | |||
<span class="n">InstancedEntityGroup</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> | |||
<span class="n">ReplacementParms</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> | |||
<span class="n">UniqueTargetnames</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> | |||
<span class="c1">//startbox related</span> | |||
<span class="n">StartboxFloating_Info</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> | |||
<span class="n">StartboxCenter_Info</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> | |||
<span class="n">StartboxSpeedbump_Info</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> | |||
<span class="n">defaultClearout</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> <span class="c1">//for clearout (used in holdout)</span> | |||
<span class="p">}</span> | |||
<span class="p">}</span> | |||
/ | |||
</ | <span class="n">g_ClearoutTable</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> <span class="c1">//for clearout (used in holdout)</span> | ||
<span class="c1">//script_debug commands related</span> | |||
<span class="n">ScriptDebugTraces</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> | |||
<span class="n">ScriptDebugTextFilters</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> | |||
<span class="c1">//documentation</span> | |||
< | <span class="n">_PublishedHelp</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> | ||
<span class="n">Documentation</span> <span class="o">=</span> <span class="p">{</span> | |||
<span class="n">classes</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> | |||
<span class="n">instances</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> | |||
<span class="n">functions</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> | |||
<span class="p">}</span> | |||
// | <span class="n">SPAWN_FLAGS</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> <span class="c1">//entitygroup related, used in MapSpawns thingy</span> | ||
// | <span class="c1">//entity scopes are created in _roottable example:</span> | ||
<span class="c1">//<uniquestring><targetname or classname if no targetname> = {}</span> | |||
<span class="n">_10dc_worldspawn</span> <span class="o">=</span> <span class="p">{</span> <span class="p">...</span> <span class="p">}</span> | |||
<span class="c1">//name of this scope is saved in entity's m_iszScriptId netprop</span> | |||
<span class="c1">//entity's RunScriptCode,RunScriptFile inputs create this scope if it doesn't exist and executes script in it</span> | |||
<span class="c1">//also scripts specified in entity's 'vscripts' keyvalue executed in this scope</span> | |||
<span class="p">}</span> | |||
</pre></div> | |||
<p><br /> | |||
<b>Squirrel grammar</b> | |||
</p> | |||
<div class="mw-highlight mw-content-ltr" dir="ltr"><pre><span></span><span class="nb">id</span><span class="p">:</span><span class="o">=</span> <span class="p">[</span><span class="n">a</span><span class="o">-</span><span class="n">zA</span><span class="o">-</span><span class="n">Z_</span><span class="p">]</span><span class="o">+</span><span class="p">[</span><span class="n">a</span><span class="o">-</span><span class="n">zA</span><span class="o">-</span><span class="n">Z_0</span><span class="o">-</span><span class="mi">9</span><span class="p">]</span><span class="o">*</span> <span class="o">//</span><span class="n">identifier</span> | |||
<span class="o">//</span><span class="n">literals</span> | |||
<span class="n">IntegerLiteral</span> <span class="p">:</span><span class="o">=</span> <span class="p">[</span><span class="mi">1</span><span class="o">-</span><span class="mi">9</span><span class="p">][</span><span class="mi">0</span><span class="o">-</span><span class="mi">9</span><span class="p">]</span><span class="o">*</span> <span class="o">|</span> <span class="s1">'0x'</span> <span class="p">[</span><span class="mi">0</span><span class="o">-</span><span class="mi">9</span><span class="n">A</span><span class="o">-</span><span class="n">Fa</span><span class="o">-</span><span class="n">f</span><span class="p">]</span><span class="o">+</span> <span class="o">|</span> <span class="s1">''' [.]+ '''</span> <span class="o">|</span> <span class="mi">0</span><span class="p">[</span><span class="mi">0</span><span class="o">-</span><span class="mi">7</span><span class="p">]</span><span class="o">+</span> | |||
<span class="n">FloatLiteral</span> <span class="p">:</span><span class="o">=</span> <span class="p">[</span><span class="mi">0</span><span class="o">-</span><span class="mi">9</span><span class="p">]</span><span class="o">+</span> <span class="s1">'.'</span> <span class="p">[</span><span class="mi">0</span><span class="o">-</span><span class="mi">9</span><span class="p">]</span><span class="o">+</span> | |||
<span class="n">FloatLiteral</span> <span class="p">:</span><span class="o">=</span> <span class="p">[</span><span class="mi">0</span><span class="o">-</span><span class="mi">9</span><span class="p">]</span><span class="o">+</span> <span class="s1">'.'</span> <span class="s1">'e'</span><span class="o">|</span><span class="s1">'E'</span> <span class="s1">'+'</span><span class="o">|</span><span class="s1">'-'</span> <span class="p">[</span><span class="mi">0</span><span class="o">-</span><span class="mi">9</span><span class="p">]</span><span class="o">+</span> | |||
<span class="n">StringLiteral</span><span class="p">:</span><span class="o">=</span> <span class="s1">'"'</span><span class="p">[</span><span class="o">.</span><span class="p">]</span><span class="o">*</span> <span class="s1">'"'</span> | |||
<span class="n">VerbatimStringLiteral</span><span class="p">:</span><span class="o">=</span> <span class="s1">'@''"'</span><span class="p">[</span><span class="o">.</span><span class="p">]</span><span class="o">*</span> <span class="s1">'"'</span> | |||
// | <span class="o">//</span><span class="n">operators</span> | ||
<span class="n">bassignops</span> <span class="p">:</span><span class="o">=</span> <span class="s1">'+='</span> <span class="o">|</span> <span class="s1">'/='</span> <span class="o">|</span> <span class="s1">'-='</span> <span class="o">|</span> <span class="s1">'*='</span> <span class="o">|</span> <span class="s1">'%='</span> <span class="o">|</span> <span class="s1">'<-'</span> <span class="o">|</span> <span class="s1">'='</span> <span class="o">|</span> | |||
<span class="n">barithops</span> <span class="p">:</span><span class="o">=</span> <span class="s1">'+'</span> <span class="o">|</span> <span class="s1">'-'</span> <span class="o">|</span> <span class="s1">'/'</span> <span class="o">|</span> <span class="s1">'*'</span> <span class="o">|</span> <span class="s1">'%'</span> | |||
<span class="n">bbitwops</span> <span class="p">:</span><span class="o">=</span> <span class="s1">'&'</span> <span class="o">|</span> <span class="s1">'^'</span> <span class="o">|</span> <span class="s1">'|'</span> <span class="o">|</span> <span class="s1">'>>'</span> <span class="o">|</span> <span class="s1">'<<'</span> <span class="o">|</span> <span class="s1">'>>>'</span> | |||
<span class="n">blogicops</span> <span class="p">:</span><span class="o">=</span> <span class="s1">'||'</span> <span class="o">|</span> <span class="s1">'&&'</span> | |||
<span class="n">bcompops</span> <span class="p">:</span><span class="o">=</span> <span class="s1">'!='</span> <span class="o">|</span> <span class="s1">'=='</span> <span class="o">|</span> <span class="s1">'>='</span> <span class="o">|</span> <span class="s1">'<='</span> <span class="o">|</span> <span class="s1">'>'</span> <span class="o">|</span> <span class="s1">'<=>'</span> | |||
// | <span class="n">ulogicops</span> <span class="p">:</span><span class="o">=</span> <span class="s1">'!'</span> | ||
<span class="n">urithops</span> <span class="p">:</span><span class="o">=</span> <span class="s1">'-'</span> | |||
<span class="n">ubitwops</span> <span class="p">:</span><span class="o">=</span> <span class="s1">'~'</span> | |||
<span class="n">uassignops</span> <span class="p">:</span><span class="o">=</span> <span class="s1">'++'</span> <span class="o">|</span> <span class="s1">'--'</span> | |||
<span class="o">//</span><span class="n">other</span><span class="err">?</span> | |||
<span class="n">explist</span> <span class="p">:</span><span class="o">=</span> <span class="n">exp</span> <span class="p">[</span><span class="s1">','</span> <span class="n">explist</span><span class="p">]</span> | |||
<span class="n">args</span> <span class="p">:</span><span class="o">=</span> <span class="nb">id</span> <span class="p">[</span><span class="s1">','</span> <span class="n">args</span><span class="p">]</span> | |||
exp := | <span class="o">//</span><span class="n">expressions</span> | ||
<span class="n">derefexp</span> <span class="p">:</span><span class="o">=</span> <span class="nb">id</span> <span class="o">|</span> <span class="n">exp</span> <span class="s1">'.'</span> <span class="nb">id</span> | |||
<span class="n">exp</span> <span class="p">:</span><span class="o">=</span> <span class="s1">'::'</span> <span class="nb">id</span> <span class="o">|</span> <span class="n">derefexp</span> <span class="o">|</span> <span class="n">functionexp</span> | |||
<span class="n">exp</span> <span class="p">:</span><span class="o">=</span> <span class="n">derefexp</span> <span class="s1">'='</span> <span class="n">exp</span> | |||
<span class="n">exp</span> <span class="p">:</span><span class="o">=</span> <span class="n">derefexp</span> <span class="s1">'<-'</span> <span class="n">exp</span> | |||
<span class="n">exp</span> <span class="p">:</span><span class="o">=</span> <span class="n">exp_cond</span> <span class="s1">'?'</span> <span class="n">exp</span> <span class="s1">':'</span> <span class="n">exp</span> | |||
<span class="n">exp</span> <span class="p">:</span><span class="o">=</span> <span class="n">exp</span> <span class="n">binop</span> <span class="n">exp</span> | |||
<span class="n">exp</span> <span class="p">:</span><span class="o">=</span> <span class="n">keyexp</span> <span class="s1">'in'</span> <span class="n">tableexp</span> | |||
<span class="n">exp</span> <span class="p">:</span><span class="o">=</span> <span class="n">instanceexp</span> <span class="s1">'instanceof'</span> <span class="n">classexp</span> | |||
<span class="n">exp</span> <span class="p">:</span><span class="o">=</span> <span class="s1">'typeof'</span> <span class="n">exp</span> | |||
<span class="n">exp</span> <span class="p">:</span><span class="o">=</span> <span class="s1">'clone'</span> <span class="n">exp</span> | |||
<span class="n">exp</span> <span class="p">:</span><span class="o">=</span> <span class="n">exp</span> <span class="s1">','</span> <span class="n">exp</span> | |||
<span class="n">exp</span> <span class="p">:</span><span class="o">=</span> <span class="s1">'delete'</span> <span class="n">derefexp</span> | |||
<span class="n">tslots</span> <span class="p">:</span><span class="o">=</span> <span class="p">(</span> <span class="nb">id</span> <span class="p">(</span><span class="s1">'='</span><span class="o">|</span><span class="s1">':'</span><span class="p">)</span> <span class="n">exp</span> <span class="o">|</span> <span class="s1">'['</span> <span class="n">exp</span> <span class="s1">']'</span> <span class="s1">'='</span> <span class="n">exp</span> <span class="o">|</span> <span class="s1">'"'</span> <span class="p">[</span><span class="o">.</span><span class="p">]</span><span class="o">*</span> <span class="s1">'"'</span> <span class="s1">':'</span> <span class="n">exp</span><span class="p">)</span> <span class="p">[</span><span class="s1">','</span><span class="p">]</span> | |||
<span class="n">exp</span> <span class="p">:</span><span class="o">=</span> <span class="s1">'{'</span> <span class="p">[</span><span class="n">tslots</span><span class="p">]</span><span class="o">*</span> <span class="s1">'}'</span> <span class="o">//</span><span class="n">table</span> <span class="n">constructor</span> | |||
exp := | |||
<span class="n">exp</span> <span class="p">:</span><span class="o">=</span> <span class="s1">'['</span> <span class="p">[</span><span class="n">explist</span><span class="p">]</span> <span class="s1">']'</span> <span class="o">//</span><span class="n">array</span> <span class="n">constructor</span> | |||
<span class="n">exp_cond</span> <span class="p">:</span><span class="o">=</span> <span class="n">exp</span> | |||
stat := | <span class="n">initexp</span> <span class="p">:</span><span class="o">=</span> <span class="n">exp</span> | ||
<span class="n">condexp</span> <span class="p">:</span><span class="o">=</span> <span class="n">exp</span> | |||
<span class="n">incexp</span> <span class="p">:</span><span class="o">=</span> <span class="n">exp</span> | |||
<span class="n">functionexp</span> <span class="p">:</span><span class="o">=</span> <span class="s1">'function'</span> <span class="s1">'('</span> <span class="n">args</span> <span class="s1">')'</span> <span class="n">stat</span> | |||
<span class="n">exp</span> <span class="p">:</span><span class="o">=</span> <span class="n">derefexp</span> <span class="s1">'('</span> <span class="n">explist</span> <span class="s1">')'</span> | |||
stat := | <span class="o">//</span><span class="n">statements</span> | ||
<span class="n">stats</span> <span class="p">:</span><span class="o">=</span> <span class="n">stat</span> <span class="p">[</span><span class="s1">';'</span><span class="o">|</span><span class="s1">'</span><span class="se">\n</span><span class="s1">'</span><span class="p">]</span> <span class="n">stats</span> | |||
stat:= | <span class="n">stat</span> <span class="p">:</span><span class="o">=</span> <span class="s1">'{'</span> <span class="n">stats</span> <span class="s1">'}'</span> | ||
<span class="n">stat</span> <span class="p">:</span><span class="o">=</span> <span class="s1">'if'</span> <span class="s1">'('</span> <span class="n">exp</span> <span class="s1">')'</span> <span class="n">stat</span> <span class="p">[</span><span class="s1">'else'</span> <span class="n">stat</span><span class="p">]</span> | |||
<span class="n">stat</span> <span class="p">:</span><span class="o">=</span> <span class="s1">'break'</span> <span class="o">|</span> <span class="s1">'continue'</span> | |||
<span class="n">stat</span> <span class="p">:</span><span class="o">=</span> <span class="s1">'for'</span> <span class="s1">'('</span> <span class="p">[</span><span class="n">initexp</span><span class="p">]</span> <span class="s1">';'</span> <span class="p">[</span><span class="n">condexp</span><span class="p">]</span> <span class="s1">';'</span> <span class="p">[</span><span class="n">incexp</span><span class="p">]</span> <span class="s1">')'</span> <span class="n">stat</span> | |||
<span class="n">stat</span> <span class="p">:</span><span class="o">=</span> <span class="s1">'foreach'</span> <span class="s1">'('</span> <span class="p">[</span><span class="n">index_id</span><span class="s1">','</span><span class="p">]</span> <span class="n">value_id</span> <span class="s1">'in'</span> <span class="n">exp</span> <span class="s1">')'</span> <span class="n">stat</span> | |||
<span class="n">stat</span> <span class="p">:</span><span class="o">=</span> <span class="s1">'while'</span> <span class="s1">'('</span> <span class="n">exp</span> <span class="s1">')'</span> <span class="n">stat</span> | |||
<span class="n">stat</span> <span class="p">:</span><span class="o">=</span> <span class="s1">'do'</span> <span class="n">stat</span> <span class="s1">'while'</span> <span class="s1">'('</span> <span class="n">expression</span> <span class="s1">')'</span> | |||
<span class="n">stat</span> <span class="p">:</span><span class="o">=</span> <span class="s1">'switch'</span> <span class="s1">'('</span> <span class="n">exp</span> <span class="s1">')'</span> <span class="s1">'{'</span> | |||
<span class="s1">'case'</span> <span class="n">case_exp</span> <span class="s1">':'</span> | |||
<span class="n">stats</span> | |||
<span class="p">[</span><span class="s1">'default'</span> <span class="s1">':'</span> | |||
<span class="n">stats</span><span class="p">]</span> | |||
<span class="s1">'}'</span> | |||
<span class="n">stat</span> <span class="p">:</span><span class="o">=</span> <span class="s1">'return'</span> <span class="p">[</span><span class="n">exp</span><span class="p">]</span> <span class="o">|</span> <span class="s1">'yield'</span> <span class="p">[</span><span class="n">exp</span><span class="p">]</span> | |||
// | <span class="n">initz</span> <span class="p">:</span><span class="o">=</span> <span class="nb">id</span> <span class="p">[</span><span class="o">=</span> <span class="n">exp</span><span class="p">][</span><span class="s1">','</span> <span class="n">initz</span><span class="p">]</span> | ||
<span class="n">stat</span> <span class="p">:</span><span class="o">=</span> <span class="s1">'local'</span> <span class="n">initz</span> | |||
stat := | |||
<span class="n">stat</span> <span class="p">:</span><span class="o">=</span> <span class="s1">'const'</span> <span class="nb">id</span> <span class="s1">'='</span> <span class="n">IntegerLiteral</span> <span class="o">|</span> <span class="n">FloatLiteral</span> <span class="o">|</span> <span class="n">StringLiteral</span> | |||
stat := | <span class="n">enumerations</span> <span class="p">:</span><span class="o">=</span> <span class="p">(</span> <span class="nb">id</span> <span class="s1">'='</span> <span class="n">Integer</span> <span class="o">|</span> <span class="n">FloatLiteral</span> <span class="o">|</span> <span class="n">StringLiteral</span> <span class="p">)</span> <span class="p">[</span><span class="s1">','</span><span class="p">]</span> | ||
<span class="n">stat</span><span class="p">:</span><span class="o">=</span> <span class="s1">'enum'</span> <span class="nb">id</span> <span class="s1">'{'</span> <span class="n">enumerations</span> <span class="s1">'}'</span> | |||
<span class="o">//</span><span class="n">funcname</span> <span class="p">:</span><span class="o">=</span> <span class="nb">id</span> <span class="p">[</span><span class="s1">'::'</span> <span class="nb">id</span><span class="p">]</span> | |||
stat := | <span class="n">functionstat</span> <span class="p">:</span><span class="o">=</span> <span class="s1">'function'</span> <span class="nb">id</span> <span class="p">[</span><span class="s1">'::'</span> <span class="nb">id</span><span class="p">]</span><span class="o">*</span> <span class="s1">'('</span> <span class="n">args</span> <span class="s1">')'</span> <span class="p">[</span><span class="s1">':'</span> <span class="s1">'('</span> <span class="n">args</span> <span class="s1">')'</span><span class="p">]</span> <span class="n">stat</span> | ||
<span class="n">stat</span> <span class="p">:</span><span class="o">=</span> <span class="n">functionstat</span> | |||
stat := | <span class="n">memberdecl</span> <span class="p">:</span><span class="o">=</span> <span class="nb">id</span> <span class="s1">'='</span> <span class="n">exp</span> <span class="o">|</span> <span class="s1">'['</span> <span class="n">exp</span> <span class="s1">']'</span> <span class="s1">'='</span> <span class="n">exp</span> <span class="o">|</span> <span class="n">functionstat</span> <span class="o">|</span> <span class="s1">'constructor'</span> <span class="n">functionexp</span> | ||
<span class="n">stat</span> <span class="p">:</span><span class="o">=</span> <span class="s1">'class'</span> <span class="n">derefexp</span> <span class="p">[</span><span class="s1">'extends'</span> <span class="n">derefexp</span><span class="p">]</span> <span class="s1">'{'</span> | |||
<span class="p">[</span><span class="n">memberdecl</span><span class="p">]</span><span class="o">*</span> | |||
<span class="s1">'}'</span> | |||
<span class="n">stat</span> <span class="p">:</span><span class="o">=</span> <span class="s1">'try'</span> <span class="n">stat</span> <span class="s1">'catch'</span> <span class="s1">'('</span> <span class="nb">id</span> <span class="s1">')'</span> <span class="n">stat</span> | |||
<span class="n">stat</span> <span class="p">:</span><span class="o">=</span> <span class="s1">'throw'</span> <span class="p">[</span><span class="n">exp</span><span class="p">]</span> | |||
</ | <span class="n">stat</span> <span class="p">:</span><span class="o">=</span> <span class="n">exp</span> | ||
</pre></div> |