private void VisitEmpty(empty_statement stmt) { }
internal statement_node convert_strong(SyntaxTree.statement st) { #if (DEBUG) if (st == null) { throw new CompilerInternalError("This syntax tree node can not be null."); } #endif #region MikhailoMMX, обработка критических секций OpenMP bool isCritical = false; SyntaxTree.statement st_orig = st; if (OpenMP.LocksFound) if (DirectivesToNodesLinks.ContainsKey(st) && OpenMP.IsCriticalDirective(DirectivesToNodesLinks[st])) { //если перед узлом есть директива omp critical isCritical = true; OpenMP.TryConvertCritical(ref st, this, DirectivesToNodesLinks[st]); OpenMP.DisableDirective(st_orig, DirectivesToNodesLinks); } #endregion convertion_data_and_alghoritms.check_node_parser_error(st); //st = prepare_statement(st); statement_node sn = null; //try { sn = ret.visit(st); if (sn == null) sn = new empty_statement(null); } /*catch (PascalABCCompiler.Errors.Error e) { if (ThrowCompilationError) throw e; else { ErrorsList.Add(e); return new empty_statement(null); } } catch (Exception e) { if (ThrowCompilationError) throw e; else return new empty_statement(null); }*/ //sn.loc=get_location(st); #region MikhailoMMX, обработка критических секций OpenMP if (isCritical) OpenMP.EnableDirective(st_orig, DirectivesToNodesLinks); #endregion return sn; }