Package com._1c.g5.modeling.text
Class AbstractAntlrDelegatingTextParser
- java.lang.Object
-
- com._1c.g5.modeling.text.AbstractAntlrDelegatingTextParser
-
- All Implemented Interfaces:
ITextParser
public abstract class AbstractAntlrDelegatingTextParser extends Object implements ITextParser
Базовая реализация интерфейсаITextParser
, делегирующая работу парсеру построенному с помощью ANTLR 3.1- See Also:
AbstractAntlrParserDelegate
-
-
Constructor Summary
Constructors Constructor Description AbstractAntlrDelegatingTextParser(org.eclipse.emf.common.util.URI uri, InputStream inputStream, IDiagnosticReporter reporter)
Конструктор.
-
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 interfaceITextParser
- Throws:
IOException
-
getModel
public org.eclipse.emf.ecore.EObject getModel()
Description copied from interface:ITextParser
Получение EMF-представления модели, ранее созданного методомITextParser.parse()
.- Specified by:
getModel
in interfaceITextParser
- Returns:
- EMF-представление модели
-
getRootNode
public INode getRootNode()
Description copied from interface:ITextParser
Получение корневого узла AST, ранее созданного методомITextParser.parse()
.- Specified by:
getRootNode
in interfaceITextParser
- 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
-
-
-