stub language spec and example files

This commit is contained in:
Sorrel Bri 2020-03-13 14:13:01 -07:00
parent f5a712557c
commit 6e230de7f0
10 changed files with 392 additions and 296 deletions

77
public/latl/ipa.latl Normal file
View file

@ -0,0 +1,77 @@
set NASAL_PULMONIC_CONSONANTS = [ m̥, m, ɱ, n̼, n̥, n, ɳ̊, ɳ, ɲ̊, ɲ, ŋ, ̊ŋ, ɴ ]
STOP_PULMONIC_CONSONANTS = [ p, b, p̪, b̪, t̼, d̼, t, d, ʈ, ɖ, c, ɟ, k, ɡ, q, ɢ, ʡ, ʔ ]
S_FRICATIVE_PULMONIC_CONSONANTS = [ s, z, ʃ, ʒ, ʂ, ʐ, ɕ, ʑ ]
FRICATIVE_PULMONIC_CONSONANTS = [ ɸ, β, f, v, θ̼, ð̼, θ, ð, θ̠, ð̠, ɹ̠̊˔, ɹ̠˔, ɻ˔, ç, ʝ, x, ɣ, χ, ʁ, ħ, ʕ, h, ɦ ]
APPROXIMANT_PULMONIC_CONSONANTS = [ ʋ̥, ʋ, ɹ̥, ɹ, ɻ̊, ɻ, j̊, j, ɰ̊, ɰ, ʔ̞ ]
TAP_PULMONIC_CONSONANTS = [ ⱱ̟, ⱱ, ɾ̼, ɾ̥, ɾ, ɽ̊, ɽ, ɢ̆, ʡ̆ ]
TRILL_PULMONIC_CONSONANTS = [ ʙ̥, ʙ, r̥, r, ɽ̊r̥, ɽr, ʀ̥, ʀ, ʜ, ʢ ]
L_FRICATIVE_PULMONIC_CONSONANTS = [ ɬ, ɮ, ɭ̊˔, ɭ˔, ʎ̝̊, ʎ̝, ʟ̝̊, ʟ̝ ]
L_APPROXIMANT_PULMONIC_CONSONANTS = [ l̥, l, ɭ̊, ɭ, ʎ̥, ʎ, ʟ̥, ʟ, ʟ̠ ]
L_TAP_PULMONIC_CONSONANTS = [ ɺ, ɭ̆, ʎ̆, ʟ̆ ]
AFFRICATE_PULMONIC_CONSONANTS = [ pɸ, bβ, p̪f, b̪v, t̪θ, d̪ð, tɹ̝̊, dɹ̝, t̠ɹ̠̊˔, d̠ɹ̠˔, cç, ɟʝ, kx, ɡɣ, qχ, ʡʢ, ʔh ]
S_AFFRICATE_PULMONIC_CONSONANTS = [ ts, dz, t̠ʃ, d̠ʒ, ʈʂ, ɖʐ, tɕ, dʑ ]
L_AFFRICATE_PULMONIC_CONSONANTS = [ tɬ, dɮ, ʈɭ̊˔, cʎ̝̊, kʟ̝̊, ɡʟ̝ ]
DOUBLE_STOP_PULMONIC_CONSONANTS = [ t͡p, d͡b, k͡p, ɡ͡b, q͡ʡ ]
DOUBLE_NASAL_PULMONIC_CONSONANTS = [ n͡m, ŋ͡m ]
DOUBLE_FRICATIVE_PULMONIC_CONSONANTS = [ ɧ ]
DOUBLE_APPROXIMANT_PULMONIC_CONSONANTS = [ ʍ, w, ɥ̊, ɥ, ɫ ]
set PULMONIC_CONSONANTS, C = { NASAL_PULMONIC_CONSONANTS or STOP_PULMONIC_CONSONANTS
or S_FRICATIVE_PULMONIC_CONSONANTS or FRICATIVE_PULMONIC_CONSONANTS
or APPROXIMANT_PULMONIC_CONSONANTS or TAP_PULMONIC_CONSONANTS
or TRILL_PULMONIC_CONSONANTS or L_FRICATIVE_PULMONIC_CONSONANTS
or L_APPROXIMANT_PULMONIC_CONSONANTS or L_TAP_PULMONIC_CONSONANTS
or AFFRICATE_PULMONIC_CONSONANTS or S_AFFRICATE_PULMONIC_CONSONANTS
or L_AFFRICATE_PULMONIC_CONSONANTS or DOUBLE_STOP_PULMONIC_CONSONANTS
or DOUBLE_NASAL_PULMONIC_CONSONANTS or DOUBLE_FRICATIVE_PULMONIC_CONSONANTS
or DOUBLE_APPROXIMANT_PULMONIC_CONSONANTS
}
set STOP_EJECTIVE_CONSONANTS = [ pʼ, tʼ, ʈʼ, cʼ, kʼ, qʼ, ʡʼ ]
FRICATIVE_EJECTIVE_CONSONANTS = [ ɸʼ, fʼ, θʼ, sʼ, ʃʼ, ʂʼ, ɕʼ, xʼ, χʼ ]
L_FRICATIVE_EJECTIVE_CONSONANTS = [ ɬʼ ]
AFFRICATE_EJECTIVE_CONSONANTS = [ tsʼ, t̠ʃʼ, ʈʂʼ, kxʼ, qχʼ ]
L_AFFRICATE_EJECTIVE_CONSONANTS = [ tɬʼ, cʎ̝̊ʼ, kʟ̝̊ʼ ]
set EJECTIVE_CONSONANTS = { STOP_EJECTIVE_CONSONANTS or FRICATIVE_EJECTIVE_CONSONANTS
or L_FRICATIVE_EJECTIVE_CONSONANTS or AFFRICATE_EJECTIVE_CONSONANTS
or L_AFFRICATE_EJECTIVE_CONSONANTS
}
set TENUIS_CLICK_CONSONANTS = [ ʘ, ǀ, ǃ, ǂ ]
VOICED_CLICK_CONSONANTS = [ ʘ̬, ǀ̬, ǃ̬, ǂ̬ ]
NASAL_CLICK_CONSONANTS = [ ʘ̃, ǀ̃, ǃ̃, ǂ̃ ]
L_CLICK_CONSONANTS = [ ǁ, ǁ̬ ]
set CLICK_CONSONANTS = { TENUIS_CLICK_CONSONANTS or VOICED_CLICK_CONSONANTS
or NASAL_CLICK_CONSONANTS or L_CLICK_CONSONANTS
}
set IMPLOSIVE_CONSONANTS = [ ɓ, ɗ, ᶑ, ʄ, ɠ, ʛ, ɓ̥, ɗ̥, ᶑ̊, ʄ̊, ɠ̊, ʛ̥ ]
set NON_PULMONIC_CONSONANTS = { EJECTIVE_CONSONANTS or CLICK_CONSONANTS or IMPLOSIVE_CONSONANTS }
set IMPLOSIVE_CONSONANTS = { PULMONIC_CONSONANTS or NON_PULMONIC_CONSONANTS }
set MODAL_VOWELS = [ i, y, ɨ, ʉ, ɯ, u, ɪ, ʏ, ʊ, e, ø ɘ, ɵ ɤ, o, ø̞ ə, o̞, ɛ, œ ɜ, ɞ ʌ, ɔ, æ, ɐ, a, ɶ, ä, ɑ, ɒ ]
BREATHY_VOWELS = { [ V ] in MODAL_VOWELS yield [ V̤ ] }
VOICELESS_VOWELS = { [ V ] in MODAL_VOWELS yield [ V̥ ] }
CREAKY_VOWELS = { [ V ] in MODAL_VOWELS yield [ V̰ ] }
set SHORT_ORAL_VOWELS = { MODAL_VOWELS or BREATHY_VOWELS or CREAKY_VOWELS or VOICELESS_VOWELS }
LONG_ORAL_VOWELS = { [ V ] in SHORT_ORAL_VOWELS [ Vː ] }
ORAL_VOWELS = { SHORT_ORAL_VOWELS or LONG_ORAL_VOWELS }
set NASAL_VOWELS = { [ V ] in ORAL_VOWELS yield [ Ṽ ] }
SHORT_NASAL_VOWELS = { [ Vː ] in NASAL_VOWELS yield [ V ]ː }
LONG_NASAL_VOWELS = { [ Vː ] in NASAL_VOWELS }
set VOWELS = { ORAL_VOWELS or NASAL_VOWELS }
print { GLOBAL }
*proto-lang
|child-lang

View file

@ -13,7 +13,7 @@
; -- -BACK = æ / e / ə / ɪ̞ / ɛ / i ; -- -BACK = æ / e / ə / ɪ̞ / ɛ / i
; -- +TENSE = e / i / u̟ / ɑ ; -- +TENSE = e / i / u̟ / ɑ
; -- -TENSE = æ / ə / ɪ̞ / ɛ / ʌ / ʊ̞ / ɔ ; -- -TENSE = æ / ə / ɪ̞ / ɛ / ʌ / ʊ̞ / ɔ
; ---- DIPTHONGS = eə / eɪ̯ / ju̟ / äɪ̞ / ɔɪ̞ / oʊ̞ / aʊ̞ / ɑɹ / iɹ / ɛɹ / ɔɹ / ʊɹ ; ---- DIPHTHONGS = eə / eɪ̯ / ju̟ / äɪ̞ / ɔɪ̞ / oʊ̞ / aʊ̞ / ɑɹ / iɹ / ɛɹ / ɔɹ / ʊɹ
; ---- CONSONANTS = p (pʰ) / b (b̥) / t (tʰ)(ɾ)(ʔ) / d (d̥)(ɾ) / tʃ / dʒ (d̥ʒ̊) / k (kʰ) / g (g̊) / f / v (v̥) / θ / ð (ð̥) / s / z (z̥) / ʃ / ʒ (ʒ̊) / h (ɦ)(ç) / m (ɱ)(m̩) / n(n̩) / ŋ / l (l̩)/ ɹ (ɹʲ ~ ɹˤ)(ɹ̩) / w (w̥) / j / x / ʔ ; ---- CONSONANTS = p (pʰ) / b (b̥) / t (tʰ)(ɾ)(ʔ) / d (d̥)(ɾ) / tʃ / dʒ (d̥ʒ̊) / k (kʰ) / g (g̊) / f / v (v̥) / θ / ð (ð̥) / s / z (z̥) / ʃ / ʒ (ʒ̊) / h (ɦ)(ç) / m (ɱ)(m̩) / n(n̩) / ŋ / l (l̩)/ ɹ (ɹʲ ~ ɹˤ)(ɹ̩) / w (w̥) / j / x / ʔ
; -- PLOSIVES = p / p' / pʰ / t / t' / tʰ ɾ / k / k' / kʰ ; -- PLOSIVES = p / p' / pʰ / t / t' / tʰ ɾ / k / k' / kʰ
@ -28,84 +28,73 @@
; -------- distinctive groups ; -------- distinctive groups
set PLOSIVES := | p / pʰ / t / tʼ / tʰ / ɾ / kʼ / k / kʰ | set PLOSIVES [ p, pʰ, t, tʼ, tʰ, ɾ, kʼ, k, kʰ ]
AFFRICATES := | tʃʰ / dʒ | AFFRICATES [ tʃʰ, dʒ ]
FRICATIVES := | f / v / θ / ð / s / z / ʃ / ʒ / ç / x | FRICATIVES [ f, v, θ, ð, s, z, ʃ, ʒ, ç, x ]
NASALS := | m / ɱ / n / ŋ | NASALS [ m, ɱ, n, ŋ ]
LIQUIDS := | l / ɹ | LIQUIDS [ l, ɹ, ɹʲ, ɹˤ ]
SYLLABICS := | m̩ / n̩ / l̩ / ɹ̩ | SYLLABICS [ m̩, n̩, l̩, ɹ̩ ]
VOWELS := | æ / e / ə / ɑ / ɔ / ɪ̞ / ɛ / ʌ / ʊ̞ / i / u̟ | VOWELS [ æ, e, ə, ɑ, ɔ, ɪ̞, ɛ, ʌ, ʊ̞, i, u̟ ]
GLIDES := | j / w | GLIDES [ j, w ]
LARYNGEALS := | h / ɦ / ʔ | LARYNGEALS [ h, ɦ, ʔ ]
VOWELS [ æ, e, ə, ɑ, ɔ, ɪ̞, ɛ, ʌ, ʊ̞, i, u̟ ]
; ---- implicit
; GLOBAL { all sets }
; ---- set join operations non-mutable!
; { SET_A not SET_B } left anti join
; { SET_A and SET_B } inner join
; { SET_A or SET_B } full outer join
; { SET_A nor SET_B } = { GLOBAL not { SET_A and SET_B } }
; ---- set character operations - non-mutable!
; { [ Xy ] in SET_A } FILTER: where X is any character and y is a filtering character
; { SET_A yield [ Xy ] } CONCATENATE: performs transformation with (prepended or) appended character
; { SET_A yield [ X concat y ] }
; { SET_A yield [ y concat X ] }
; { SET_A yield y[ X ] } DISSOCIATE: performs transformation removing prepended (or appended) character
; { SET_A yield y dissoc [ X ] }
; { SET_A yield [ X ] dissoc y }
; { [ Xy ] in SET_A yield [ X ]y } combined FILTER and DISSOCIATE
; ---- TENTATIVE!
; ---- set feature operations - non-mutable!
; { [ X + feature1 - feature2 ] in SET_A } FILTER: where X is any character and feature1 and feature2 are filtering features
; { SET_A yield [ X + feature1 ] } TRANSFORMATION: performs transformation with (prepended or) appended character
; { SET_A yield [ X - feature1 ] }
; { SET_A yield [ X - feature1 + feature2 ] }
; { [ X + feature1 - feature2 ] in SET_A yield [ - feature1 + feature2 ] } combined FILTER and TRANSFROMATION
; ---- example with join, character, and feature operations
; set SET_C = { [ PHONE +feature1 ] in { SET_A or SET_B } yield [ PHONE concat y ] }
; -------- main class features ; -------- main class features
[consonantal [consonantal
+= +=
; PLOSIVES PLOSIVES, AFFRICATES, FRICATIVES, NASALS, LIQUIDS, SYLLABICS
p / pʼ / pʰ / t / tʼ / tʰ ɾ / k / kʼ / kʰ /
; AFFRICATES
tʃ / dʒ /
; FRICATIVES
f / v / θ / ð / s / z / ʃ / ʒ / ç / x /
; NASALS
m ɱ / n / ŋ /
; LIQUIDS + RHOTICS
l / ɹ ɹʲ ɹˤ /
; SYLLABIC CONSONANTS
m̩ / n̩ / l̩ / ɹ̩
-= -=
; VOWELS VOWELS, GLIDES, LARYNGEALS
æ / e / ə / ɑ / ɔ / ɪ̞ / ɛ / ʌ / ʊ̞ / i / u̟ / æ̃ / ẽ / ə̃ / ɑ̃ / ɔ̃ / ɪ̃ / ɛ̃ / ʌ̃ / ʊ̃ / ĩ / ũ
; GLIDES
j / w /
; LARYNGEALS
h ɦ / ʔ
] ]
[sonorant [sonorant
+= +=
; VOWELS VOWELS, GLIDES, LIQUIDS, NASALS, SYLLABICS
æ / e / ə / ɑ / ɔ / ɪ̞ / ɛ / ʌ / ʊ̞ / i / u̟ / æ̃ / ẽ / ə̃ / ɑ̃ / ɔ̃ / ɪ̃ / ɛ̃ / ʌ̃ / ʊ̃ / ĩ / ũ
; GLIDES
j / w w̥ /
; LIQUIDS + RHOTICS
l / ɹ ɹʲ ɹˤ /
; NASALS
m ɱ / n / ŋ /
; SYLLABIC CONSONANTS
m̩ / n̩ / l̩ / ɹ̩
-= -=
; PLOSIVES PLOSIVES, AFFRICATES, FRICATIVES, LARYNGEALS
p / pʼ / pʰ / t / tʼ / tʰ ɾ / k / kʼ / kʰ /
; AFFRICATES
tʃ / dʒ /
; FRICATIVES
f / v / θ / ð / s / z / ʃ / ʒ / ç / x /
; LARYNGEALS
h ɦ / ʔ
] ]
[approximant [approximant
+= +=
; VOWELS VOWELS, LIQUIDS, GLIDES,
æ / e / ə / ɑ / ɔ / ɪ̞ / ɛ / ʌ / ʊ̞ / i / u̟ / æ̃ / ẽ / ə̃ / ɑ̃ / ɔ̃ / ɪ̃ / ɛ̃ / ʌ̃ / ʊ̃ / ĩ / ũ
; LIQUIDS + RHOTICS
l / ɹ ɹʲ ɹˤ /
; GLIDES
j / w /
; SYLLABIC LIQUIDS ; SYLLABIC LIQUIDS
/ ɹ̩ l̩, ɹ̩
-= -=
; PLOSIVES PLOSIVES, AFFRICATES, FRICATIVES, NASALS,
p / pʼ / pʰ / t / tʼ / tʰ ɾ / k / kʼ / kʰ /
; AFFRICATES
tʃ / dʒ /
; FRICATIVES
f / v / θ / ð / s / z / ʃ / ʒ / ç / x /
; NASALS
m ɱ / n / ŋ /
; SYLLABIC NASALS ; SYLLABIC NASALS
/ m̩, n̩
] ]
@ -114,91 +103,57 @@ set PLOSIVES := | p / pʰ / t / tʼ / tʰ / ɾ / kʼ / k / kʰ |
[voice [voice
+= +=
; VOWELS VOWELS, GLIDES, LIQUIDS, NASALS, SYLLABICS,
æ / e / ə / ɑ / ɔ / ɪ̞ / ɛ / ʌ / ʊ̞ / i / u̟ / æ̃ / ẽ / ə̃ / ɑ̃ / ɔ̃ / ɪ̃ / ɛ̃ / ʌ̃ / ʊ̃ / ĩ / ũ
; GLIDES
j / w /
; LIQUIDS + RHOTICS
l / ɹ ɹʲ ɹˤ /
; NASALS
m ɱ / n / ŋ /
; SYLLABIC CONSONANTS
m̩ / n̩ / l̩ / ɹ̩ /
; VOICED FRICATIVES ; VOICED FRICATIVES
v / ð / z / ʒ / v, ð, z, ʒ,
; VOICED AFFRICATES ; VOICED AFFRICATES
/ dʒ,
; VOICED LARYNGEALS ; VOICED LARYNGEALS
; LARYNGEALS
ɦ ɦ
-= voiceless obstruents -=
; PLOSIVES PLOSIVES,
p / pʼ / pʰ / t / tʼ / tʰ ɾ / k / kʼ / kʰ /
; VOICELESS AFFRICATES ; VOICELESS AFFRICATES
/ / ,
; VOICELESS FRICATIVES ; VOICELESS FRICATIVES
f / θ / s / ʃ / ç / x / f, θ, s, ʃ, ç, x,
; VOICELESS LARYNGEALS ; VOICELESS LARYNGEALS
h / ʔ h, ʔ
] ]
[spreadGlottis [spreadGlottis
+= +=
; ASPIRATED PLOSIVES ; ASPIRATED PLOSIVES
/ tʰ / kʰ / , tʰ, kʰ,
; ASPIRATED AFFRICATES ; ASPIRATED AFFRICATES
/ ,
; SPREAD LARYNGEALS ; SPREAD LARYNGEALS
h ɦ h ɦ
-= -=
; VOWELS VOWELS, FRICATIVES, NASALS, LIQUIDS, SYLLABICS, GLIDES,
æ / e / ə / ɑ / ɔ / ɪ̞ / ɛ / ʌ / ʊ̞ / i / u̟ / æ̃ / ẽ / ə̃ / ɑ̃ / ɔ̃ / ɪ̃ / ɛ̃ / ʌ̃ / ʊ̃ / ĩ / ũ
; UNASPIRATED PLOSIVES ; UNASPIRATED PLOSIVES
p / pʼ / t / tʼ / ɾ / k / kʼ / p, pʼ, t, tʼ, ɾ, k, kʼ,
; UNASPIRATED AFFRICATES ; UNASPIRATED AFFRICATES
tʃ / dʒ / tʃ, dʒ,
; FRICATIVES
f / v / θ / ð / s / z / ʃ / ʒ / ç / x /
; NASAL OBSTRUENTS
m ɱ / n / ŋ /
; LIQUIDS + RHOTICS
l / ɹ ɹʲ ɹˤ /
; SYLLABIC CONSONANTS
m̩ / n̩ / l̩ / ɹ̩ /
; GLIDES
j / w
; CONSTRICTED LARYNGEALS ; CONSTRICTED LARYNGEALS
ʔ ʔ
] ]
[constrictedGlottis [constrictedGlottis
+= +=
; LARYNGEALIZED RHOTIC ; LARYNGEALIZED RHOTIC
ɹˤ / ɹˤ,
; CONSTRICTED LARYNGEAL ; CONSTRICTED LARYNGEAL
ʔ / ʔ,
; EJECTIVE PLOSIVES ; EJECTIVE PLOSIVES
pʼ / tʼ / kʼ pʼ, tʼ, kʼ
-= -=
; VOWELS VOWELS, AFFRICATES, FRICATIVES, NASALS, SYLLABICS, GLIDES,
æ / e / ə / ɑ / ɔ / ɪ̞ / ɛ / ʌ / ʊ̞ / i / u̟ / æ̃ / ẽ / ə̃ / ɑ̃ / ɔ̃ / ɪ̃ / ɛ̃ / ʌ̃ / ʊ̃ / ĩ / ũ ; UNCONSTRICTED PLOSIVES
; PLOSIVES { PLOSIVES not [ p', t', k' ] },
p / pʰ / t / tʰ ɾ / k / kʰ / ; NON-CONSTRICTED LIQUIDS
; AFFRICATES l, ɹ ɹʲ,
tʃ / dʒ /
; FRICATIVES
f / v / θ / ð / s / z / ʃ / ʒ / ç / x /
; NASAL OBSTRUENTS
m ɱ / n / ŋ /
; LIQUIDS
l /
; NON-PHARYNGEALIZED RHOTICS
ɹ ɹʲ /
; SYLLABIC CONSONANTS
m̩ / n̩ / l̩ / ɹ̩
; GLIDES
j / w
; SPREAD LARYNGEALS ; SPREAD LARYNGEALS
h ɦ / h ɦ,
] ]
@ -207,97 +162,97 @@ set PLOSIVES := | p / pʰ / t / tʼ / tʰ / ɾ / kʼ / k / kʰ |
[continuant [continuant
+= +=
; FRICATIVES ; FRICATIVES
f / v / θ / ð / s / z / ʃ / ʒ / ç / x / f, v, θ, ð, s, z, ʃ, ʒ, ç, x,
; VOWELS ; VOWELS
æ / e / ə / ɑ / ɔ / ɪ̞ / ɛ / ʌ / ʊ̞ / i / u̟ / æ̃ / ẽ / ə̃ / ɑ̃ / ɔ̃ / ɪ̃ / ɛ̃ / ʌ̃ / ʊ̃ / ĩ / æ, e, ə, ɑ, ɔ, ɪ̞, ɛ, ʌ, ʊ̞, i, u̟, æ̃, ẽ, ə̃, ɑ̃, ɔ̃, ɪ̃, ɛ̃, ʌ̃, ʊ̃, ĩ,
; LIQUIDS + RHOTICS ; LIQUIDS + RHOTICS
l / ɹ ɹʲ ɹˤ / l, ɹ ɹʲ ɹˤ,
; GLIDES ; GLIDES
j / w / j, w,
; SYLLABIC LIQUIDS ; SYLLABIC LIQUIDS
/ ɹ̩ / , ɹ̩,
; TAPS ; TAPS
ɾ ɾ
-= -=
; NON-TAP PLOSIVES ; NON-TAP PLOSIVES
p / pʼ / pʰ / t / tʼ / tʰ / k / kʼ / kʰ / p, pʼ, pʰ, t, tʼ, tʰ, k, kʼ, kʰ,
; AFFRICATES ; AFFRICATES
/ dʒ / , dʒ,
; NASALS ; NASALS
m ɱ / n / ŋ / m ɱ, n, ŋ,
; SYLLABIC NASALS ; SYLLABIC NASALS
/ ,
] ]
[nasal [nasal
+= +=
; NASALS ; NASALS
m ɱ / n / ŋ / m ɱ, n, ŋ,
; SYLLABIC NASALS ; SYLLABIC NASALS
/ ,
-= -=
; VOWELS ; VOWELS
æ / e / ə / ɑ / ɔ / ɪ̞ / ɛ / ʌ / ʊ̞ / i / u̟ / æ̃ / ẽ / ə̃ / ɑ̃ / ɔ̃ / ɪ̃ / ɛ̃ / ʌ̃ / ʊ̃ / ĩ / æ, e, ə, ɑ, ɔ, ɪ̞, ɛ, ʌ, ʊ̞, i, u̟, æ̃, ẽ, ə̃, ɑ̃, ɔ̃, ɪ̃, ɛ̃, ʌ̃, ʊ̃, ĩ,
; FRICATIVES ; FRICATIVES
f / v / θ / ð / s / z / ʃ / ʒ / ç / x / f, v, θ, ð, s, z, ʃ, ʒ, ç, x,
; LIQUIDS + RHOTICS ; LIQUIDS + RHOTICS
l / ɹ ɹʲ ɹˤ / l, ɹ ɹʲ ɹˤ,
; GLIDES ; GLIDES
j / w / j, w,
; SYLLABIC LIQUIDS ; SYLLABIC LIQUIDS
/ ɹ̩ / , ɹ̩,
; PLOSIVES ; PLOSIVES
p / pʼ / pʰ / t / tʼ / tʰ ɾ / k / kʼ / kʰ / p, pʼ, pʰ, t, tʼ, tʰ ɾ, k, kʼ, kʰ,
; AFFRICATES ; AFFRICATES
/ dʒ / , dʒ,
] ]
[strident [strident
+= +=
; STRIDENT FRICATIVES ; STRIDENT FRICATIVES
f / v / s / z / ʃ / ʒ / f, v, s, z, ʃ, ʒ,
; STRIDENT AFFRICATES ; STRIDENT AFFRICATES
/ ,
-= -=
; VOWELS ; VOWELS
æ̃ / ẽ / ə̃ / ɑ̃ / ɔ̃ / ɪ̃ / ɛ̃ / ʌ̃ / ʊ̃ / ĩ / æ̃, ẽ, ə̃, ɑ̃, ɔ̃, ɪ̃, ɛ̃, ʌ̃, ʊ̃, ĩ,
; PLOSIVES ; PLOSIVES
p / pʼ / pʰ / t / tʼ / tʰ ɾ / k / kʼ / kʰ / p, pʼ, pʰ, t, tʼ, tʰ ɾ, k, kʼ, kʰ,
; NON-STRIDENT FRICATIVES ; NON-STRIDENT FRICATIVES
θ / ð / ç / x / θ, ð, ç, x,
; NASAL OBSTRUENTS ; NASAL OBSTRUENTS
m ɱ / n / ŋ / m ɱ, n, ŋ,
; RHOTICS + LIQUIDS ; RHOTICS + LIQUIDS
l / ɹ ɹʲ ɹˤ / l, ɹ ɹʲ ɹˤ,
; SYLLABIC CONSONANTS ; SYLLABIC CONSONANTS
/ n̩ / l̩ / ɹ̩ / , n̩, l̩, ɹ̩,
; GLIDES ; GLIDES
j / w j, w
] ]
[lateral [lateral
+= +=
; LATERAL LIQUIDS ; LATERAL LIQUIDS
l / l,
; SYLLABIC LATERALS / ; SYLLABIC LATERALS,
-= -=
; VOWELS ; VOWELS
æ / e / ə / ɑ / ɔ / ɪ̞ / ɛ / ʌ / ʊ̞ / i / u̟ / æ̃ / ẽ / ə̃ / ɑ̃ / ɔ̃ / ɪ̃ / ɛ̃ / ʌ̃ / ʊ̃ / ĩ / æ, e, ə, ɑ, ɔ, ɪ̞, ɛ, ʌ, ʊ̞, i, u̟, æ̃, ẽ, ə̃, ɑ̃, ɔ̃, ɪ̃, ɛ̃, ʌ̃, ʊ̃, ĩ,
; PLOSIVES ; PLOSIVES
p / pʼ / pʰ / t / tʼ / tʰ ɾ / k / kʼ / p, pʼ, pʰ, t, tʼ, tʰ ɾ, k, kʼ,
; AFFRICATES ; AFFRICATES
/ ,
; FRICATIVES ; FRICATIVES
f / v / θ / ð / s / z / ʃ / ʒ / ç / x f, v, θ, ð, s, z, ʃ, ʒ, ç, x
; NASAL OBSTRUENTS ; NASAL OBSTRUENTS
m ɱ / n / ŋ m ɱ, n, ŋ
; RHOTIC LIQUIDS ; RHOTIC LIQUIDS
ɹ ɹʲ ɹˤ ɹ ɹʲ ɹˤ
; NON-LIQUID SYLLABIC CONSONANTS ; NON-LIQUID SYLLABIC CONSONANTS
/ n̩ / ɹ̩ , n̩, ɹ̩
; GLIDES ; GLIDES
j / w j, w
] ]
@ -307,34 +262,34 @@ set PLOSIVES := | p / pʰ / t / tʼ / tʰ / ɾ / kʼ / k / kʰ |
[labial [labial
+= +=
; ROUNDED VOWELS ; ROUNDED VOWELS
/ ʊ̞ / ɔ / ʊ̃ / ũ / ɔ̃ , ʊ̞, ɔ, ʊ̃, ũ, ɔ̃
; LABIAL PLOSIVES ; LABIAL PLOSIVES
p / pʼ / pʰ / p, pʼ, pʰ,
; LABIAL FRICATIVES ; LABIAL FRICATIVES
f / v / f, v,
; LABIAL NASALS ; LABIAL NASALS
m ɱ / m ɱ,
; LABIAL SYLLABIC CONSONANTS ; LABIAL SYLLABIC CONSONANTS
/ ,
; LABIAL GLIDES ; LABIAL GLIDES
w w
-= -=
; UNROUNDED VOWELS ; UNROUNDED VOWELS
æ / e / ə / ɑ / ɪ̞ / ɛ / ʌ / i / æ̃ / ẽ / ə̃ / ɑ̃ / ɪ̃ / ɛ̃ / ʌ̃ / ĩ / æ, e, ə, ɑ, ɪ̞, ɛ, ʌ, i, æ̃, ẽ, ə̃, ɑ̃, ɪ̃, ɛ̃, ʌ̃, ĩ,
; NON-LABIAL PLOSIVES ; NON-LABIAL PLOSIVES
t / tʼ / tʰ ɾ / k / kʼ / kʰ / t, tʼ, tʰ ɾ, k, kʼ, kʰ,
; NON-LABIAL AFFRICATES ; NON-LABIAL AFFRICATES
/ dʒ / , dʒ,
; NON-LABIAL FRICATIVES ; NON-LABIAL FRICATIVES
θ / ð / s / z / ʃ / ʒ / ç / x / θ, ð, s, z, ʃ, ʒ, ç, x,
; NON-LABIAL NASAL OBSTRUENTS ; NON-LABIAL NASAL OBSTRUENTS
n / ŋ / n, ŋ,
; LIQUIDS ; LIQUIDS
l / l,
; RHOTIC LIQUIDS ; RHOTIC LIQUIDS
ɹ ɹʲ ɹˤ / ɹ ɹʲ ɹˤ,
; NON-LABIAL SYLLABIC CONSONANTS ; NON-LABIAL SYLLABIC CONSONANTS
/ l̩ / ɹ̩ / , l̩, ɹ̩,
; NON-LABIAL GLIDES ; NON-LABIAL GLIDES
j j
] ]
@ -344,113 +299,113 @@ set PLOSIVES := | p / pʰ / t / tʼ / tʰ / ɾ / kʼ / k / kʰ |
[coronal [coronal
+= +=
; CORONAL PLOSIVES ; CORONAL PLOSIVES
t / tʼ / tʰ ɾ / t, tʼ, tʰ ɾ,
; CORONAL AFFRICATES ; CORONAL AFFRICATES
/ dʒ / , dʒ,
; CORONAL FRICATIVES ; CORONAL FRICATIVES
θ / ð / s / z / ʃ / ʒ / θ, ð, s, z, ʃ, ʒ,
; CORONAL NASALS ; CORONAL NASALS
n / n,
; CORONAL LIQUIDS ; CORONAL LIQUIDS
l l
; CORONAL RHOTIC LIQUIDS ; CORONAL RHOTIC LIQUIDS
ɹ ɹ
; CORONAL SYLLABIC CONSONANTS ; CORONAL SYLLABIC CONSONANTS
/ l̩ / ɹ̩ , l̩, ɹ̩
-= -=
; VOWELS ; VOWELS
æ / e / ə / ɑ / ɔ / ɪ̞ / ɛ / ʌ / ʊ̞ / i / u̟ / æ̃ / ẽ / ə̃ / ɑ̃ / ɔ̃ / ɪ̃ / ɛ̃ / ʌ̃ / ʊ̃ / ĩ / æ, e, ə, ɑ, ɔ, ɪ̞, ɛ, ʌ, ʊ̞, i, u̟, æ̃, ẽ, ə̃, ɑ̃, ɔ̃, ɪ̃, ɛ̃, ʌ̃, ʊ̃, ĩ,
; NON-CORONAL PLOSIVES ; NON-CORONAL PLOSIVES
p / pʼ / pʰ / k / kʼ / p, pʼ, pʰ, k, kʼ,
; NON-CORONAL FRICATIVES ; NON-CORONAL FRICATIVES
f / v / ç / x f, v, ç, x
; NON-CORONAL NASAL OBSTRUENTS ; NON-CORONAL NASAL OBSTRUENTS
m ɱ / ŋ m ɱ, ŋ
; NON-CORONAL RHOTIC LIQUIDS ; NON-CORONAL RHOTIC LIQUIDS
ɹʲ ɹˤ ɹʲ ɹˤ
; NON-CORONAL SYLLABIC CONSONANTS ; NON-CORONAL SYLLABIC CONSONANTS
/ ,
; NON-CORONAL GLIDES ; NON-CORONAL GLIDES
j / w j, w
] ]
[anterior [anterior
+= +=
; ALVEOLAR PLOSIVES ; ALVEOLAR PLOSIVES
t / tʼ / tʰ ɾ / t, tʼ, tʰ ɾ,
; ALVEOLAR AFFRICATES ; ALVEOLAR AFFRICATES
/ dʒ / , dʒ,
; DENTAL FRICATIVES ; DENTAL FRICATIVES
θ / ð / θ, ð,
; ALVEOLAR FRICATIVES ; ALVEOLAR FRICATIVES
s / z / s, z,
; ALVEOLAR NASALS ; ALVEOLAR NASALS
n / n,
; ALVEOLAR LIQUIDS ; ALVEOLAR LIQUIDS
l l
; ALVEOLAR SYLLABIC CONSONANTS ; ALVEOLAR SYLLABIC CONSONANTS
/ l̩ / , l̩,
-= -=
; POSTALVEOLAR FRICATIVES ; POSTALVEOLAR FRICATIVES
ʃ / ʒ / ʃ, ʒ,
; POSTALVEOLAR RHOTIC LIQUIDS ; POSTALVEOLAR RHOTIC LIQUIDS
ɹ / ɹ,
; POSTALVEOLAR SYLLABIC CONSONANTS ; POSTALVEOLAR SYLLABIC CONSONANTS
ɹ̩ / ɹ̩,
; -- NON-CORONALs ; -- NON-CORONALs
; VOWELS ; VOWELS
æ / e / ə / ɑ / ɔ / ɪ̞ / ɛ / ʌ / ʊ̞ / i / u̟ / æ̃ / ẽ / ə̃ / ɑ̃ / ɔ̃ / ɪ̃ / ɛ̃ / ʌ̃ / ʊ̃ / ĩ / æ, e, ə, ɑ, ɔ, ɪ̞, ɛ, ʌ, ʊ̞, i, u̟, æ̃, ẽ, ə̃, ɑ̃, ɔ̃, ɪ̃, ɛ̃, ʌ̃, ʊ̃, ĩ,
; NON-CORONAL PLOSIVES ; NON-CORONAL PLOSIVES
p / pʼ / pʰ / k / kʼ / p, pʼ, pʰ, k, kʼ,
; NON-CORONAL FRICATIVES ; NON-CORONAL FRICATIVES
f / v / ç / x f, v, ç, x
; NON-CORONAL NASAL OBSTRUENTS ; NON-CORONAL NASAL OBSTRUENTS
m ɱ / ŋ m ɱ, ŋ
; NON-CORONAL RHOTIC LIQUIDS ; NON-CORONAL RHOTIC LIQUIDS
ɹʲ ɹˤ ɹʲ ɹˤ
; NON-CORONAL SYLLABIC CONSONANTS ; NON-CORONAL SYLLABIC CONSONANTS
/ ,
; NON-CORONAL GLIDES ; NON-CORONAL GLIDES
j / w j, w
] ]
[distributed [distributed
+= +=
; DENTAL FRICATIVES ; DENTAL FRICATIVES
θ / ð / θ, ð,
; POSTALVEOLAR FRICATIVES ; POSTALVEOLAR FRICATIVES
ʃ / ʒ / ʃ, ʒ,
; POSTALVEOLAR RHOTIC LIQUIDS ; POSTALVEOLAR RHOTIC LIQUIDS
ɹ / ɹ,
; POSTALVEOLAR SYLLABIC CONSONANTS ; POSTALVEOLAR SYLLABIC CONSONANTS
ɹ̩ / ɹ̩,
-= -=
; apical / retroflex ; apical, retroflex
; ALVEOLAR PLOSIVES ; ALVEOLAR PLOSIVES
t / tʼ / tʰ ɾ / t, tʼ, tʰ ɾ,
; ALVEOLAR FRICATIVES ; ALVEOLAR FRICATIVES
s / z / s, z,
; ALVEOLAR NASALS ; ALVEOLAR NASALS
n / n,
; ALVEOLAR LIQUIDS ; ALVEOLAR LIQUIDS
l l
; ALVEOLAR SYLLABIC CONSONANTS ; ALVEOLAR SYLLABIC CONSONANTS
/ l̩ / , l̩,
; -- NON-CORONALS ; -- NON-CORONALS
; VOWELS ; VOWELS
æ / e / ə / ɑ / ɔ / ɪ̞ / ɛ / ʌ / ʊ̞ / i / u̟ / æ̃ / ẽ / ə̃ / ɑ̃ / ɔ̃ / ɪ̃ / ɛ̃ / ʌ̃ / ʊ̃ / ĩ / æ, e, ə, ɑ, ɔ, ɪ̞, ɛ, ʌ, ʊ̞, i, u̟, æ̃, ẽ, ə̃, ɑ̃, ɔ̃, ɪ̃, ɛ̃, ʌ̃, ʊ̃, ĩ,
; NON-CORONAL PLOSIVES ; NON-CORONAL PLOSIVES
p / pʼ / pʰ / k / kʼ / p, pʼ, pʰ, k, kʼ,
; NON-CORONAL FRICATIVES ; NON-CORONAL FRICATIVES
f / v / ç / x f, v, ç, x
; NON-CORONAL NASAL OBSTRUENTS ; NON-CORONAL NASAL OBSTRUENTS
m ɱ / ŋ m ɱ, ŋ
; NON-CORONAL RHOTIC LIQUIDS ; NON-CORONAL RHOTIC LIQUIDS
ɹʲ ɹˤ ɹʲ ɹˤ
; NON-CORONAL SYLLABIC CONSONANTS ; NON-CORONAL SYLLABIC CONSONANTS
/ ,
; NON-CORONAL GLIDES ; NON-CORONAL GLIDES
j / w j, w
] ]
; -------- dorsal features ; -------- dorsal features
@ -458,32 +413,32 @@ set PLOSIVES := | p / pʰ / t / tʼ / tʰ / ɾ / kʼ / k / kʰ |
[dorsal [dorsal
+= +=
; VOWELS ; VOWELS
æ / e / ə / ɑ / ɔ / ɪ̞ / ɛ / ʌ / ʊ̞ / i / u̟ / æ̃ / ẽ / ə̃ / ɑ̃ / ɔ̃ / ɪ̃ / ɛ̃ / ʌ̃ / ʊ̃ / ĩ / æ, e, ə, ɑ, ɔ, ɪ̞, ɛ, ʌ, ʊ̞, i, u̟, æ̃, ẽ, ə̃, ɑ̃, ɔ̃, ɪ̃, ɛ̃, ʌ̃, ʊ̃, ĩ,
; DORSAL PLOSIVES ; DORSAL PLOSIVES
k / kʼ / kʰ / k, kʼ, kʰ,
; DORSAL FRICATIVES ; DORSAL FRICATIVES
ç / x / ç, x,
; DORSAL NASAL OBSTRUENTS ; DORSAL NASAL OBSTRUENTS
ŋ / ŋ,
; DORSAL RHOTIC LIQUIDS ; DORSAL RHOTIC LIQUIDS
ɹʲ ɹˤ ɹʲ ɹˤ
; DORSAL GLIDES ; DORSAL GLIDES
j j
-= -=
; NON-DORSAL PLOSIVES ; NON-DORSAL PLOSIVES
p / pʼ / pʰ / t / tʼ / tʰ ɾ / p, pʼ, pʰ, t, tʼ, tʰ ɾ,
; NON-DORSAL AFFRICATES ; NON-DORSAL AFFRICATES
/ dʒ / , dʒ,
; NON-DORSAL FRICATIVES ; NON-DORSAL FRICATIVES
f / v / θ / ð / s / z / ʃ / ʒ / f, v, θ, ð, s, z, ʃ, ʒ,
; NON-DORSAL NASALS ; NON-DORSAL NASALS
m ɱ / n / m ɱ, n,
; NON-DORSAL LIQUIDS ; NON-DORSAL LIQUIDS
l l
; NON-DORSAL RHOTIC LIQUIDS ; NON-DORSAL RHOTIC LIQUIDS
ɹ ɹ
; NON-DORSAL SYLLABIC CONSONANTS ; NON-DORSAL SYLLABIC CONSONANTS
/ n̩ / l̩ / ɹ̩ , n̩, l̩, ɹ̩
; NON-DORSAL GLIDES ; NON-DORSAL GLIDES
w w
] ]
@ -491,37 +446,37 @@ set PLOSIVES := | p / pʰ / t / tʼ / tʰ / ɾ / kʼ / k / kʰ |
[high [high
+= +=
; HIGH VOWELS ; HIGH VOWELS
i / u̟ / ʊ̞ / ɪ̞ / ĩ / ũ / ʊ̃ / ɪ̃ i, u̟, ʊ̞, ɪ̞, ĩ, ũ, ʊ̃, ɪ̃
; HIGH DORSAL PLOSIVES ; HIGH DORSAL PLOSIVES
k / kʼ / kʰ / k, kʼ, kʰ,
; HIGH DORSAL FRICATIVES ; HIGH DORSAL FRICATIVES
ç / x / ç, x,
; HIGH DORSAL NASAL OBSTRUENTS ; HIGH DORSAL NASAL OBSTRUENTS
ŋ / ŋ,
; HIGH RHOTIC LIQUIDS ; HIGH RHOTIC LIQUIDS
ɹʲ ɹʲ
; HIGH DORSAL GLIDES ; HIGH DORSAL GLIDES
j / w j, w
-= χ / e / o / a -= χ, e, o, a
; NON-HIGH VOWELS ; NON-HIGH VOWELS
ɑ / æ / e / ə / ɛ / ʌ / æ̃ / ẽ / ə̃ / ɑ̃ / ɔ̃ / ɛ̃ / ʌ̃ / ɑ, æ, e, ə, ɛ, ʌ, æ̃, ẽ, ə̃, ɑ̃, ɔ̃, ɛ̃, ʌ̃,
; NON-HIGH RHOTIC LIQUIDS ; NON-HIGH RHOTIC LIQUIDS
ɹˤ ɹˤ
; -- NON-DORSALS ; -- NON-DORSALS
; NON-DORSAL PLOSIVES ; NON-DORSAL PLOSIVES
p / pʼ / pʰ / t / tʼ / tʰ ɾ / p, pʼ, pʰ, t, tʼ, tʰ ɾ,
; NON-DORSAL AFFRICATES ; NON-DORSAL AFFRICATES
/ dʒ / , dʒ,
; NON-DORSAL FRICATIVES ; NON-DORSAL FRICATIVES
f / v / θ / ð / s / z / ʃ / ʒ / f, v, θ, ð, s, z, ʃ, ʒ,
; NON-DORSAL NASALS ; NON-DORSAL NASALS
m ɱ / n / m ɱ, n,
; NON-DORSAL LIQUIDS ; NON-DORSAL LIQUIDS
l l
; NON-DORSAL RHOTIC LIQUIDS ; NON-DORSAL RHOTIC LIQUIDS
ɹ ɹ
; NON-DORSAL SYLLABIC CONSONANTS ; NON-DORSAL SYLLABIC CONSONANTS
/ n̩ / l̩ / ɹ̩ , n̩, l̩, ɹ̩
; NON-DORSAL GLIDES ; NON-DORSAL GLIDES
w w
] ]
@ -529,112 +484,112 @@ set PLOSIVES := | p / pʰ / t / tʼ / tʰ / ɾ / kʼ / k / kʰ |
[low [low
+= +=
; LOW VOWELS ; LOW VOWELS
ɑ / æ / ɛ / æ̃ / ɑ̃ / ɛ̃ / ɑ, æ, ɛ, æ̃, ɑ̃, ɛ̃,
; LOW DORSAL RHOTIC LIQUIDS ; LOW DORSAL RHOTIC LIQUIDS
ɹˤ ɹˤ
-= a / ɛ / ɔ -= a, ɛ, ɔ
; NON-LOW VOWELS ; NON-LOW VOWELS
i / u̟ / ʊ̞ / ɪ̞ / e / ə / ʌ / ẽ / ə̃ / ɔ̃ / ɪ̃ / ʌ̃ / ʊ̃ / ĩ / i, u̟, ʊ̞, ɪ̞, e, ə, ʌ, ẽ, ə̃, ɔ̃, ɪ̃, ʌ̃, ʊ̃, ĩ,
; NON-LOW DORSAL PLOSIVES ; NON-LOW DORSAL PLOSIVES
k / kʼ / kʰ / k, kʼ, kʰ,
; NON-LOW DORSAL FRICATIVES ; NON-LOW DORSAL FRICATIVES
ç / x / ç, x,
; NON-LOW DORSAL NASAL OBSTRUENTS ; NON-LOW DORSAL NASAL OBSTRUENTS
ŋ / ŋ,
; NON-LOW DORSAL RHOTIC LIQUIDS ; NON-LOW DORSAL RHOTIC LIQUIDS
ɹʲ ɹʲ
; DORSAL GLIDES ; DORSAL GLIDES
j j
; -- NON-DORSALS ; -- NON-DORSALS
; NON-DORSAL PLOSIVES ; NON-DORSAL PLOSIVES
p / pʼ / pʰ / t / tʼ / tʰ ɾ / p, pʼ, pʰ, t, tʼ, tʰ ɾ,
; NON-DORSAL AFFRICATES ; NON-DORSAL AFFRICATES
/ dʒ / , dʒ,
; NON-DORSAL FRICATIVES ; NON-DORSAL FRICATIVES
f / v / θ / ð / s / z / ʃ / ʒ / f, v, θ, ð, s, z, ʃ, ʒ,
; NON-DORSAL NASALS ; NON-DORSAL NASALS
m ɱ / n / m ɱ, n,
; NON-DORSAL LIQUIDS ; NON-DORSAL LIQUIDS
l l
; NON-DORSAL RHOTIC LIQUIDS ; NON-DORSAL RHOTIC LIQUIDS
ɹ ɹ
; NON-DORSAL SYLLABIC CONSONANTS ; NON-DORSAL SYLLABIC CONSONANTS
/ n̩ / l̩ / ɹ̩ , n̩, l̩, ɹ̩
; NON-DORSAL GLIDES ; NON-DORSAL GLIDES
w w
] ]
[back [back
+= +=
; k / kʼ / ɣ / χ / u / ə / o / ʌ / ɑ ; k, kʼ, ɣ, χ, u, ə, o, ʌ, ɑ
; BACK VOWELS ; BACK VOWELS
ɑ / ɔ / ʌ / ʊ̞ / u̟ / ɑ̃ / ɔ̃ / ʌ̃ / ʊ̃ / ũ / ɑ, ɔ, ʌ, ʊ̞, u̟, ɑ̃, ɔ̃, ʌ̃, ʊ̃, ũ,
; BACK DORSAL PLOSIVES ; BACK DORSAL PLOSIVES
k / kʼ / kʰ / k, kʼ, kʰ,
; BACK DORSAL FRICATIVES ; BACK DORSAL FRICATIVES
x / x,
; BACK DORSAL NASAL OBSTRUENTS ; BACK DORSAL NASAL OBSTRUENTS
ŋ / ŋ,
; BACK DORSAL RHOTIC LIQUIDS ; BACK DORSAL RHOTIC LIQUIDS
ɹˤ ɹˤ
-= ç / k̟ / i / y / ø / ɛ -= ç, k̟, i, y, ø, ɛ
; NON-BACK DORSAL FRICATIVES ; NON-BACK DORSAL FRICATIVES
ç / ç,
; NON-BACK DORSAL RHOTIC LIQUIDS ; NON-BACK DORSAL RHOTIC LIQUIDS
ɹʲ ɹʲ
; NON-BACK DORSAL GLIDES ; NON-BACK DORSAL GLIDES
j j
; NON-BACK VOWELS ; NON-BACK VOWELS
æ / e / ə / ɪ̞ / ɛ / i / æ̃ / ẽ / ə̃ / ɪ̃ / ɛ̃ / æ, e, ə, ɪ̞, ɛ, i, æ̃, ẽ, ə̃, ɪ̃, ɛ̃,
; -- NON-DORSALS ; -- NON-DORSALS
; NON-DORSAL PLOSIVES ; NON-DORSAL PLOSIVES
p / pʼ / pʰ / t / tʼ / tʰ ɾ / p, pʼ, pʰ, t, tʼ, tʰ ɾ,
; NON-DORSAL AFFRICATES ; NON-DORSAL AFFRICATES
/ dʒ / , dʒ,
; NON-DORSAL FRICATIVES ; NON-DORSAL FRICATIVES
f / v / θ / ð / s / z / ʃ / ʒ / f, v, θ, ð, s, z, ʃ, ʒ,
; NON-DORSAL NASALS ; NON-DORSAL NASALS
m ɱ / n / m ɱ, n,
; NON-DORSAL LIQUIDS ; NON-DORSAL LIQUIDS
l l
; NON-DORSAL RHOTIC LIQUIDS ; NON-DORSAL RHOTIC LIQUIDS
ɹ ɹ
; NON-DORSAL SYLLABIC CONSONANTS ; NON-DORSAL SYLLABIC CONSONANTS
/ n̩ / l̩ / ɹ̩ , n̩, l̩, ɹ̩
; NON-DORSAL GLIDES ; NON-DORSAL GLIDES
w w
] ]
[tense ; compare to ATR or RTR [tense ; compare to ATR or RTR
+= +=
; TENSE VOWELS ; TENSE VOWELS
e / i / u̟ / ɑ / ĩ / ũ / ẽ / ɑ̃ / e, i, u̟, ɑ, ĩ, ũ, ẽ, ɑ̃,
-= -=
; NON-TENSE VOWELS ; NON-TENSE VOWELS
æ / ə / ɪ̞ / ɛ / ʌ / ʊ̞ / ɔ / æ̃ / ə̃ / ɔ̃ / ɪ̃ / ɛ̃ / ʌ̃ / ʊ̃ / æ, ə, ɪ̞, ɛ, ʌ, ʊ̞, ɔ, æ̃, ə̃, ɔ̃, ɪ̃, ɛ̃, ʌ̃, ʊ̃,
; DORSAL PLOSIVES ; DORSAL PLOSIVES
k / kʼ / kʰ / k, kʼ, kʰ,
; DORSAL FRICATIVES ; DORSAL FRICATIVES
ç / x / ç, x,
; DORSAL NASAL OBSTRUENTS ; DORSAL NASAL OBSTRUENTS
ŋ / ŋ,
; DORSAL RHOTIC LIQUIDS ; DORSAL RHOTIC LIQUIDS
ɹʲ ɹˤ / ɹʲ ɹˤ,
; DORSAL GLIDES ; DORSAL GLIDES
j j
; -- NON-DORSALS ; -- NON-DORSALS
; NON-DORSAL PLOSIVES ; NON-DORSAL PLOSIVES
p / pʼ / pʰ / t / tʼ / tʰ ɾ / p, pʼ, pʰ, t, tʼ, tʰ ɾ,
; NON-DORSAL AFFRICATES ; NON-DORSAL AFFRICATES
/ dʒ / , dʒ,
; NON-DORSAL FRICATIVES ; NON-DORSAL FRICATIVES
f / v / θ / ð / s / z / ʃ / ʒ / f, v, θ, ð, s, z, ʃ, ʒ,
; NON-DORSAL NASALS ; NON-DORSAL NASALS
m ɱ / n / m ɱ, n,
; NON-DORSAL LIQUIDS ; NON-DORSAL LIQUIDS
l l
; NON-DORSAL RHOTIC LIQUIDS ; NON-DORSAL RHOTIC LIQUIDS
ɹ ɹ
; NON-DORSAL SYLLABIC CONSONANTS ; NON-DORSAL SYLLABIC CONSONANTS
/ n̩ / l̩ / ɹ̩ , n̩, l̩, ɹ̩
; NON-DORSAL GLIDES ; NON-DORSAL GLIDES
w w
] ]

View file

@ -1,25 +0,0 @@
// Generated automatically by nearley, version 2.19.1
// http://github.com/Hardmath123/nearley
(function () {
function id(x) { return x[0]; }
var grammar = {
Lexer: undefined,
ParserRules: [
{"name": "main$ebnf$1$subexpression$1", "symbols": ["statement", {"literal":"\n"}]},
{"name": "main$ebnf$1", "symbols": ["main$ebnf$1$subexpression$1"]},
{"name": "main$ebnf$1$subexpression$2", "symbols": ["statement", {"literal":"\n"}]},
{"name": "main$ebnf$1", "symbols": ["main$ebnf$1", "main$ebnf$1$subexpression$2"], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}},
{"name": "main", "symbols": ["main$ebnf$1"]},
{"name": "statement$string$1", "symbols": [{"literal":"f"}, {"literal":"o"}, {"literal":"o"}], "postprocess": function joiner(d) {return d.join('');}},
{"name": "statement", "symbols": ["statement$string$1"]},
{"name": "statement$string$2", "symbols": [{"literal":"b"}, {"literal":"a"}, {"literal":"r"}], "postprocess": function joiner(d) {return d.join('');}},
{"name": "statement", "symbols": ["statement$string$2"]}
]
, ParserStart: "main"
}
if (typeof module !== 'undefined'&& typeof module.exports !== 'undefined') {
module.exports = grammar;
} else {
window.grammar = grammar;
}
})();

View file

@ -1,2 +0,0 @@
main -> (statement "\n"):+
statement -> "foo" | "bar"

40
src/utils/latl/README.md Normal file
View file

@ -0,0 +1,40 @@
# LATL specification
## Feature Definition
## Rule Definition
ex.
```
(
`Unmotivated A to C`
A -> B / _
A -> C / _
``A becomes C in all environments with a intermediate state of B``
)
```
### Rule Body
#### Sound Definition
#### Change Definition
#### Environment Definition
##### Null Environment
Valid syntaxes:
```
A -> B ; no indicated environment
A -> B / _ ; environment indicated wth underscore
A -> B / . _ . ; environment indicated with underscore and placeholder dots
```
### Rule Metadata
#### Rule Title
#### Rule Description
## Language Primitives
## Data Structures
### Sets
#### Set Definition
#### Set Usage
#### Set Operation
### Lexemes
#### Lexeme Operations
### Phone
#### Phone Operations
### Epochs

25
src/utils/latl/grammar.js Normal file
View file

@ -0,0 +1,25 @@
// Generated automatically by nearley, version 2.19.1
// http://github.com/Hardmath123/nearley
(function () {
function id(x) { return x[0]; }
const lexer = require('./lexer');
var grammar = {
Lexer: lexer,
ParserRules: [
{"name": "main$ebnf$1$subexpression$1", "symbols": ["statement", {"literal":"\n"}]},
{"name": "main$ebnf$1", "symbols": ["main$ebnf$1$subexpression$1"]},
{"name": "main$ebnf$1$subexpression$2", "symbols": ["statement", {"literal":"\n"}]},
{"name": "main$ebnf$1", "symbols": ["main$ebnf$1", "main$ebnf$1$subexpression$2"], "postprocess": function arrpush(d) {return d[0].concat([d[1]]);}},
{"name": "main", "symbols": ["main$ebnf$1"]},
{"name": "statement", "symbols": [{"literal":"foo"}]},
{"name": "statement", "symbols": [{"literal":"bar"}]}
]
, ParserStart: "main"
}
if (typeof module !== 'undefined'&& typeof module.exports !== 'undefined') {
module.exports = grammar;
} else {
window.grammar = grammar;
}
})();

View file

@ -0,0 +1,8 @@
@{%
const lexer = require('./lexer');
%}
@lexer lexer
main -> (statement "\n"):+
statement -> "foo" | "bar"

View file

@ -3,17 +3,18 @@ const moo = require('moo');
export const lexer = moo.states({ export const lexer = moo.states({
main: { main: {
comment: /;.*/, comment: /;.*/,
star: { match: /\*/, push: 'epoch' }, epochParent: { match: /\*/, push: 'epoch' },
slash: { match: /\//, push: 'lexicon' }, slash: { match: /\//, push: 'lexicon' },
// change so that identifiers are always upper, keywords are always lower, phones are always lower
identifier: { match: /[A-Za-z]+[\u00c0-\u03FFA-Za-z0-9\\-\\_]*/, type: moo.keywords({ identifier: { match: /[A-Za-z]+[\u00c0-\u03FFA-Za-z0-9\\-\\_]*/, type: moo.keywords({
'kw-set': 'set' 'kw-set': { match: 'set', push: 'setDefinition' }
})}, })},
openBracket: { match: /\[/, push: 'feature' }, openBracket: { match: /\[/, push: 'feature' },
space: { match: /\s+/, lineBreaks: true } space: { match: /\s+/, lineBreaks: true }
}, },
epoch: { epoch: {
identifier: /[A-Za-z]+[\u00c0-\u03FFA-Za-z0-9\\-\\_]*/, identifier: { match: /[A-Za-z]+[\u00c0-\u03FFA-Za-z0-9\\-\\_]*/, push: 'rule' },
pipe: { match: /\|/, pop: true }, pipe: { match: /\|/, pop: true },
greaterThan: /\>/, greaterThan: /\>/,
arrow: /\-\>/, arrow: /\-\>/,
@ -23,6 +24,16 @@ export const lexer = moo.states({
underscore: /\_/, underscore: /\_/,
}, },
rule: {
openSquareBracket: { match: /\[/, push: 'ruleFeature' },
},
ruleFeature: {
ruleFeature: { match: /[A-Za-z]+[\u00c0-\u03FFA-Za-z0-9\\-\\_]*/ },
closeBracket: { match: /\]/, pop: true }
},
lexicon: { lexicon: {
slash: { match: /\//, pop: true }, slash: { match: /\//, pop: true },
}, },
@ -31,6 +42,13 @@ export const lexer = moo.states({
closeBracket: { match: /\]/, pop: true }, closeBracket: { match: /\]/, pop: true },
positiveAssignment: /\+=/, positiveAssignment: /\+=/,
negativeAssignment: /\-=/, negativeAssignment: /\-=/,
},
setDefinition: {
openCurlyBracket: /\{/,
closeCurlyBracket: /\}/,
openSquareBracket: /\[/,
closeSquareBracket: /\]/
} }
}); });