taipa
Version:
Taiwanese morphological parsing library
106 lines (105 loc) • 3.28 kB
TypeScript
export declare class Character {
character: string;
constructor(s: string);
}
declare class Characters {
private carr;
private o;
constructor();
private assign;
get(key: string): Character;
get size(): number;
}
export declare const characters: Characters;
export declare abstract class Grapheme {
}
export declare class AlphabeticGrapheme extends Grapheme {
letter: AlphabeticLetter;
constructor(letter: AlphabeticLetter);
}
/** Letter is a subword unit. */
export declare class Letter {
literal: string;
}
export declare class AlphabeticLetter extends Letter {
characters: Array<Character>;
constructor(characters: Array<Character>);
pushCharacter(c: Character): void;
protected concat(): void;
}
export declare class MatchedSequence {
characters: Array<Character>;
get matchedLength(): number;
toString(): string;
}
export declare class Letters {
private arr;
protected o: Map<string, AlphabeticLetter>;
constructor(larr: string[]);
private assign;
handleN(characters: Character[], beginOfLetter: number, listLength: number): MatchedSequence;
get(key: string): AlphabeticLetter;
get size(): number;
get values(): IterableIterator<AlphabeticLetter>;
}
/** Turn a string into graphemes. */
export declare class GraphemeMaker {
private lowerLetters;
private listOfLetters;
constructor(lowerLetters: Letters);
makeGraphemes(str: string): AlphabeticGrapheme[];
private getMatchedSequence;
private make;
}
/** The sound tag of a given letter. */
export declare class Sound {
name: string;
characters: Array<Character>;
toString(): string;
makeCharacters(str: string): Character[];
}
export declare const soundSequence: (sounds: Sound[]) => {
sounds: Sound[];
includes(str: string): boolean;
};
export declare const sgPipe: (...fns: ((sg: SoundGeneration) => SoundGeneration)[]) => (x: SoundGeneration) => SoundGeneration;
/** Sound generation for syllable compositions. */
export declare class SoundGeneration {
/** The letters to be matched. */
letters: string[];
/** Matched sounds accumulator. */
matchedSounds: Sound[];
/** flag for syllable matching process. */
matching: boolean;
}
export declare class MatchedPattern {
letters: Array<AlphabeticLetter>;
pattern: Array<Sound>;
get matchedLength(): number;
get lastLetter(): AlphabeticLetter;
get lastSecondLetter(): AlphabeticLetter;
}
export declare abstract class Morpheme {
}
/** Syllable is a subword unit. */
export declare class Syllable {
literal: string;
letters: Array<AlphabeticLetter>;
constructor(letters: Array<AlphabeticLetter>);
pushLetter(l: AlphabeticLetter): void;
replaceLetter(i: number, l: AlphabeticLetter): void;
insertLetter(i: number, l: AlphabeticLetter): void;
protected concat(): void;
}
export declare function makeMatchedPatterns(letters: Array<AlphabeticLetter>, syllabify: (letters: Array<AlphabeticLetter>, beginOfSyllable: number) => MatchedPattern): MatchedPattern[];
export declare abstract class Lexeme {
}
export declare class Word {
literal: string;
}
export declare abstract class Phraseme {
}
export declare class Phrase {
literal: string;
}
export {};