Package com._1c.g5.modeling.text
Class AbstractAntlrParserDelegate
- java.lang.Object
-
- org.antlr.runtime.BaseRecognizer
-
- org.antlr.runtime.Parser
-
- com._1c.g5.modeling.text.AbstractAntlrParserDelegate
-
public abstract class AbstractAntlrParserDelegate extends org.antlr.runtime.ParserАбстрактный класс, используемый в качестве базового, для конкретных парсеров, сгенерированных ANTLR 3.1 по грамматике.
-
-
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 INodeadaptNode(org.eclipse.emf.ecore.EObject eObject, INode node)Сервисный метод, установливающий связь между объектом модели и узлом AST.
Для этого узлу AST назначается объект модели {@see INode#setModelObject(EObject)}, с помощьюNodeAdapterобъекту модели ставится в соответствие соответсвующий узел AST.protected INodeadaptNode(org.eclipse.emf.ecore.EObject eObject, org.eclipse.emf.ecore.EStructuralFeature eFeature, INode node)Сервисный метод, устанавливающий связь между single-valued свойством объекта модели и узлом AST.
Для установления такой связи используется толькоNodeAdapterprotected INodeadaptNodeToList(org.eclipse.emf.ecore.EObject eObject, org.eclipse.emf.ecore.EStructuralFeature eFeature, INode node)Метод устанавливает связь между отдельным значением many-valued свойства объекта модели и узлом AST.protected voidaddAttributeValue(org.eclipse.emf.ecore.EObject eObject, org.eclipse.emf.ecore.EAttribute eAttribute, String text)Добавление к списку значений many-valued атрибута значения, полученного из текстового представления.
Для преобразования текстового представления в объект, который может быть значением атрибута используется функцияcreateAttributeValue(EObject, EAttribute, String)protected INodeaddNewNode(INode parent, org.antlr.runtime.Token tok)Данный метод предназначен для создания узла AST, соответствующего одиночному токену и добавления созданного узла к родительскому.protected INodeaddNewNode(INode parent, org.antlr.runtime.Token tok, org.eclipse.emf.ecore.EObject eObject)Данный метод предназначен для создания узла AST, соответствующего одиночному токену, добавления созданного узла к родительскому и установки связи между созданным узлом AST и объектом модели.protected INodeaddNode(INode parent, INode node)Сервисный метод, предназеначенный для добавления дочернего узла к родительскому.protected ObjectcreateAttributeValue(org.eclipse.emf.ecore.EObject eObject, org.eclipse.emf.ecore.EAttribute eAttribute, String text)Получение из текстового представления значения, которое можно присвоить атрибуту объекта модели.
Для получения значения из текстового представления данная функция обращается кcreateFromString(EDataType, String).
При необходимости данная функция может быть переопределена в унаследованном классе.protected ObjectcreateFromString(org.eclipse.emf.ecore.EDataType eDataType, String text)Получение из текстового представления значения, соответствующего заданному типу данных модели.
Данная функция может быть переопределена в унаследованном классе, если для какого-либо типа данных требуется специфическое преобразование из текста.protected INodecreateNodeObject(int type, TextLocation location)protected ObjectgetMissingSymbol(org.antlr.runtime.IntStream input, org.antlr.runtime.RecognitionException e, int expectedTokenType, org.antlr.runtime.BitSet follow)protected INodenewNode(int type)Данный метод предназначен для создания узла AST, соответствующего синтаксическому правилу.protected INodenewNode(int type, org.eclipse.emf.ecore.EObject eObject)Данный метод предназначен для создания узла AST, соответствующего синтаксическому правилу.protected INodenewNode(org.antlr.runtime.Token tok)Данный метод предназначен для создания узла AST, соответствующего одиночному токену.
Для создаваемогоINodeиз токена берется значение свойстваtypeи вычисляетсяtextLocationprotected INodenewNode(org.antlr.runtime.Token tok, org.eclipse.emf.ecore.EObject eObject)Данный метод предназначен для создания узла AST, соответствующего одиночному токену.voidreportError(org.antlr.runtime.RecognitionException e)protected voidsetAttributeValue(org.eclipse.emf.ecore.EObject eObject, org.eclipse.emf.ecore.EAttribute eAttribute, String text)Присваивание single-valued атрибуту объекта модели значения, полученного из текстового представления.
Для преобразования текстового представления в объект, который может быть значением атрибута используется функцияcreateAttributeValue(EObject, EAttribute, String)voidsetDiagnosticReporter(IDiagnosticReporter reporter)Установка репортераIDiagnosticReporter, через который будет производиться сбор диагностикиvoidsetUri(org.eclipse.emf.common.util.URI uri)УстановкаURIEMF-ресурса, содержащего текстовое представление модели-
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
-
-
-
-
Method Detail
-
setDiagnosticReporter
public void setDiagnosticReporter(IDiagnosticReporter reporter)
Установка репортераIDiagnosticReporter, через который будет производиться сбор диагностики- Parameters:
reporter- репортер
-
setUri
public void setUri(org.eclipse.emf.common.util.URI uri)
УстановкаURIEMF-ресурса, содержащего текстовое представление модели- Parameters:
uri-URIEMF-ресурса
-
reportError
public void reportError(org.antlr.runtime.RecognitionException e)
- Overrides:
reportErrorin classorg.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:
getMissingSymbolin classorg.antlr.runtime.Parser
-
createNodeObject
protected INode createNodeObject(int type, TextLocation location)
Функция создает объект-узел AST, реализующий интерфейсINode.
Данная функция может быть переопределена в классе-наследнике, если требуется, чтобы в качестве реализацииINodeиспользовались объекты типа, отличного отNode- Parameters:
type- тип узла ASTlocation- расположение в тексте, соответствующее узлу ASTeObject- объект модели, ассоциированный с узлом 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- родительский узел ASTtok- токен- 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- родительский узел ASTtok- токен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.
-
-