Template:Siwa-noun: Difference between revisions

From Linguifex
Jump to navigation Jump to search
No edit summary
(Blanked the page)
Tag: Blanking
Line 1: Line 1:
<div class="" style="border-collapse: collapse; margin: 0px 0px -1px 0px; padding: 2px; border: 1px solid #aaaaaa; text-align: center; font-size: 95%; overflow: auto; width: 70%;">
<div style="min-height: 1.6em; font-weight:bold; font-size: 100%; text-align: left; background-color:#efefef; padding-left: 10px; background-image: -webkit-gradient(linear, left top, left bottom, from(#EFEFEF), to(#DFDFDF), color-stop(0.6, #E3E3E3)); background-image: -moz-linear-gradient(top, #EFEFEF, #E3E3E3 60%, #DFDFDF);  background-image: -o-linear-gradient(top, #EFEFEF, #E3E3E3 60%, #DFDFDF);">{{PAGENAME}} — {{#switch: {{{a|{{{1|}}}}}}|i=inanimate|a=animate|b=ambiguous|}} noun, {{#var: declension}}-declension
</div>
<div class="mw-collapsible-content" style="font-size: 100%;">
{| border="1px solid #000000" style="border-collapse:collapse; background:#fafafa; text-align:center; width:100%"
|-
! rowspan=2 | Unmarked<br>''agentive/dative'' !! rowspan=2 | Marked<br>''patientive/genitive'' !! colspan="6" | Locative
|-
! Inessive !! Illative !! Elative !! Adessive !! Allative !! Ablative
|-
| {{term|{{PAGENAME}}}}
| {{term|<!--
-->{{#if:{{{irr|{{{4|}}}}}}|{{{irr|{{{4|}}}}}}<!--
==If the irr(egular) parameter is used (i.e. it's filled), its value supersedes the whole algorithm below==
  -->|{{#switch: {{{a|{{{1|}}}}}}<!--
    -->|i={{#ifeq: {{#var: finalLetter}}<!--
        ==Vowel- vs. consonant-final==
        -->|vf<!--
            -->|{{#switch: {{#var: declension}}<!--
                ==A-declension==
              -->|A={{#switch:{{str crop|{{str rightmost|{{PAGENAME}}|3}}|1}}<!--
                      ==Three-letter suffixes==
                    -->|mm={{str crop|{{PAGENAME}}|3}}{{#switch:{{#var: wsl}}|s=mġa|}}<!--
                    -->|nn={{str crop|{{PAGENAME}}|3}}{{#switch:{{#var:wsl}}|s=nka|}}<!--
                    -->|vv={{str crop|{{PAGENAME}}|3}}gga<!--
                    -->|lk={{str crop|{{PAGENAME}}|3}}lkka<!--
                    -->|rk={{str crop|{{PAGENAME}}|3}}rkka<!--
                    -->|sk={{str crop|{{PAGENAME}}|3}}skka<!--
                      ==Two-letter suffixes==
                    -->|{{#switch:{{str crop|{{str rightmost|{{PAGENAME}}|2}}|1}}<!--
                        -->|m={{str crop|{{PAGENAME}}|2}}{{#switch:{{#var: wsl}}|s=mġa|l=mka|w=kka|}}<!--
                        -->|n={{str crop|{{PAGENAME}}|2}}{{#switch:{{#var:wsl}}|s=nka|w=kka|}}<!--
                        -->|p|b={{str crop|{{PAGENAME}}|2}}{{#switch:{{#var:wsl}}|s=pra|w=ḍba|}}<!--
                        -->|d={{str crop|{{PAGENAME}}|2}}tra<!--
                        -->|t={{str crop|{{PAGENAME}}|2}}{{#switch:{{#var: wsl}}|s=tra|w=tka|}}<!--
                        -->|r={{str crop|{{PAGENAME}}|2}}{{#switch:{{#var: wsl}}|w=hka|}}<!--
                        -->|#default={{#var: lenitedStem}}{{str rightmost|{{PAGENAME}}|1}}ka}}<!--
                -->|}}<!--
            -->|}}<!--
        -->}}<!--
    -->|a=<!--
    -->|b=<!--
    -->|}}<!--
-->}}}}
|
|-
|}</div></div>
<!-- Tells apart vowel- from consonant-final words -->
{{#vardefine: finalLetter|{{#switch:{{str rightmost|{{PAGENAME}}|1}}|a|e|i|o|u|y|ů=vf|cf}}}}
<!-- Extracts declension from final vowel -->
{{#vardefine: declension|<!--
  -->{{#switch:{{#regex: {{{s|{{{2|}}}}}}|/(a{{!}}ả{{!}}au{{!}}ai{{!}}oa{{!}}e{{!}}ẻ{{!}}ę{{!}}ei{{!}}ay{{!}}i{{!}}ỉ{{!}}ie{{!}}ia{{!}}o{{!}}ỏ{{!}}ou{{!}}oi{{!}}u{{!}}ủ{{!}}uo{{!}}ui{{!}}y{{!}}ỷ{{!}}ů{{!}}ẻu{{!}}eu{{!}}ůi{{!}}ůa)/u}}<!--
  -->|a|ả|au|ai|oa=A<!--
  -->|e|ẻ|ę|ei|ay=E<!--
  -->|i|ỉ|ie|ia=I<!--
  -->|o|ỏ|ou|oi=O<!--
  -->|u|ủ|uo|ui=U<!--
  -->|y|ỷ|ů|ẻu|eu|ůi|ůa=Y<!--
  -->|error}}}}
<!-- If the word has a stressed long vowel or diphthong, it's a weak noun. Otherwise, it's a strong noun. There are also criteria based on syllable count but that will be calculated manually using {{{3}}} -->
{{#vardefine: wsl<!--
-->|{{#if: {{{manual|{{{3|}}}}}}|{{{manual|{{{3|}}}}}}<!--
    -->|{{#switch:{{#regex:{{{s|{{{2|}}}}}}|/(ả{{!}}ẻ{{!}}ỉ{{!}}ỏ{{!}}ủ{{!}}ỷ{{!}}ẻu{{!}}õu{{!}}ai{{!}}au{{!}}ay{{!}}ei{{!}}eu{{!}}ey{{!}}ia{{!}}ie{{!}}io{{!}}iu{{!}}iů{{!}}oa{{!}}oi{{!}}ou{{!}}ua{{!}}ui{{!}}uo{{!}}ůa{{!}}ůi)/u}}<!--
    -->|ả|ẻ|ỉ|ỏ|ủ|ỷ|ẻu|õu|ai|au|ay|ei|eu|ey|ia|ie|io|iu|iů|oa|oi|ou|ua|ui|uo|ůa|ůi=w<!--
    -->|#default=s<!--
    -->}}<!--
-->}}}}


{{#vardefine: lenitionPattern|/(bb{{!}}dd{{!}}gg{{!}}ġġ{{!}}gį{{!}}mm{{!}}ll{{!}}nn{{!}}rr{{!}}bġ{{!}}pr{{!}}dġ{{!}}tr{{!}}ḍb{{!}}ḍḍ{{!}}ḍg{{!}}bm{{!}}dn{{!}}kn{{!}}dl{{!}}lpp{{!}}ltt{{!}}lkk{{!}}rpp{{!}}rtt{{!}}rkk{{!}}mkk{{!}}skk{{!}}kl{{!}}kv{{!}}ks{{!}}ps{{!}}v{{!}}ų{{!}}b{{!}}h{{!}}ḥ{{!}}g{{!}}da{{!}}do{{!}}du{{!}}de{{!}}di{{!}}dů{{!}}dy{{!}}ġa{{!}}ġo{{!}}ġu{{!}}ġe{{!}}ġů{{!}}ġy{{!}}ri{{!}}ġi{{!}}nįi{{!}}hhį{{!}}oų{{!}}uų)/u}}
{{#vardefine: lenitedStem<!--
-->|{{#invoke: string|replace|{{{s|{{{2|}}}}}}<!--
  -->|{{#regex: {{{s|{{{2|}}}}}}|{{#var: lenitionPattern}}}}<!--
  -->|{{#switch: {{#regex: {{{s|{{{2|}}}}}}|{{#var: lenitionPattern}}}}<!--
      -->|bb=b<!--
      -->|dd=d<!--
      -->|gg=g<!--
      -->|ġġ=ġ<!--
      -->|gį=į<!--
      -->|mm|bm=m<!--
      -->|ll|dl|da|do|du=l<!--
      -->|nn|dn=n<!--
      -->|rr=r<!--
      -->|bġ|pr|ḍb=p<!--
      -->|dġ|tr=t<!--
      -->|ḍḍ=hh<!--
      -->|ḍg=k<!--
      -->|kn=ng<!--
      -->|lpp=lp<!--
      -->|ltt=lt<!--
      -->|rpp=rp<!--
      -->|rtt=rt<!--
      -->|rkk=rk<!--
      -->|mkk=mk<!--
      -->|skk=sk<!--
      -->|kl=gl<!--
      -->|kv=gv<!--
      -->|ks=gs<!--
      -->|ps=bs<!--
      -->|v|b|ų|h|ḥ|de|di|dů|dy|ġe|ġů|ġy=<!--
      -->|ġa=v|<!--
      -->|ġo|ġu=vv<!--
      -->|ri|ġi=ṡi<!--
      -->|nįi=gįi<!--
      -->|hhį=ṡ<!--
      -->|oų|uų<!--
  -->|}}<!--
-->|1}}
}}
{{Void|Unsuccessful regex experiment:
<!-- Given the noun stem ({{PAGENAME}} without affixes), it prints out the stressed syllable, which is seemingly (C)V(C) -->
{{#vardefine: syllableSeparator|{{#regexall: {{{stem|{{{2|}}}}}}|/[mpbvntdḍsṡrlkįųgġh]{0,4}[aeiouảẻỉỏủỷyůõ]{1,3}[mpbvntdḍsṡrlkįųgġh]?/u|¿}}}}
{{#vardefine: stressedSyllable|{{#explode: {{#var: syllableSeparator}}|¿}}}}
}}

Revision as of 20:30, 8 December 2020