Class AbstractAntlrParserDelegate


  • public abstract class AbstractAntlrParserDelegate
    extends org.antlr.runtime.Parser
    Абстрактный класс, используемый в качестве базового, для конкретных парсеров, сгенерированных ANTLR 3.1 по грамматике.
    • Field Summary

      • Fields inherited from class org.antlr.runtime.Parser

        input
      • Fields inherited from class org.antlr.runtime.BaseRecognizer

        DEFAULT_TOKEN_CHANNEL, HIDDEN, INITIAL_FOLLOW_STACK_SIZE, MEMO_RULE_FAILED, MEMO_RULE_UNKNOWN, NEXT_TOKEN_RULE_NAME, state
    • Constructor Summary

      Constructors 
      Constructor Description
      AbstractAntlrParserDelegate​(org.antlr.runtime.TokenStream input, org.antlr.runtime.RecognizerSharedState state)
      Конструктор
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected INode adaptNode​(org.eclipse.emf.ecore.EObject eObject, INode node)
      Сервисный метод, установливающий связь между объектом модели и узлом AST.
      Для этого узлу AST назначается объект модели {@see INode#setModelObject(EObject)}, с помощью NodeAdapter объекту модели ставится в соответствие соответсвующий узел AST.
      protected INode adaptNode​(org.eclipse.emf.ecore.EObject eObject, org.eclipse.emf.ecore.EStructuralFeature eFeature, INode node)
      Сервисный метод, устанавливающий связь между single-valued свойством объекта модели и узлом AST.
      Для установления такой связи используется только NodeAdapter
      protected INode adaptNodeToList​(org.eclipse.emf.ecore.EObject eObject, org.eclipse.emf.ecore.EStructuralFeature eFeature, INode node)
      Метод устанавливает связь между отдельным значением many-valued свойства объекта модели и узлом AST.
      protected void addAttributeValue​(org.eclipse.emf.ecore.EObject eObject, org.eclipse.emf.ecore.EAttribute eAttribute, String text)
      Добавление к списку значений many-valued атрибута значения, полученного из текстового представления.
      Для преобразования текстового представления в объект, который может быть значением атрибута используется функция createAttributeValue(EObject, EAttribute, String)
      protected INode addNewNode​(INode parent, org.antlr.runtime.Token tok)
      Данный метод предназначен для создания узла AST, соответствующего одиночному токену и добавления созданного узла к родительскому.
      protected INode addNewNode​(INode parent, org.antlr.runtime.Token tok, org.eclipse.emf.ecore.EObject eObject)
      Данный метод предназначен для создания узла AST, соответствующего одиночному токену, добавления созданного узла к родительскому и установки связи между созданным узлом AST и объектом модели.
      protected INode addNode​(INode parent, INode node)
      Сервисный метод, предназеначенный для добавления дочернего узла к родительскому.
      protected Object createAttributeValue​(org.eclipse.emf.ecore.EObject eObject, org.eclipse.emf.ecore.EAttribute eAttribute, String text)
      Получение из текстового представления значения, которое можно присвоить атрибуту объекта модели.
      Для получения значения из текстового представления данная функция обращается к createFromString(EDataType, String).
      При необходимости данная функция может быть переопределена в унаследованном классе.
      protected Object createFromString​(org.eclipse.emf.ecore.EDataType eDataType, String text)
      Получение из текстового представления значения, соответствующего заданному типу данных модели.
      Данная функция может быть переопределена в унаследованном классе, если для какого-либо типа данных требуется специфическое преобразование из текста.
      protected INode createNodeObject​(int type, TextLocation location)
      Функция создает объект-узел AST, реализующий интерфейс INode.
      Данная функция может быть переопределена в классе-наследнике, если требуется, чтобы в качестве реализации INode использовались объекты типа, отличного от Node
      protected Object getMissingSymbol​(org.antlr.runtime.IntStream input, org.antlr.runtime.RecognitionException e, int expectedTokenType, org.antlr.runtime.BitSet follow)  
      protected INode newNode​(int type)
      Данный метод предназначен для создания узла AST, соответствующего синтаксическому правилу.
      protected INode newNode​(int type, org.eclipse.emf.ecore.EObject eObject)
      Данный метод предназначен для создания узла AST, соответствующего синтаксическому правилу.
      protected INode newNode​(org.antlr.runtime.Token tok)
      Данный метод предназначен для создания узла AST, соответствующего одиночному токену.
      Для создаваемого INode из токена берется значение свойства type и вычисляется textLocation
      protected INode newNode​(org.antlr.runtime.Token tok, org.eclipse.emf.ecore.EObject eObject)
      Данный метод предназначен для создания узла AST, соответствующего одиночному токену.
      void reportError​(org.antlr.runtime.RecognitionException e)  
      protected void setAttributeValue​(org.eclipse.emf.ecore.EObject eObject, org.eclipse.emf.ecore.EAttribute eAttribute, String text)
      Присваивание single-valued атрибуту объекта модели значения, полученного из текстового представления.
      Для преобразования текстового представления в объект, который может быть значением атрибута используется функция createAttributeValue(EObject, EAttribute, String)
      void setDiagnosticReporter​(IDiagnosticReporter reporter)
      Установка репортера IDiagnosticReporter, через который будет производиться сбор диагностики
      void setUri​(org.eclipse.emf.common.util.URI uri)
      Установка URI EMF-ресурса, содержащего текстовое представление модели
      • Methods inherited from class org.antlr.runtime.Parser

        getCurrentInputSymbol, getSourceName, getTokenStream, reset, setTokenStream, traceIn, traceOut
      • Methods inherited from class org.antlr.runtime.BaseRecognizer

        alreadyParsedRule, beginResync, combineFollows, computeContextSensitiveRuleFOLLOW, computeErrorRecoverySet, consumeUntil, consumeUntil, displayRecognitionError, emitErrorMessage, endResync, failed, getBacktrackingLevel, getErrorHeader, getErrorMessage, getGrammarFileName, getNumberOfSyntaxErrors, getRuleInvocationStack, getRuleInvocationStack, getRuleMemoization, getRuleMemoizationCacheSize, getTokenErrorDisplay, getTokenNames, match, matchAny, memoize, mismatchIsMissingToken, mismatchIsUnwantedToken, pushFollow, recover, recoverFromMismatchedSet, recoverFromMismatchedToken, setBacktrackingLevel, toStrings, traceIn, traceOut
    • Constructor Detail

      • AbstractAntlrParserDelegate

        public AbstractAntlrParserDelegate​(org.antlr.runtime.TokenStream input,
                                           org.antlr.runtime.RecognizerSharedState state)
        Конструктор
        Parameters:
        input - входной поток, содержащий текст
        state -
    • Method Detail

      • setDiagnosticReporter

        public void setDiagnosticReporter​(IDiagnosticReporter reporter)
        Установка репортера IDiagnosticReporter, через который будет производиться сбор диагностики
        Parameters:
        reporter - репортер
      • setUri

        public void setUri​(org.eclipse.emf.common.util.URI uri)
        Установка URI EMF-ресурса, содержащего текстовое представление модели
        Parameters:
        uri - URI EMF-ресурса
      • reportError

        public void reportError​(org.antlr.runtime.RecognitionException e)
        Overrides:
        reportError in class org.antlr.runtime.BaseRecognizer
      • getMissingSymbol

        protected Object getMissingSymbol​(org.antlr.runtime.IntStream input,
                                          org.antlr.runtime.RecognitionException e,
                                          int expectedTokenType,
                                          org.antlr.runtime.BitSet follow)
        Overrides:
        getMissingSymbol in class org.antlr.runtime.Parser
      • createNodeObject

        protected INode createNodeObject​(int type,
                                         TextLocation location)
        Функция создает объект-узел AST, реализующий интерфейс INode.
        Данная функция может быть переопределена в классе-наследнике, если требуется, чтобы в качестве реализации INode использовались объекты типа, отличного от Node
        Parameters:
        type - тип узла AST
        location - расположение в тексте, соответствующее узлу AST
        eObject - объект модели, ассоциированный с узлом AST
        Returns:
        созданный объект-узел AST
      • newNode

        protected final INode newNode​(org.antlr.runtime.Token tok)
        Данный метод предназначен для создания узла AST, соответствующего одиночному токену.
        Для создаваемого INode из токена берется значение свойства type и вычисляется textLocation
        Parameters:
        tok - токен
        Returns:
        созданный узел AST или null, если параметр tok содержит null
      • newNode

        protected final INode newNode​(org.antlr.runtime.Token tok,
                                      org.eclipse.emf.ecore.EObject eObject)
        Данный метод предназначен для создания узла AST, соответствующего одиночному токену. С создаваемым узлом ассоциируется объект модели.
        Для создаваемого INode из токена берется значение свойства type и вычисляется textLocation.
        Parameters:
        tok - токен
        eObject - объект модели
        Returns:
        созданный узел AST или null, если параметр tok содержит null
      • newNode

        protected final INode newNode​(int type)
        Данный метод предназначен для создания узла AST, соответствующего синтаксическому правилу. Подразумевается, что в дальнейшем к созданному таким образом узлу могут добавляться дочерние узлы.
        Parameters:
        type - тип создаваемого узла AST
        Returns:
        созданный узел AST
      • newNode

        protected final INode newNode​(int type,
                                      org.eclipse.emf.ecore.EObject eObject)
        Данный метод предназначен для создания узла AST, соответствующего синтаксическому правилу. Подразумевается, что в дальнейшем к созданному таким образом узлу могут добавляться дочерние узлы.
        С создаваемым узлом ассоциируется объект модели.
        Parameters:
        type - тип создаваемого узла AST
        Returns:
        созданный узел AST
      • addNode

        protected final INode addNode​(INode parent,
                                      INode node)
        Сервисный метод, предназеначенный для добавления дочернего узла к родительскому.
        Parameters:
        parent - родительский узел
        node - добавляемый узел. Может быть null.
        Returns:
        добавленный узел
      • adaptNode

        protected final INode adaptNode​(org.eclipse.emf.ecore.EObject eObject,
                                        INode node)
        Сервисный метод, установливающий связь между объектом модели и узлом AST.
        Для этого узлу AST назначается объект модели {@see INode#setModelObject(EObject)}, с помощью NodeAdapter объекту модели ставится в соответствие соответсвующий узел AST.
        Parameters:
        eObject - объект модели
        node - узел AST. Может быть null.
        Returns:
        переданный в параметре узел AST
      • adaptNode

        protected final INode adaptNode​(org.eclipse.emf.ecore.EObject eObject,
                                        org.eclipse.emf.ecore.EStructuralFeature eFeature,
                                        INode node)
        Сервисный метод, устанавливающий связь между single-valued свойством объекта модели и узлом AST.
        Для установления такой связи используется только NodeAdapter
        Parameters:
        eObject - объект модели
        eFeature - свойство объекта модели
        node - узел AST. Может быть null.
        Returns:
        переданный в параметре узел AST
      • adaptNodeToList

        protected final INode adaptNodeToList​(org.eclipse.emf.ecore.EObject eObject,
                                              org.eclipse.emf.ecore.EStructuralFeature eFeature,
                                              INode node)
        Метод устанавливает связь между отдельным значением many-valued свойства объекта модели и узлом AST.
        Parameters:
        eObject - объект модели
        eFeature - many-valued свойство объекта модели
        node - узел AST. Может быть null.
        Returns:
        переданный в параметре узел AST
      • addNewNode

        protected final INode addNewNode​(INode parent,
                                         org.antlr.runtime.Token tok)
        Данный метод предназначен для создания узла AST, соответствующего одиночному токену и добавления созданного узла к родительскому.
        Parameters:
        parent - родительский узел AST
        tok - токен
        Returns:
        созданный узел AST или null, если параметр tok содержит null
      • addNewNode

        protected final INode addNewNode​(INode parent,
                                         org.antlr.runtime.Token tok,
                                         org.eclipse.emf.ecore.EObject eObject)
        Данный метод предназначен для создания узла AST, соответствующего одиночному токену, добавления созданного узла к родительскому и установки связи между созданным узлом AST и объектом модели.
        Parameters:
        parent - родительский узел AST
        tok - токен
        eObject - объект модели
        Returns:
        созданный узел AST или null, если параметр tok содержит null
      • setAttributeValue

        protected final void setAttributeValue​(org.eclipse.emf.ecore.EObject eObject,
                                               org.eclipse.emf.ecore.EAttribute eAttribute,
                                               String text)
        Присваивание single-valued атрибуту объекта модели значения, полученного из текстового представления.
        Для преобразования текстового представления в объект, который может быть значением атрибута используется функция createAttributeValue(EObject, EAttribute, String)
        Parameters:
        eObject - объект модели
        eAttribute - single-valued атрибут объекта модели
        text - текстовое представление значения
      • addAttributeValue

        protected final void addAttributeValue​(org.eclipse.emf.ecore.EObject eObject,
                                               org.eclipse.emf.ecore.EAttribute eAttribute,
                                               String text)
        Добавление к списку значений many-valued атрибута значения, полученного из текстового представления.
        Для преобразования текстового представления в объект, который может быть значением атрибута используется функция createAttributeValue(EObject, EAttribute, String)
        Parameters:
        eObject - объект модели
        eAttribute - many-valued атрибут объекта модели
        text - текстовое представление значения
      • createAttributeValue

        protected Object createAttributeValue​(org.eclipse.emf.ecore.EObject eObject,
                                              org.eclipse.emf.ecore.EAttribute eAttribute,
                                              String text)
        Получение из текстового представления значения, которое можно присвоить атрибуту объекта модели.
        Для получения значения из текстового представления данная функция обращается к createFromString(EDataType, String).
        При необходимости данная функция может быть переопределена в унаследованном классе. Но переопределение имеет смысл, если для какого-либо атрибута требуется специфическое преобразование из текста. Если преобразование специфично для типа данных, то следует переопределить createFromString(EDataType, String).
        Parameters:
        eObject - объект модели
        eAttribute - атрибут объекта модели
        text - текстовое представление
        Returns:
        объект, подходящий для присваивания атрибуту объекта модели или null, если в параметре text содержался null.
      • createFromString

        protected Object createFromString​(org.eclipse.emf.ecore.EDataType eDataType,
                                          String text)
        Получение из текстового представления значения, соответствующего заданному типу данных модели.
        Данная функция может быть переопределена в унаследованном классе, если для какого-либо типа данных требуется специфическое преобразование из текста.
        Parameters:
        eDataType - тип данных
        text - текстовое представление
        Returns:
        объект, полученный в результате преобразования из тектста или null, если в параметре text содержался null.