stub language spec and example files
This commit is contained in:
parent
f5a712557c
commit
6e230de7f0
10 changed files with 392 additions and 296 deletions
77
public/latl/ipa.latl
Normal file
77
public/latl/ipa.latl
Normal 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
|
|
@ -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̩ / ɹ̩
|
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̩
|
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ʒ /
|
dʒ,
|
||||||
; VOICED LARYNGEALS
|
; VOICED LARYNGEALS
|
||||||
; LARYNGEALS
|
|
||||||
ɦ
|
ɦ
|
||||||
-= voiceless obstruents
|
-=
|
||||||
; PLOSIVES
|
PLOSIVES,
|
||||||
p / pʼ / pʰ / t / tʼ / tʰ ɾ / k / kʼ / kʰ /
|
|
||||||
; VOICELESS AFFRICATES
|
; VOICELESS AFFRICATES
|
||||||
tʃ / /
|
tʃ,
|
||||||
; VOICELESS FRICATIVES
|
; VOICELESS FRICATIVES
|
||||||
f / θ / s / ʃ / ç / x /
|
f, θ, s, ʃ, ç, x,
|
||||||
; VOICELESS LARYNGEALS
|
; VOICELESS LARYNGEALS
|
||||||
h / ʔ
|
h, ʔ
|
||||||
]
|
]
|
||||||
|
|
||||||
[spreadGlottis
|
[spreadGlottis
|
||||||
+=
|
+=
|
||||||
; ASPIRATED PLOSIVES
|
; ASPIRATED PLOSIVES
|
||||||
pʰ / tʰ / kʰ /
|
pʰ, 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
|
||||||
l̩ / ɹ̩ /
|
l̩, ɹ̩,
|
||||||
; 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
|
||||||
tʃ / dʒ /
|
tʃ, dʒ,
|
||||||
; NASALS
|
; NASALS
|
||||||
m ɱ / n / ŋ /
|
m ɱ, n, ŋ,
|
||||||
; SYLLABIC NASALS
|
; SYLLABIC NASALS
|
||||||
m̩ / n̩
|
m̩, n̩
|
||||||
]
|
]
|
||||||
|
|
||||||
[nasal
|
[nasal
|
||||||
+=
|
+=
|
||||||
; NASALS
|
; NASALS
|
||||||
m ɱ / n / ŋ /
|
m ɱ, n, ŋ,
|
||||||
; SYLLABIC NASALS
|
; SYLLABIC NASALS
|
||||||
m̩ / n̩
|
m̩, n̩
|
||||||
-=
|
-=
|
||||||
; 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
|
||||||
l̩ / ɹ̩ /
|
l̩, ɹ̩,
|
||||||
; PLOSIVES
|
; PLOSIVES
|
||||||
p / pʼ / pʰ / t / tʼ / tʰ ɾ / k / kʼ / kʰ /
|
p, pʼ, pʰ, t, tʼ, tʰ ɾ, k, kʼ, kʰ,
|
||||||
; AFFRICATES
|
; AFFRICATES
|
||||||
tʃ / dʒ /
|
tʃ, dʒ,
|
||||||
]
|
]
|
||||||
|
|
||||||
[strident
|
[strident
|
||||||
+=
|
+=
|
||||||
; STRIDENT FRICATIVES
|
; STRIDENT FRICATIVES
|
||||||
f / v / s / z / ʃ / ʒ /
|
f, v, s, z, ʃ, ʒ,
|
||||||
; STRIDENT AFFRICATES
|
; STRIDENT AFFRICATES
|
||||||
tʃ / dʒ
|
tʃ, dʒ
|
||||||
-=
|
-=
|
||||||
; 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
|
||||||
m̩ / n̩ / l̩ / ɹ̩ /
|
m̩, n̩, l̩, ɹ̩,
|
||||||
; GLIDES
|
; GLIDES
|
||||||
j / w
|
j, w
|
||||||
]
|
]
|
||||||
|
|
||||||
[lateral
|
[lateral
|
||||||
+=
|
+=
|
||||||
; LATERAL LIQUIDS
|
; LATERAL LIQUIDS
|
||||||
l /
|
l,
|
||||||
; SYLLABIC LATERALS /
|
; SYLLABIC LATERALS,
|
||||||
l̩
|
l̩
|
||||||
-=
|
-=
|
||||||
; VOWELS
|
; VOWELS
|
||||||
æ / e / ə / ɑ / ɔ / ɪ̞ / ɛ / ʌ / ʊ̞ / i / u̟ / æ̃ / ẽ / ə̃ / ɑ̃ / ɔ̃ / ɪ̃ / ɛ̃ / ʌ̃ / ʊ̃ / ĩ / ũ
|
æ, e, ə, ɑ, ɔ, ɪ̞, ɛ, ʌ, ʊ̞, i, u̟, æ̃, ẽ, ə̃, ɑ̃, ɔ̃, ɪ̃, ɛ̃, ʌ̃, ʊ̃, ĩ, ũ
|
||||||
; PLOSIVES
|
; PLOSIVES
|
||||||
p / pʼ / pʰ / t / tʼ / tʰ ɾ / k / kʼ / kʰ
|
p, pʼ, pʰ, t, tʼ, tʰ ɾ, k, kʼ, kʰ
|
||||||
; AFFRICATES
|
; AFFRICATES
|
||||||
tʃ / dʒ
|
tʃ, dʒ
|
||||||
; 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
|
||||||
m̩ / n̩ / ɹ̩
|
m̩, 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
|
||||||
u̟ / ʊ̞ / ɔ / ʊ̃ / ũ / ɔ̃
|
u̟, ʊ̞, ɔ, ʊ̃, ũ, ɔ̃
|
||||||
; 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
|
||||||
m̩ /
|
m̩,
|
||||||
; 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
|
||||||
tʃ / dʒ /
|
tʃ, 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
|
||||||
n̩ / l̩ / ɹ̩ /
|
n̩, 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
|
||||||
tʃ / dʒ /
|
tʃ, 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
|
||||||
n̩ / l̩ / ɹ̩
|
n̩, l̩, ɹ̩
|
||||||
-=
|
-=
|
||||||
; VOWELS
|
; VOWELS
|
||||||
æ / e / ə / ɑ / ɔ / ɪ̞ / ɛ / ʌ / ʊ̞ / i / u̟ / æ̃ / ẽ / ə̃ / ɑ̃ / ɔ̃ / ɪ̃ / ɛ̃ / ʌ̃ / ʊ̃ / ĩ / ũ
|
æ, e, ə, ɑ, ɔ, ɪ̞, ɛ, ʌ, ʊ̞, i, u̟, æ̃, ẽ, ə̃, ɑ̃, ɔ̃, ɪ̃, ɛ̃, ʌ̃, ʊ̃, ĩ, ũ
|
||||||
; NON-CORONAL PLOSIVES
|
; NON-CORONAL PLOSIVES
|
||||||
p / pʼ / pʰ / k / kʼ / kʰ
|
p, pʼ, pʰ, k, 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
|
||||||
m̩ /
|
m̩,
|
||||||
; 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
|
||||||
tʃ / dʒ /
|
tʃ, 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
|
||||||
n̩ / l̩ /
|
n̩, 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ʼ / kʰ
|
p, pʼ, pʰ, k, 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
|
||||||
m̩ /
|
m̩,
|
||||||
; 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
|
||||||
n̩ / l̩ /
|
n̩, l̩,
|
||||||
; -- NON-CORONALS
|
; -- NON-CORONALS
|
||||||
; VOWELS
|
; VOWELS
|
||||||
æ / e / ə / ɑ / ɔ / ɪ̞ / ɛ / ʌ / ʊ̞ / i / u̟ / æ̃ / ẽ / ə̃ / ɑ̃ / ɔ̃ / ɪ̃ / ɛ̃ / ʌ̃ / ʊ̃ / ĩ / ũ
|
æ, e, ə, ɑ, ɔ, ɪ̞, ɛ, ʌ, ʊ̞, i, u̟, æ̃, ẽ, ə̃, ɑ̃, ɔ̃, ɪ̃, ɛ̃, ʌ̃, ʊ̃, ĩ, ũ
|
||||||
; NON-CORONAL PLOSIVES
|
; NON-CORONAL PLOSIVES
|
||||||
p / pʼ / pʰ / k / kʼ / kʰ
|
p, pʼ, pʰ, k, 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
|
||||||
m̩ /
|
m̩,
|
||||||
; 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
|
||||||
tʃ / dʒ /
|
tʃ, 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
|
||||||
m̩ / n̩ / l̩ / ɹ̩
|
m̩, 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
|
||||||
tʃ / dʒ /
|
tʃ, 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
|
||||||
m̩ / n̩ / l̩ / ɹ̩
|
m̩, 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
|
||||||
tʃ / dʒ /
|
tʃ, 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
|
||||||
m̩ / n̩ / l̩ / ɹ̩
|
m̩, 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
|
||||||
tʃ / dʒ /
|
tʃ, 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
|
||||||
m̩ / n̩ / l̩ / ɹ̩
|
m̩, 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
|
||||||
tʃ / dʒ /
|
tʃ, 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
|
||||||
m̩ / n̩ / l̩ / ɹ̩
|
m̩, n̩, l̩, ɹ̩
|
||||||
; NON-DORSAL GLIDES
|
; NON-DORSAL GLIDES
|
||||||
w
|
w
|
||||||
]
|
]
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
||||||
})();
|
|
|
@ -1,2 +0,0 @@
|
||||||
main -> (statement "\n"):+
|
|
||||||
statement -> "foo" | "bar"
|
|
40
src/utils/latl/README.md
Normal file
40
src/utils/latl/README.md
Normal 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
25
src/utils/latl/grammar.js
Normal 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;
|
||||||
|
}
|
||||||
|
})();
|
8
src/utils/latl/grammar.ne
Normal file
8
src/utils/latl/grammar.ne
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
@{%
|
||||||
|
const lexer = require('./lexer');
|
||||||
|
%}
|
||||||
|
|
||||||
|
@lexer lexer
|
||||||
|
|
||||||
|
main -> (statement "\n"):+
|
||||||
|
statement -> "foo" | "bar"
|
|
@ -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: /\]/
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue