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 class  BaseParser.Atomic<T extends xyz.cofe.text.tparse.CToken,​A extends AST>
    Правило сопоставления лексем
  • Field Summary

    Fields 
    Modifier and Type Field Description
    protected java.util.Map<java.lang.String,​java.lang.Object> cache  
    protected static xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> dummyInst  
  • 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> U cache​(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.TPointer source​(java.lang.String source)
    Создание указателя по лексемам
    static xyz.cofe.text.tparse.TPointer source​(java.lang.String source, int from)
    Создание указателя по лексемам

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • cache

      protected java.util.Map<java.lang.String,​java.lang.Object> cache
    • dummyInst

      protected static xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> dummyInst
  • Constructor Details

  • Method Details

    • cache

      public <U> U cache​(java.lang.String key, java.util.function.Supplier<U> fn)
      Кэширование созданных функций
      Specified by:
      cache in interface GRCache
      Type Parameters:
      U - вычисляемое значеие
      Parameters:
      key - ключ
      fn - функция
      Returns:
      функция
    • 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

      public static xyz.cofe.text.tparse.GR<xyz.cofe.text.tparse.TPointer,​AST> 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:
      правило