Class AbstractAntlrDelegatingTextParser

  • All Implemented Interfaces:
    ITextParser

    public abstract class AbstractAntlrDelegatingTextParser
    extends Object
    implements ITextParser
    Базовая реализация интерфейса ITextParser, делегирующая работу парсеру построенному с помощью ANTLR 3.1
    See Also:
    AbstractAntlrParserDelegate
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected org.eclipse.emf.ecore.EObject model  
      protected INode rootNode  
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      protected abstract org.antlr.runtime.Lexer createLexer​(org.antlr.runtime.CharStream charStream)
      Метод создает экземпляр класса лексического анализатора.
      protected abstract AbstractAntlrParserDelegate createParserDelegate​(org.antlr.runtime.TokenStream tokens)
      Метод создает экземпляр класса делегата, выполняющего компиляцию текстового представления модели в EMF-представление.
      protected abstract void doParse​(AbstractAntlrParserDelegate parser)
      Данный метод непосредственно выполняет компиляцию текстового представления модели в EMF-представление с использованием делегата, ранее созданного методом createParserDelegate(TokenStream)
      В результате компиляции метод должен поместить ссылку на EMF-модель в поле model, а ссылку на корневой узел AST в поле rootNode
      Метод должен быть переопределен в конкретной реализации, унаследованной от данного класса.
      org.eclipse.emf.ecore.EObject getModel()
      Получение EMF-представления модели, ранее созданного методом ITextParser.parse().
      INode getRootNode()
      Получение корневого узла AST, ранее созданного методом ITextParser.parse().
      void parse()
      Метод выполняет преобразование текстового представления модели в EMF-представление.
    • Field Detail

      • model

        protected org.eclipse.emf.ecore.EObject model
      • rootNode

        protected INode rootNode
    • Constructor Detail

      • AbstractAntlrDelegatingTextParser

        public AbstractAntlrDelegatingTextParser​(org.eclipse.emf.common.util.URI uri,
                                                 InputStream inputStream,
                                                 IDiagnosticReporter reporter)
        Конструктор.
        Parameters:
        inputStream - входной поток, из которого читается текстовое представление модели
        reporter - IDiagnosticReporter, через который сливается диагностика
    • Method Detail

      • parse

        public void parse()
                   throws IOException
        Description copied from interface: ITextParser
        Метод выполняет преобразование текстового представления модели в EMF-представление.
        Specified by:
        parse in interface ITextParser
        Throws:
        IOException
      • getModel

        public org.eclipse.emf.ecore.EObject getModel()
        Description copied from interface: ITextParser
        Получение EMF-представления модели, ранее созданного методом ITextParser.parse().
        Specified by:
        getModel in interface ITextParser
        Returns:
        EMF-представление модели
      • getRootNode

        public INode getRootNode()
        Description copied from interface: ITextParser
        Получение корневого узла AST, ранее созданного методом ITextParser.parse().
        Specified by:
        getRootNode in interface ITextParser
        Returns:
        корневой узел AST
      • createLexer

        protected abstract org.antlr.runtime.Lexer createLexer​(org.antlr.runtime.CharStream charStream)
        Метод создает экземпляр класса лексического анализатора. Класс лексического анализатора унаследован от Lexer.
        Метод должен быть переопределен в конкретной реализации, унаследованной от данного класса.
        Parameters:
        charStream -
        Returns:
        экземпляр класса лексического анализатора
      • createParserDelegate

        protected abstract AbstractAntlrParserDelegate createParserDelegate​(org.antlr.runtime.TokenStream tokens)
        Метод создает экземпляр класса делегата, выполняющего компиляцию текстового представления модели в EMF-представление. Класс делегата является наследником класса AbstractAntlrParserDelegate
        Метод должен быть переопределен в конкретной реализации, унаследованной от данного класса.
        Parameters:
        tokens -
        Returns:
        делегат
      • doParse

        protected abstract void doParse​(AbstractAntlrParserDelegate parser)
        Данный метод непосредственно выполняет компиляцию текстового представления модели в EMF-представление с использованием делегата, ранее созданного методом createParserDelegate(TokenStream)
        В результате компиляции метод должен поместить ссылку на EMF-модель в поле model, а ссылку на корневой узел AST в поле rootNode
        Метод должен быть переопределен в конкретной реализации, унаследованной от данного класса.
        Parameters:
        parser -