Package xyz.cofe.cxel.parse
Class BaseParser
java.lang.Object
xyz.cofe.cxel.parse.BaseParser
- All Implemented Interfaces:
GRCache
- Direct Known Subclasses:
JsParser
public class BaseParser extends java.lang.Object implements GRCache
Базовый класс для парсеров
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classBaseParser.Atomic<T extends xyz.cofe.text.tparse.CToken,A extends AST>Правило сопоставления лексем -
Field Summary
-
Constructor Summary
Constructors Constructor Description BaseParser() -
Method Summary
Modifier and Type Method Description static <T extends xyz.cofe.text.tparse.CToken, A extends AST>
xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,A>atomic(java.lang.Class<T> target, java.util.function.BiFunction<xyz.cofe.text.tparse.TPointer,T,A> map)Создает правило сопоставления для единичной лексемы вывод AST узлаxyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,AST>binaryOp(xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,AST> operand, Keyword... operators)Правило бинарного выражения<U> Ucache(java.lang.String key, java.util.function.Supplier<U> fn)Кэширование созданных функцийstatic xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,AST>dummy()Заглушкаstatic xyz.cofe.text.tparse.TPointersource(java.lang.String source)Создание указателя по лексемамstatic xyz.cofe.text.tparse.TPointersource(java.lang.String source, int from)Создание указателя по лексемам
-
Field Details
-
Constructor Details
-
BaseParser
public BaseParser()
-
-
Method Details
-
cache
public <U> U cache(java.lang.String key, java.util.function.Supplier<U> fn)Кэширование созданных функций -
atomic
public static <T extends xyz.cofe.text.tparse.CToken, A extends AST> xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,A> atomic(java.lang.Class<T> target, java.util.function.BiFunction<xyz.cofe.text.tparse.TPointer,T,A> map)Создает правило сопоставления для единичной лексемы вывод AST узла- Type Parameters:
T- тип лексемыA- тип AST- Parameters:
target- тип лексемыmap- вывод AST из лексемы- Returns:
- правило
-
dummy
Заглушка -
source
public static xyz.cofe.text.tparse.TPointer source(java.lang.String source)Создание указателя по лексемам- Parameters:
source- исходный текст- Returns:
- указатель по лексемам
-
source
public static xyz.cofe.text.tparse.TPointer source(java.lang.String source, int from)Создание указателя по лексемам- Parameters:
source- исходный текстfrom- с какого символа (0 и больше) начинать парсинг- Returns:
- указатель по лексемам
-
binaryOp
public xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,AST> binaryOp(xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,AST> operand, Keyword... operators)Правило бинарного выражения- Parameters:
operand- операндoperators- операторы- Returns:
- правило
-