<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://yezur.xyz/w/index.php?action=history&amp;feed=atom&amp;title=Module%3AAuphen%2Fsandbox%2Fdoc</id>
	<title>Module:Auphen/sandbox/doc - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://yezur.xyz/w/index.php?action=history&amp;feed=atom&amp;title=Module%3AAuphen%2Fsandbox%2Fdoc"/>
	<link rel="alternate" type="text/html" href="https://yezur.xyz/w/index.php?title=Module:Auphen/sandbox/doc&amp;action=history"/>
	<updated>2026-08-28T16:50:36Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://yezur.xyz/w/index.php?title=Module:Auphen/sandbox/doc&amp;diff=13120&amp;oldid=prev</id>
		<title>Thiorosan: Create the documentation subpage</title>
		<link rel="alternate" type="text/html" href="https://yezur.xyz/w/index.php?title=Module:Auphen/sandbox/doc&amp;diff=13120&amp;oldid=prev"/>
		<updated>2026-08-27T12:19:44Z</updated>

		<summary type="html">&lt;p&gt;Create the documentation subpage&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;This is the documentation for [[Module:Auphen/sandbox]], a working copy of [[Module:Auphen]], the sound-change engine of the Yezur wiki. It is a test rig rather than a live component: no article, dictionary entry or template renders through it, and it should not be relied on. It holds whatever candidate engine was last placed here, which may be ahead of the live module, behind it, or at odds with it.&lt;br /&gt;
&lt;br /&gt;
An engine change is drafted on this page, run beside the live version over the languages it touches, and only then copied to [[Module:Auphen]]. The candidate placed here on 2026-08-26 — category-wide numbering of &amp;lt;code&amp;gt;@&amp;lt;/code&amp;gt; instances, and backtracking in local context matching — was promoted the same day. The two pages are not kept in step automatically, so compare their histories before treating this one as current.&lt;br /&gt;
&lt;br /&gt;
== Invocation ==&lt;br /&gt;
&lt;br /&gt;
The sandbox is not called from wikitext directly: it returns a plain Lua table with no frame-taking functions. [[Module:Auphen/sandbox/frame]] is a copy of [[Module:Auphen/frame]] whose &amp;lt;code&amp;gt;require&amp;lt;/code&amp;gt; points here, and it carries the same &amp;lt;code&amp;gt;auphen&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;raw&amp;lt;/code&amp;gt; entry points, so the same call can be put to the candidate and to the live engine and the two outputs compared:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Auphen/sandbox/frame|raw|word|YAQ-HE}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Auphen/frame|raw|word|YAQ-HE}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sound data is shared, not copied: the sandbox frame loads the same per-language pages ([[Module:Auphen/YAQ-HE]] and its siblings) as the live frame, so the engine is the only difference between the two results. Cases that have been accepted belong on [[Template:Auphen/testcases]], which calls the live frame.&lt;br /&gt;
&lt;br /&gt;
== Interface ==&lt;br /&gt;
&lt;br /&gt;
The Lua interface is that of the live module.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Auphen.new(categories, ipa_rules, opts)&amp;lt;/code&amp;gt; || Builds an engine. &amp;lt;code&amp;gt;categories&amp;lt;/code&amp;gt; maps bracketed names such as &amp;lt;code&amp;gt;[C]&amp;lt;/code&amp;gt; to their members in declaration order; &amp;lt;code&amp;gt;ipa_rules&amp;lt;/code&amp;gt; is the spelling-to-sound text, one &amp;lt;code&amp;gt;spelling/sound&amp;lt;/code&amp;gt; pair to a line; &amp;lt;code&amp;gt;opts&amp;lt;/code&amp;gt; is optional.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;eng:run(ruleset, input, toIpa)&amp;lt;/code&amp;gt; || Runs &amp;lt;code&amp;gt;ruleset&amp;lt;/code&amp;gt; over &amp;lt;code&amp;gt;input&amp;lt;/code&amp;gt; and returns the result. With &amp;lt;code&amp;gt;toIpa&amp;lt;/code&amp;gt; set, the input is lower-cased, its punctuation normalised and &amp;lt;code&amp;gt;ipa_rules&amp;lt;/code&amp;gt; applied first. Spaces and &amp;lt;code&amp;gt;~&amp;lt;/code&amp;gt; divide the input into words, each derived with its own word edges.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;eng:run_word(ruleset, word)&amp;lt;/code&amp;gt; || Runs the ruleset over a single word; the result takes the capitalisation of the input — all lower case, all upper case, or an initial capital. Returns the derived word and a trace giving, for each rule line, the rule, the output after it and whether it fired.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;eng.warnings&amp;lt;/code&amp;gt; || The warnings raised while loading categories and while expanding and resolving rules.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opts.explodeCap&amp;lt;/code&amp;gt; || The ceiling on the number of alternatives a rule segment&amp;#039;s categories may expand to, 5,000,000 by default. A segment above it is dropped with a warning, so the rule matches nothing.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;opts.dashToSpace&amp;lt;/code&amp;gt; || When set, every &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; left in the finished word is rendered as a space.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Neither option is set by the two frames, so calls made from wikitext run at the defaults. The rule notation the engine reads is summarised in the header comment of the module itself. Design notes, the behaviour log and the record of divergences are on [[Module talk:Auphen]] and are not repeated here.&lt;/div&gt;</summary>
		<author><name>Thiorosan</name></author>
	</entry>
</feed>