Skip to content

Syllable

Defined in: syllable.ts:35

A subunit of a Word consisting of consonants, vowels, and other linguistic and ortographic features.

new Syllable(clusters, options): Syllable

Defined in: syllable.ts:61

Creates a new Syllable

ParameterTypeDescription
clustersCluster[]an array of Cluster
optionsSyllableParamsoptional parameters

Syllable

new Syllable([new Cluster("אָ"), new Cluster("ב")]);

See the Syllabification page for how a syllable is determined. Currently, the Divine Name (e.g. יהוה), non-Hebrew text, and Hebrew punctuation (e.g. passeq, nun hafucha) are treated as a single syllable because these do not follow the rules of Hebrew syllabification.

Node.constructor

next: null | Node<Syllable>

Defined in: node.ts:9

Reference to the next node in the sequence.

Node.next


prev: null | Node<Syllable>

Defined in: node.ts:12

Reference to the previous node in the sequence.

Node.prev


value: null | Syllable

Defined in: node.ts:15

The value stored in this node.

Node.value

get chars(): Char[]

Defined in: syllable.ts:91

Gets all the Characters in the Syllable

const text = new Text("וַיִּקְרָ֨א");
text.syllables[2].chars;
// [
// Char { original: "ר" },
// Char { original: "ָ" },
// Char { original: "" }, i.e. \u{05A8} (does not print well)
// Char { original: "א" }
// ]

Char[]

a one dimensional array of characters


get clusters(): Cluster[]

Defined in: syllable.ts:110

Gets all the Clusters in the Syllable

const text = new Text("וַיִּקְרָ֨א");
text.syllables[1].clusters;
// [
// Cluster { original: "יִּ" },
// Cluster { original: "קְ" }
// ]

Cluster[]

a one dimensional array of clusters


get coda(): string

Defined in: syllable.ts:126

Gets the coda of the syllable - see structure

const text = new Text("יָ֥ם");
text.syllables[0].coda;
// "ם"

string

the coda of the syllable as a string, including any taamim and ignoring gemination of the following syllable - see codaWithGemination


get codaWithGemination(): string

Defined in: syllable.ts:144

Gets the coda of the syllable, including gemination of the following syllable - see structure

const text = new Text("מַדּ֥וּעַ");
text.syllables[0].codaWithGemination;
// "דּ"
text.syllables[0].coda // without gemination
// ""

string

the coda of the syllable as a string, including any taamim and including gemination of the following syllable - see structure


get consonantNames(): ("ALEF" | "BET" | "GIMEL" | "DALET" | "HE" | "VAV" | "ZAYIN" | "HET" | "TET" | "YOD" | "FINAL_KAF" | "KAF" | "LAMED" | "FINAL_MEM" | "MEM" | "FINAL_NUN" | "NUN" | "SAMEKH" | "AYIN" | "FINAL_PE" | "PE" | "FINAL_TSADI" | "TSADI" | "QOF" | "RESH" | "SHIN" | "TAV")[]

Defined in: syllable.ts:186

Gets the names of the consonant characters of the syllable

const text = new Text("רְ֭שָׁעִים");
text.syllables[2].consonantNames;
// ["AYIN", "YOD", "FINAL_MEM"]

This returns a one dimensional array of consonant names, even if the characters are not phonemic consonants, meaning even the name of maters are returned. See the structure method if you need the consonants with phonemic value.

("ALEF" | "BET" | "GIMEL" | "DALET" | "HE" | "VAV" | "ZAYIN" | "HET" | "TET" | "YOD" | "FINAL_KAF" | "KAF" | "LAMED" | "FINAL_MEM" | "MEM" | "FINAL_NUN" | "NUN" | "SAMEKH" | "AYIN" | "FINAL_PE" | "PE" | "FINAL_TSADI" | "TSADI" | "QOF" | "RESH" | "SHIN" | "TAV")[]

a one dimensional array of consonant character names


get consonants(): ("א" | "ב" | "ג" | "ד" | "ה" | "ו" | "ז" | "ח" | "ט" | "י" | "ך" | "כ" | "ל" | "ם" | "מ" | "ן" | "נ" | "ס" | "ע" | "ף" | "פ" | "ץ" | "צ" | "ק" | "ר" | "ש" | "ת")[]

Defined in: syllable.ts:166

Gets the consonant characters of the syllable

const text = new Text("רְ֭שָׁעִים");
text.syllables[2].consonants;
// ["ע", "י", "ם"]

This returns a one dimensional array of consonant characters, even if the characters are not phonemic consonants, meaning even maters are returned as consonant characters. See the structure method if you need the consonants with phonemic value.

("א" | "ב" | "ג" | "ד" | "ה" | "ו" | "ז" | "ח" | "ט" | "י" | "ך" | "כ" | "ל" | "ם" | "מ" | "ן" | "נ" | "ס" | "ע" | "ף" | "פ" | "ץ" | "צ" | "ק" | "ר" | "ש" | "ת")[]

a one dimensional array of consonant characters


get isAccented(): boolean

Defined in: syllable.ts:290

Checks if the Syllable is accented

const text = new Text("וַיִּקְרָ֨א"); // note the taam over the ר
text.syllables[0].isAccented; // i.e. "וַ"
// false
text.syllables[2].isAccented; // i.e. "רָ֨א"
// true

An accented syllable receives stress, and is typically indicated by the presence of a taam character

boolean

true if Syllable is accented

set isAccented(accented): void

Defined in: syllable.ts:300

Sets whether the Syllable is accented

ParameterTypeDescription
accentedbooleana boolean indicating if the Syllable is accented

void


get isClosed(): boolean

Defined in: syllable.ts:321

Checks if the Syllable is closed

const text = new Text("וַיִּקְרָ֨א");
text.syllables[0].isClosed; // i.e. "וַ"
// true
text.syllables[2].isClosed; // i.e. "רָ֨א"
// false

A closed syllable in Hebrew is a CVC or CVCC type, a mater letter does not close a syllable

boolean

true if Syllable is closed

set isClosed(closed): void

Defined in: syllable.ts:331

Sets whether the Syllable is closed

ParameterTypeDescription
closedbooleana boolean for whether the Syllable is closed

void


get isFinal(): boolean

Defined in: syllable.ts:349

Checks if the Syllable is the final syllable in a Word

const text = new Text("וַיִּקְרָ֨א");
text.syllables[0].isFinal; // i.e. "וַ"
// false
text.syllables[2].isFinal; // i.e. "רָ֨א"
// true

boolean

true if Syllable is final

set isFinal(final): void

Defined in: syllable.ts:358

Sets whether the Syllable is the final syllable in a Word

ParameterTypeDescription
finalbooleana boolean for whether the Syllable is the final Syallble

void


get nucleus(): string

Defined in: syllable.ts:376

Returns the nucleus of the syllable - see structure

const text = new Text("יָ֥ם");
text.syllables[0].nucleus;
// "\u{05B8}\u{05A5}""

The nucleus is the vowel of the syllable - present in every syllable and containing its vowel (with any materes lecticonis) or a shureq.

string

the nucleus of the syllable as a string, including any taamim - see structure


get onset(): string

Defined in: syllable.ts:394

Returns the onset of the syllable - see structure

const text = new Text("יָ֥ם");
text.syllables[0].onset;
// "י"

The onset is any initial consonant of the syllable - present in every syllable except those containing a except word-initial shureq or a furtive patah.

string

the onset of the syllable as a string - see structure


get siblings(): Node<T>[]

Defined in: node.ts:63

Gets the siblings of this node.

Node<T>[]

An array of Node representing all subsequent nodes in the sequence.

set siblings(arr): void

Defined in: node.ts:47

Sets the siblings of this node. Establishes bidirectional links between adjacent nodes in the provided array.

ParameterTypeDescription
arrNode<T>[]An array of Node to set as siblings.

void

Node.siblings


get taamim(): ("֑" | "֒" | "֓" | "֔" | "֕" | "֖" | "֗" | "֘" | "֙" | "֚" | "֛" | "֜" | "֝" | "֞" | "֟" | "֠" | "֡" | "֢" | "֣" | "֤" | "֥" | "֦" | "֧" | "֨" | "֩" | "֪" | "֫" | "֬" | "֭" | "֮")[]

Defined in: syllable.ts:536

Gets all the taamim characters in the Syllable

const text = new Text("הָאָ֖רֶץ");
text.syllables[1].taamim;
// ["\u{596}"]

("֑" | "֒" | "֓" | "֔" | "֕" | "֖" | "֗" | "֘" | "֙" | "֚" | "֛" | "֜" | "֝" | "֞" | "֟" | "֠" | "֡" | "֢" | "֣" | "֤" | "֥" | "֦" | "֧" | "֨" | "֩" | "֪" | "֫" | "֬" | "֭" | "֮")[]

a one dimensional array of taamim characters in the syllable


get taamimNames(): ("ETNAHTA" | "SEGOL_ACCENT" | "SHALSHELET" | "ZAQEF_QATAN" | "ZAQEF_GADOL" | "TIPEHA" | "REVIA" | "ZARQA" | "PASHTA" | "YETIV" | "TEVIR" | "GERESH" | "GERESH_MUQDAM" | "GERSHAYIM" | "QARNEY_PARA" | "TELISHA_GEDOLA" | "PAZER" | "ATNAH_HAFUKH" | "MUNAH" | "MAHAPAKH" | "MERKHA" | "MERKHA_KEFULA" | "DARGA" | "QADMA" | "TELISHA_QETANA" | "YERAH_BEN_YOMO" | "OLE" | "ILUY" | "DEHI" | "ZINOR")[]

Defined in: syllable.ts:552

Gets all the taamim names in the Syllable

const text = new Text("הָאָ֖רֶץ");
text.syllables[1].taamimNames;
// ["TIPEHA"]

("ETNAHTA" | "SEGOL_ACCENT" | "SHALSHELET" | "ZAQEF_QATAN" | "ZAQEF_GADOL" | "TIPEHA" | "REVIA" | "ZARQA" | "PASHTA" | "YETIV" | "TEVIR" | "GERESH" | "GERESH_MUQDAM" | "GERSHAYIM" | "QARNEY_PARA" | "TELISHA_GEDOLA" | "PAZER" | "ATNAH_HAFUKH" | "MUNAH" | "MAHAPAKH" | "MERKHA" | "MERKHA_KEFULA" | "DARGA" | "QADMA" | "TELISHA_QETANA" | "YERAH_BEN_YOMO" | "OLE" | "ILUY" | "DEHI" | "ZINOR")[]

a one dimensional array of taamim names in the syllable


get text(): string

Defined in: syllable.ts:575

The text of the syllable

const text = new Text("וַיִּקְרָ֨א");
text.syllables.map((syl) => syl.text);
// [
// "וַ"
// "יִּקְ"
// "רָ֨א"
// ]

This returns a string that has been built up from the .text of its constituent Clusters.

string

the sequenced and normalized text of the syllable


get vowelNames(): ("HATAF_SEGOL" | "HATAF_PATAH" | "HATAF_QAMATS" | "HIRIQ" | "TSERE" | "SEGOL" | "PATAH" | "QAMATS" | "HOLAM" | "HOLAM_HASER" | "QUBUTS" | "QAMATS_QATAN" | "SHEVA" | "SHUREQ")[]

Defined in: syllable.ts:598

Gets the names of the vowel characters in the syllable

const text = new Text("מִתָּ֑͏ַ֜חַת");
text.syllables[1].vowelNames;
// ["QAMATS", "PATAH"]

This returns an array of names of vowel characters in the syllable, but not for mater lectionis (e.g. a holam vav would return the HOLAM, not the vav). The only exception is a shureq, which returns “SHUREQ” because there is no vowel character for a shureq. It is very uncommon to have multiple vowel characters in a syllable. According to Syllabification, a sheva is a vowel and serves as the nucleus of a syllable. Unlike Cluster, a Syllable is concerned with linguistics, so a sheva is a vowel character.

("HATAF_SEGOL" | "HATAF_PATAH" | "HATAF_QAMATS" | "HIRIQ" | "TSERE" | "SEGOL" | "PATAH" | "QAMATS" | "HOLAM" | "HOLAM_HASER" | "QUBUTS" | "QAMATS_QATAN" | "SHEVA" | "SHUREQ")[]

an array of names of vowel characters in the syllable


get vowels(): ("ֱ" | "ֲ" | "ֳ" | "ִ" | "ֵ" | "ֶ" | "ַ" | "ָ" | "ֹ" | "ֺ" | "ֻ" | "ׇ" | "ְ" | "וּ")[]

Defined in: syllable.ts:634

Gets the vowel characters of the syllable

const text = new Text("מִתָּ֑͏ַ֜חַת");
text.syllables[1].vowels;
// ["\u{05B8}", "\u{05B7}"]

This returns a single vowel character, even for most mater lectionis (e.g. a holam vav would return the holam, not the vav). The only exception is a shureq, which returns the vav and the dagesh because there is no vowel character for a shureq. It is very uncommon to have multiple vowel characters in a syllable. According to Syllabification, a sheva is a vowel and serves as the nucleus of a syllable. Unlike Cluster, a Syllable is concerned with linguistics, so a sheva is a vowel character

("ֱ" | "ֲ" | "ֳ" | "ִ" | "ֵ" | "ֶ" | "ַ" | "ָ" | "ֹ" | "ֺ" | "ֻ" | "ׇ" | "ְ" | "וּ")[]

an array of vowel characters in the syllable


get word(): null | Word

Defined in: syllable.ts:673

Gets the Word to which the syllable belongs

const text = new Text("הָאָ֖רֶץ");
text.syllables[0].word;
// Word {
// text: "הָאָ֖רֶץ"
// }

null | Word

the Word to which the syllable belongs

set word(word): void

Defined in: syllable.ts:682

Sets the Word to which the syllable belongs

ParameterTypeDescription
wordnull | Wordthe Word to which the syllable belongs

void

hasConsonantName(name): boolean

Defined in: syllable.ts:207

Checks if the syllable contains the consonant character matching the name passed in

ParameterType
name"ALEF" | "BET" | "GIMEL" | "DALET" | "HE" | "VAV" | "ZAYIN" | "HET" | "TET" | "YOD" | "FINAL_KAF" | "KAF" | "LAMED" | "FINAL_MEM" | "MEM" | "FINAL_NUN" | "NUN" | "SAMEKH" | "AYIN" | "FINAL_PE" | "PE" | "FINAL_TSADI" | "TSADI" | "QOF" | "RESH" | "SHIN" | "TAV"

boolean

a boolean indicating if the syllable contains the consonant character matching the name passed in

const text = new Text("רְ֭שָׁעִים");
text.syllables[2].hasConsonantName("AYIN");
// true
text.syllables[2].hasConsonantName("YOD");
// false

This checks if the syllable contains the given consonant name, even if the character is not a phonemic consonant.


hasTaamName(name): boolean

Defined in: syllable.ts:266

Checks if the syllable contains the taamim character of the name passed in

ParameterType
name"ETNAHTA" | "SEGOL_ACCENT" | "SHALSHELET" | "ZAQEF_QATAN" | "ZAQEF_GADOL" | "TIPEHA" | "REVIA" | "ZARQA" | "PASHTA" | "YETIV" | "TEVIR" | "GERESH" | "GERESH_MUQDAM" | "GERSHAYIM" | "QARNEY_PARA" | "TELISHA_GEDOLA" | "PAZER" | "ATNAH_HAFUKH" | "MUNAH" | "MAHAPAKH" | "MERKHA" | "MERKHA_KEFULA" | "DARGA" | "QADMA" | "TELISHA_QETANA" | "YERAH_BEN_YOMO" | "OLE" | "ILUY" | "DEHI" | "ZINOR"

boolean

a boolean indicating if the syllable contains the taamim character of the name passed in

const text = new Text("הָאָ֖רֶץ");
text.syllables[1].hasTaamName("TIPEHA");
// true

Note: it only checks according to the character name, not its semantic meaning. E.g. “כֵֽן׃” would be true when checking for "METEG", not silluq


hasVowelName(name): boolean

Defined in: syllable.ts:242

Checks if the syllable contains the vowel character of the name passed in

ParameterType
name"HATAF_SEGOL" | "HATAF_PATAH" | "HATAF_QAMATS" | "HIRIQ" | "TSERE" | "SEGOL" | "PATAH" | "QAMATS" | "HOLAM" | "HOLAM_HASER" | "QUBUTS" | "QAMATS_QATAN" | "SHEVA" | "SHUREQ"

boolean

a boolean indicating if the syllable contains the vowel character of the name passed in

const text = new Text("הַיְחָבְרְךָ");
text.syllables[0].hasVowelName("PATAH");
// true
// test for vocal sheva
text.syllables[1].hasVowelName("SHEVA");
// true
// test for silent sheva
text.syllables[2].hasVowelName("SHEVA");
// false

This returns a boolean if the vowel character is present, even for most mater lectionis (e.g. in a holam vav construction, “HOLAM” would return true) The only exception is a shureq, because there is no vowel character for a shureq. According to Syllabification, a sheva is a vowel and serves as the nucleus of a syllable. Unlike Cluster, a Syllable is concerned with linguistics, so a sheva is a vowel character. It returns true for “SHEVA” only when the sheva is the vowel (i.e. a vocal sheva or sheva na’).


structure(withGemination): [string, string, string]

Defined in: syllable.ts:421

Returns the structure of the syllable

ParameterTypeDefault valueDescription
withGeminationbooleanfalseIf this argument is true, include gemination of the next syllable’s onset in this syllable’s coda.

[string, string, string]

the structure of the Syllable, i.e. the syllable’s onset, nucleus, and coda.

const text = new Text("מַדּוּעַ");
text.syllables.map(s => s.structure(true));
// [
// [ 'מ', 'ַ', 'דּ' ],
// [ 'דּ', 'וּ', '' ], NOTE: the dalet is the onset, but rendering can sometimes causes the blank string to appear to be first
// [ '', 'ַ', 'ע' ]
// ]
  • The onset is any initial consonant of the syllable - present in every syllable except those containing a except word-initial shureq or a furtive patah.
  • The nucleus is the vowel of the syllable - present in every syllable and containing its vowel (with any materes lecticonis) or a shureq.
  • The coda is all final consonants of the syllable - not including any matres lecticonis, and including the onset of the subsequent syllable if the subsequent syllable is geminated and the withGemination argument is true.