private readonly SyntacticalAnalyzerModule _syntacticalAnalyzerModule; //Синтаксический модуль /// <summary> /// Создание анализатора кода для языка Pascal /// </summary> /// <param name="sourceCodeDispatcher">Диспатчер для чтения и записи</param> public Compiler(ISourceCodeDispatcher sourceCodeDispatcher) { _context = new Context(sourceCodeDispatcher); _sourceCodeDispatcher = sourceCodeDispatcher; _ioModule = new IoModule(_context); _lexicalAnalyzerModule = new LexicalAnalyzerModule(_context, _ioModule); _syntacticalAnalyzerModule = new SyntacticalAnalyzerModule(_context, _lexicalAnalyzerModule); }
/// <summary> /// Создание контекста /// </summary> /// <param name="sourceCodeDispatcher">Диспатчер для чтения/записи</param> public Context(ISourceCodeDispatcher sourceCodeDispatcher) { SourceCodeDispatcher = sourceCodeDispatcher; LineNumber = 1; ErrorNumber = 1; SymbolTable = new SymbolTable(); LocalScope = new Scope(); }