Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Создание контекста
 /// </summary>
 /// <param name="sourceCodeDispatcher">Диспатчер для чтения/записи</param>
 public Context(ISourceCodeDispatcher sourceCodeDispatcher)
 {
     SourceCodeDispatcher = sourceCodeDispatcher;
     LineNumber           = 1;
     ErrorNumber          = 1;
     SymbolTable          = new SymbolTable();
     LocalScope           = new Scope();
 }