Package xyz.cofe.text.lex
Class LexerUtil
java.lang.Object
xyz.cofe.text.lex.LexerUtil
public class LexerUtil
extends java.lang.Object
Лексер исползующий список анализоров тект. лексем
- Author:
- gocha
-
Field Summary
-
Constructor Summary
Constructors Constructor Description LexerUtil() -
Method Summary
Modifier and Type Method Description static java.util.function.Predicate<java.lang.Character>[]append(java.util.function.Predicate<java.lang.Character>[] src, java.util.function.Predicate<java.lang.Character>... chr)Присоединяет к массиву еще массив предикатовstatic java.util.function.Predicate<java.lang.Character>[]array(java.util.function.Predicate<java.lang.Character>... chr)static java.util.List<Token>filter(java.util.List<Token> toks, java.lang.Class... whiteSpaceTokens)Фильтрует токены в списке.static java.util.function.Predicate<java.lang.Character>isInList(char... listOfChars)Создает предикат, символ находится в указанном спискеstatic java.util.function.Predicate<java.lang.Character>isInList(java.lang.String listOfChars)Создает предикат, символ находится в указанном спискеstatic intisRepeat(java.lang.String src, int offset, java.util.function.Predicate<java.lang.Character> charPred)Возвращает кол-во символов которые совпадают с предикатаомstatic charlookup(java.lang.String str, int off, char nullc)Возвращает символ в указанной позиции текстаstatic booleanmatch(java.lang.String src, int offset, boolean ignoreCase, java.lang.String text)Проверяет текст на совпадениеstatic booleanmatch(java.lang.String src, int offset, java.util.function.Predicate<java.lang.Character>... charPreds)Проверяет последовательность символов в соответ с предикатами.
Пример:
Последовательность предикатов: letter, letter, digit
Последовательность символов:AB123CD, проверит три символаи и в данном случаи вернте true.
Последовательность символов:1B123CD, проверит три символаи и в данном случаи вернте false.static java.util.function.Predicate<java.lang.Character>not(java.util.function.Predicate<java.lang.Character> pred)static java.util.function.Predicate<java.lang.Character>or(java.util.function.Predicate<java.lang.Character>... p)Создает предикат ИЛИ
-
Field Details
-
Constructor Details
-
LexerUtil
public LexerUtil()
-
-
Method Details
-
filter
public static java.util.List<Token> filter(java.util.List<Token> toks, java.lang.Class... whiteSpaceTokens)Фильтрует токены в списке.- Parameters:
toks- токеныwhiteSpaceTokens- список игнорируемых токенов- Returns:
- Очищенный список
-
lookup
public static char lookup(java.lang.String str, int off, char nullc)Возвращает символ в указанной позиции текста- Parameters:
str- Исходный текстoff- Смещение в текстеnullc- Возвращаемый символ если превышены границы текста- Returns:
- Символ
-
isRepeat
public static int isRepeat(java.lang.String src, int offset, java.util.function.Predicate<java.lang.Character> charPred)Возвращает кол-во символов которые совпадают с предикатаом- Parameters:
src- текстoffset- позиция проверяемого символаcharPred- предикат проверки символа- Returns:
- кол-во совпадений
-
match
public static boolean match(java.lang.String src, int offset, java.util.function.Predicate<java.lang.Character>... charPreds)Проверяет последовательность символов в соответ с предикатами.
Пример:
Последовательность предикатов: letter, letter, digit
Последовательность символов:AB123CD, проверит три символаи и в данном случаи вернте true.
Последовательность символов:1B123CD, проверит три символаи и в данном случаи вернте false.- Parameters:
src- Последовательность символовoffset- Смещение в последовательности символов (с какого начать, 0 - начало)charPreds- Последовательность предикатов- Returns:
- true - совпало
-
match
public static boolean match(java.lang.String src, int offset, boolean ignoreCase, java.lang.String text)Проверяет текст на совпадение- Parameters:
text- Искомый текстsrc- Исходный текстoffset- Смещение в исходном текстеignoreCase- Игнорировать регистр букв- Returns:
- true - Совпал; false - не совпал
-
array
public static java.util.function.Predicate<java.lang.Character>[] array(java.util.function.Predicate<java.lang.Character>... chr) -
append
public static java.util.function.Predicate<java.lang.Character>[] append(java.util.function.Predicate<java.lang.Character>[] src, java.util.function.Predicate<java.lang.Character>... chr)Присоединяет к массиву еще массив предикатов- Parameters:
src- Исходный массивchr- Присоединяемый массив- Returns:
- Склееный массив
-
not
public static final java.util.function.Predicate<java.lang.Character> not(java.util.function.Predicate<java.lang.Character> pred) -
isInList
public static java.util.function.Predicate<java.lang.Character> isInList(java.lang.String listOfChars)Создает предикат, символ находится в указанном списке- Parameters:
listOfChars- Список символов- Returns:
- Предикат
-
isInList
public static java.util.function.Predicate<java.lang.Character> isInList(char... listOfChars)Создает предикат, символ находится в указанном списке- Parameters:
listOfChars- Список символов- Returns:
- Предикаты
-
or
public static java.util.function.Predicate<java.lang.Character> or(java.util.function.Predicate<java.lang.Character>... p)Создает предикат ИЛИ- Parameters:
p- Список предикатов- Returns:
- Предикаты
-