\treeconverter\treeconversion\syntax_tree_visitor.cs public override void visit(SyntaxTree.indexer _indexer) public override void visit ( SyntaxTree . indexer _indexer ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \treeconverter\treeconversion\syntax_tree_visitor.cs private void indexer_as_expression_index(expression_node expr, SyntaxTree.expression_list parameters, private void indexer_as_expression_index ( expression_node expr , SyntaxTree . expression_list parameters , motivation mot , location loc ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \TreeConverter\TreeConversion\syntax_tree_visitor.cs public override void visit(SyntaxTree.semantic_expr_node sen) public override void visit ( SyntaxTree . semantic_addr_value sav ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \treeconverter\treeconversion\syntax_tree_visitor.cs var fh = (_procedure_definition.proc_header as SyntaxTree.function_header); public override void visit ( SyntaxTree . procedure_definition _procedure_definition ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \treeconverter\treeconversion\syntax_tree_visitor.cs public override void visit(SyntaxTree.assign_tuple _modern_proc_type) public override void visit ( SyntaxTree . assign_tuple asstup ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \treeconverter\treeconversion\syntax_tree_visitor.cs if (t.FullName.StartsWith("System.Tuple")) private void indexer_as_expression_index ( expression_node expr , SyntaxTree . expression_list parameters , motivation mot , location loc ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \treeconverter\treeconversion\syntax_tree_visitor.cs public override void visit(SyntaxTree.enum_type_definition _enum_type_definition) public override void visit ( SyntaxTree . enum_type_definition _enum_type_definition ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \TreeConverter\TreeConversion\syntax_tree_visitor.cs if (!is_enum) public override void visit ( SyntaxTree . enum_type_definition _enum_type_definition ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \TreeConverter\TreeConversion\syntax_tree_visitor.cs public override void visit(SyntaxTree.modern_proc_type _modern_proc_type) public override void visit ( SyntaxTree . modern_proc_type _modern_proc_type ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \treeconverter\symboltable\dsst\symboltable.cs int tn=HashTable.Find(Name); //найдем имя в хеше private SymbolInfo FindAll ( Scope scope , string Name , bool OnlyInType , bool OnlyInThisClass , Scope FromScope ) public class DSSymbolTable namespace SymbolTable \TreeConverter\TreeConversion\syntax_tree_visitor.cs public override void visit(SyntaxTree.modern_proc_type _modern_proc_type) public override void visit ( SyntaxTree . modern_proc_type _modern_proc_type ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \TreeConverter\TreeConversion\syntax_tree_visitor.cs public override void visit(SyntaxTree.foreach_stmt _foreach_stmt) public override void visit ( SyntaxTree . foreach_stmt _foreach_stmt ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \TreeConverter\TreeConversion\syntax_tree_visitor.cs public bool FindIEnumerableElementType(SyntaxTree.foreach_stmt _foreach_stmt, type_node tn, ref type_node elem_type) public bool FindIEnumerableElementType ( type_node tn , ref type_node elem_type ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \TreeConverter\TreeConversion\syntax_tree_visitor.cs if (tn is compiled_type_node || tn is compiled_generic_instance_type_node) // Если этот тип зашит в .NET public bool FindIEnumerableElementType ( type_node tn , ref type_node elem_type ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \treeconverter\lambdaexpressions\lambdaresulttypeinferrer.cs private type_node GetMostCommonType(int kind = 0) private type_node GetMostCommonType ( int kind = 0 ) internal class LambdaResultTypeInferrer : WalkingVisitorNew namespace TreeConverter . LambdaExpressions \treeconverter\treeconversion\syntax_tree_visitor.cs // SSM 20.07.13 если это - узел с коротким определением функции без типа возвращаемого значения, то вывести этот тип public override void visit ( SyntaxTree . procedure_definition _procedure_definition ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \SyntaxTree\tree\TreeHelper.cs public object RealSemTypeOfResExpr = null; // Result := ex; - семантический тип ex - нужно для лучщего выбора среди перегруженных методов с параметрами-лямбдами public object RealSemTypeOfResExpr = null public partial class function_lambda_definition namespace PascalABCCompiler . SyntaxTree \codecompletion\expressionvisitor.cs public override void visit ( assign _assign ) public class ExpressionVisitor : PascalABCCompiler . SyntaxTree . AbstractVisitor namespace CodeCompletion \treeconverter\treeconversion\lambdahelper.cs public class ResultNodesSearcher : SyntaxTree.WalkingVisitorNew public class ResultNodesSearcher : SyntaxTree . WalkingVisitorNew public class LambdaHelper namespace PascalABCCompiler . TreeConverter public List < expression > exprList = new List < expression > ( ) public ResultNodesSearcher ( syntax_tree_node root ) public override void visit ( assign value ) \TreeConverter\LambdaExpressions\LambdaResultTypeInferrer.cs internal class LambdaResultTypeInferrer : WalkingVisitorNew internal class LambdaResultTypeInferrer : WalkingVisitorNew namespace TreeConverter . LambdaExpressions private const string RESULT_KEY_WORD = private readonly List < Tuple < type_node , expression , expression_node > > resultExpressionsTypes private readonly syntax_tree_visitor syntaxTreeVisitor private readonly proc_block lambdaBody private readonly function_header lambdaHeader public LambdaResultTypeInferrer ( function_header lambdaHeader , proc_block lambdaBody , syntax_tree_visitor syntaxTreeVisitor ) private type_node GetMostCommonType ( ) public type_node InferResultType ( ) public override void visit ( statement_list stmtList ) public override void visit ( var_def_statement varStmt ) \treeconverter\treeconversion\lambdahelper.cs retType.real_type = new LambdaResultTypeInferrer(funcHeader, procBody, visitor).InferResultType(); public static void InferResultType ( function_header funcHeader , proc_block procBody , syntax_tree_visitor visitor ) public class LambdaHelper namespace PascalABCCompiler . TreeConverter \treeconverter\treeconversion\syntax_tree_visitor.cs visit_lambda_header(_procedure_definition.proc_header as SyntaxTree.function_header, _procedure_definition.proc_body); public override void visit ( SyntaxTree . procedure_definition _procedure_definition ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \treeconverter\treeconversion\syntax_tree_visitor.cs hard_node_test_and_visit(_procedure_definition.proc_body); public override void visit ( SyntaxTree . procedure_definition _procedure_definition ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \treeconverter\treeconversion\syntax_tree_visitor.cs hard_node_test_and_visit(_procedure_definition.proc_header); public override void visit ( SyntaxTree . procedure_definition _procedure_definition ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \treeconverter\treeconversion\syntax_tree_visitor.cs if (context.top_function.return_value_type == null) public override void visit ( SyntaxTree . function_header _function_header ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \TreeConverter\TreeConversion\syntax_tree_visitor.cs if (context.top_function.return_value_type == null) public override void visit ( SyntaxTree . function_header _function_header ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \treeconverter\treeconversion\syntax_tree_visitor.cs public override void visit(SyntaxTree.question_colon_expression node) public override void visit ( SyntaxTree . question_colon_expression node ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \treeconverter\treeconversion\syntax_tree_visitor.cs private void dot_node_as_expression_dot_ident(expression_node en, SyntaxTree.ident id_right, motivation mot, addressed_value syntax_node) private void dot_node_as_expression_dot_ident ( expression_node en , SyntaxTree . ident id_right , motivation mot , addressed_value syntax_node ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \treeconverter\treeconversion\syntax_tree_visitor.cs public override void visit(SyntaxTree.indexer _indexer) public override void visit ( SyntaxTree . indexer _indexer ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \parsers\pascalabcparsernewsaushkin\semanticrules.cs public expression NewVariable(addressed_value variable, expression var_specifiers, LexLocation loc) public expression NewVariable ( addressed_value variable , expression var_specifiers , LexLocation loc ) public partial class GPPGParser namespace GPPGParserScanner \treeconverter\treeconversion\convertion_data_and_alghoritms.cs public function_node select_function(expressions_list parameters, SymbolInfo functions, location loc, List<SyntaxTree.expression> syntax_nodes_parameters = null) public function_node select_function ( expressions_list parameters , SymbolInfo functions , location loc , List < SyntaxTree . expression > syntax_nodes_parameters = null ) public class convertion_data_and_alghoritms namespace PascalABCCompiler . TreeConverter \TreeConverter\TreeConversion\syntax_tree_visitor.cs internal void visit_method_call(SyntaxTree.method_call _method_call) internal void visit_method_call ( SyntaxTree . method_call _method_call ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \treeconverter\treeconversion\convertion_data_and_alghoritms.cs function_node inst = generic_convertions.DeduceFunction(func, parameters, public function_node select_function ( expressions_list parameters , SymbolInfo functions , location loc , List < SyntaxTree . expression > syntax_nodes_parameters = null ) public class convertion_data_and_alghoritms namespace PascalABCCompiler . TreeConverter \treeconverter\treeconversion\syntax_tree_visitor.cs public override void visit(SyntaxTree.procedure_definition _procedure_definition) public override void visit ( SyntaxTree . procedure_definition _procedure_definition ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \treeconverter\treeconversion\syntax_tree_visitor.cs if (ttt is undefined_type) public override void visit ( SyntaxTree . procedure_definition _procedure_definition ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \TreeConverter\TreeConversion\syntax_tree_visitor.cs // SSM 12/04/16 - short func definitions - calc return_value_type public override void visit ( SyntaxTree . procedure_definition _procedure_definition ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \TreeConverter\TreeConversion\syntax_tree_visitor.cs public override void visit ( SyntaxTree . function_lambda_definition _function_lambda_definition ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \TreeConverter\TreeConversion\LambdaHelper.cs public static void InferTypesFromVarStmt(type_node leftType, function_lambda_definition lambdaDef, syntax_tree_visitor visitor) public static void InferTypesFromVarStmt ( type_node leftType , function_lambda_definition lambdaDef , syntax_tree_visitor visitor ) public class LambdaHelper namespace PascalABCCompiler . TreeConverter \TreeConverter\TreeConversion\syntax_tree_visitor.cs public override void visit(SyntaxTree.assign _assign) public override void visit ( SyntaxTree . assign _assign ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \TreeConverter\TreeConversion\syntax_tree_visitor.cs public override void visit(SyntaxTree.var_def_statement _var_def_statement) public override void visit ( SyntaxTree . var_def_statement _var_def_statement ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \TreeConverter\TreeConversion\syntax_tree_visitor.cs MaybeConvertFunctionLambdaDefinitionToProcedureLambdaDefinition(fld1); public override void visit ( SyntaxTree . assign _assign ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \TreeConverter\TreeConversion\syntax_tree_visitor.cs LambdaHelper.InferTypesFromVarStmt(tn, _var_def_statement.inital_value as SyntaxTree.function_lambda_definition, this); //lroman// public override void visit ( SyntaxTree . var_def_statement _var_def_statement ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \TreeConverter\TreeConversion\LambdaHelper.cs //throw new SimpleSemanticError(visitor.get_location(lambdaDef), "UNABLE_TO_CONVERT_FUNCTIONAL_TYPE_TO_PROCEDURAL_TYPE"); public static void InferTypesFromVarStmt ( type_node leftType , function_lambda_definition lambdaDef , syntax_tree_visitor visitor ) public class LambdaHelper namespace PascalABCCompiler . TreeConverter \TreeConverter\TreeConversion\syntax_tree_visitor.cs AddError(loc, "FUNCTION_EXPECTED_PROCEDURE_{0}_MEET", fn); private base_function_call create_not_static_method_call ( function_node fn , expression_node en , location loc , bool procedure_allowed ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \TreeConverter\TreeConversion\syntax_tree_visitor.cs private base_function_call create_not_static_method_call(function_node fn, expression_node en, location loc, bool procedure_allowed) private base_function_call create_not_static_method_call ( function_node fn , expression_node en , location loc , bool procedure_allowed ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \Compiler\Compiler.cs CurrentUnit.SyntaxTree = syntaxTreeConvertersController.Convert(CurrentUnit.SyntaxTree) as SyntaxTree.compilation_unit; public CompilationUnit CompileUnit ( PascalABCCompiler . TreeRealization . unit_node_list Units , SyntaxTree . unit_or_namespace SyntaxUsesUnit ) public class Compiler : MarshalByRefObject , ICompiler namespace PascalABCCompiler \Compiler\SemanticTreeConverters\SemanticTreeConvertersController.cs public class SemanticTreeConvertersController public class SemanticTreeConvertersController namespace PascalABCCompiler . SemanticTreeConverters public enum State ICompiler Compiler private List < ISemanticTreeConverter > semanticTreeConverters = new List < ISemanticTreeConverter > ( ) public List < ISemanticTreeConverter > SemanticTreeConverters public delegate void ChangeStateDelegate ( State State , ISemanticTreeConverter SemanticTreeConverter ) public event ChangeStateDelegate ChangeState public SemanticTreeConvertersController ( ICompiler Compiler ) public void AddConverters ( ) private void AddConverters ( string DirectoryName ) public SemanticTree . IProgramNode Convert ( SemanticTree . IProgramNode ProgramNode ) \Compiler\Compiler.cs public SyntaxTreeConvertersController SyntaxTreeConvertersController public SyntaxTreeConvertersController SyntaxTreeConvertersController public class Compiler : MarshalByRefObject , ICompiler namespace PascalABCCompiler \Compiler\SyntaxTreeConvertersController\SyntaxTreeConvertersController.cs foreach (ISyntaxTreeConverter SyntaxTreeConverter in syntaxTreeConverters) public syntax_tree_node Convert ( syntax_tree_node root , string FileName , List < Error > errorsList ) public class SyntaxTreeConvertersController namespace PascalABCCompiler . SyntaxTreeConverters \codecompletion\domconverter.cs if (pattern != null || pattern != "") public SymInfo [ ] GetTypeByPattern ( string pattern , int line , int col , bool all_names , int nest_level ) public class DomConverter namespace CodeCompletion \visualplugins\languageconverter\source\textformatter.cs _word.Replace(specSymbol, ""); public string FormatWordWithKeyWord ( string _word , object _node ) public class TextFormatter namespace Converter \visualpascalabcnet\formsdesignerbinding\dependecies\src\main\base\project\src\services\refactoringservice\refactoringservice.cs result.OrderBy(node => node.Content.FullyQualifiedName); static IEnumerable < ITreeNode < IClass > > FindDerivedClassesTree ( IClass baseClass , IEnumerable < IProjectContent > projectContents , HashSet < IClass > seenClasses ) public static class RefactoringService namespace ICSharpCode . SharpDevelop . Refactoring \treeconverter\treeconversion\syntax_tree_visitor.cs if (_pascal_set_constant.values != null && _pascal_set_constant.values != null) public override void visit ( SyntaxTree . pascal_set_constant _pascal_set_constant ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \visualpascalabcnet\workbench\runnermanagerhandlers.cs if (File.Exists(pdbFileName) && File.Exists(pdbFileName)) void WaitCallback_DeleteEXEAndPDB ( object state ) public partial class WorkbenchRunService : VisualPascalABCPlugins . IWorkbenchRunService namespace VisualPascalABC \visualpascalabcnet\formsdesignerbinding\dependecies\src\main\base\project\src\editor\codecompletion\nrefactoryinsightwindowhandler.cs Вот здесь то место, где не учитывается один вариант открывающих скобок Вместо одного из openBracketToken нужно написать openBracesToken if (token.Kind == openParensToken || token.Kind == openBracketToken || token.Kind == openBracketToken) { public void InitializeOpenedInsightWindow ( ITextEditor editor , IInsightWindow insightWindow ) public class NRefactoryInsightWindowHandler : IInsightWindowHandler namespace ICSharpCode . SharpDevelop . Editor . CodeCompletion \treeconverter\systemlib\static_executors.cs if (value >= int.MinValue && value <= int.MaxValue) private static int check_int_overflow ( location loc , int value ) public static class static_executors namespace PascalABCCompiler . SystemLibrary \treeconverter\systemlib\static_executors.cs if (value >= long.MinValue && value <= long.MaxValue) private static long check_long_overflow ( location loc , long value ) public static class static_executors namespace PascalABCCompiler . SystemLibrary \NETGenerator\NETGenerator.cs if (pos <= 255) il.Emit(OpCodes.Starg_S, pos); private void ConvertInc ( IExpressionNode e ) public class ILConverter : AbstractVisitor namespace PascalABCCompiler . NETGenerator \NETGenerator\NETGenerator.cs if (pos <= 255) il.Emit(OpCodes.Starg_S, pos); private void ConvertDec ( IExpressionNode e ) public class ILConverter : AbstractVisitor namespace PascalABCCompiler . NETGenerator \NETGenerator\NETGenerator.cs if (pos <= 255) il.Emit(OpCodes.Ldarga_S, pos); private void AddrOfParameterNode ( ICommonParameterReferenceNode value ) public class ILConverter : AbstractVisitor namespace PascalABCCompiler . NETGenerator \codecompletion\findreferences.cs Двумя строчками ниже (Здесь сказывается недостаток моего инструмента - если в методе есть две одинаковые строчки - переход осуществляется только на первую, а надо на вторую) if (ret_tn != null) public override void visit ( indexer _indexer ) public class ReferenceFinder : AbstractVisitor namespace CodeCompletion \parsertools\syntaxtreevisitors\syntaxtreecomparer.cs 597 и 631 строки в текущей версии else if (left is int64_const) public void CompareInternal ( expression left , expression right ) public class SyntaxTreeComparer namespace PascalABCCompiler . SyntaxTree \parsertools\syntaxtreevisitors\syntaxtreecomparer.cs 1599 1611 1615 строки else if (left is case_node) public void CompareInternal ( statement left , statement right ) public class SyntaxTreeComparer namespace PascalABCCompiler . SyntaxTree \TreeConverter\TreeConversion\syntax_tree_visitor.cs expression_node bfcint = make_read_call(si, _method_call.parameters, subloc2); internal void visit_method_call ( SyntaxTree . method_call _method_call ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \TreeConverter\TreeConversion\syntax_tree_visitor.cs private expression_node make_read_call ( SymbolInfo si , SyntaxTree . expression_list parameters , location loc ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \TreeConverter\TreeConversion\syntax_tree_visitor.cs Это - непонятное место из-за которого происходит ошибка readln_string_file = true; private expression_node make_read_call ( SymbolInfo si , SyntaxTree . expression_list parameters , location loc ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \TreeConverter\TreeConversion\syntax_tree_visitor.cs if (!readln_string_file) private expression_node make_read_call ( SymbolInfo si , SyntaxTree . expression_list parameters , location loc ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \treeconverter\treeconversion\syntax_tree_visitor.cs visit_program_code(_block.program_code); public override void visit ( SyntaxTree . block _block ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \treeconverter\treeconversion\syntax_tree_visitor.cs if (lab.is_defined) public override void visit ( SyntaxTree . labeled_statement _labeled_statement ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \SyntaxVisitors\YieldVisitors\ProcessYieldsCapturedVars.cs public override void visit(procedure_definition pd) public override void visit ( procedure_definition pd ) public class ProcessYieldCapturedVarsVisitor : BaseChangeVisitor namespace SyntaxVisitors \Yield\YieldConversionSyntax\YieldDesugarSyntaxTreeConverter.cs root.visit(new ProcessYieldCapturedVarsVisitor()); public syntax_tree_node Convert ( syntax_tree_node root ) public class YieldDesugarSyntaxTreeConverter : ISyntaxTreeConverter namespace YieldDesugarSyntaxTreeConverter \syntaxvisitors\yieldvisitors\processyieldscapturedvars.cs public ConstructFiniteAutomata1(block bl) public ConstructFiniteAutomata ( block bl ) class ConstructFiniteAutomata namespace SyntaxVisitors \syntaxvisitors\yieldvisitors\processyieldscapturedvars.cs type_declarations GenClassesForYield(procedure_definition pd, type_declarations GenClassesForYield ( procedure_definition pd , IEnumerable < var_def_statement > fields , IDictionary < string , string > localsMap , IDictionary < string , string > formalParamsMap ) public class ProcessYieldCapturedVarsVisitor : BaseChangeVisitor namespace SyntaxVisitors \TreeConverter\TreeConversion\syntax_tree_visitor.cs string Consts__Self = YieldHelpers.YieldConsts.Self; private bool CheckUnknownIdentNeedsClassCapture ( SyntaxTree . yield_unknown_ident _unk , out bool isStaticIdent ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \syntaxvisitors\yieldvisitors\processyieldscapturedvars.cs function_header nfh = ObjectCopier.Clone(fh); type_declarations GenClassesForYield ( procedure_definition pd , IEnumerable < var_def_statement > fields , IDictionary < string , string > localsMap , IDictionary < string , string > formalParamsMap ) public class ProcessYieldCapturedVarsVisitor : BaseChangeVisitor namespace SyntaxVisitors \treeconverter\treeconversion\syntax_tree_visitor.cs private Dictionary<Guid, semantic_type_node> _yieldForeachTypeMap = new Dictionary<Guid, semantic_type_node>(); private Dictionary < Guid , semantic_type_node > _yieldForeachTypeMap = new Dictionary < Guid , semantic_type_node > ( ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \syntaxvisitors\yieldvisitors\processyieldscapturedvars.cs //InsertHelperMethod(pd, pdCloned); // SSM 13.07.16 - вызов этого метода можно не добавлять private void CreateErrorCheckerHelper ( procedure_definition pd ) public class ProcessYieldCapturedVarsVisitor : BaseChangeVisitor namespace SyntaxVisitors \treeconverter\treeconversion\syntax_tree_visitor.cs public override void visit(SyntaxTree.yield_unknown_expression_type _unk_expr) public override void visit ( SyntaxTree . yield_unknown_expression_type _unk_expr ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \treeconverter\treeconversion\syntax_tree_visitor.cs public override void visit(SyntaxTree.assign _assign) public override void visit ( SyntaxTree . assign _assign ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \netgenerator\netgenerator.cs TypeInfo ti = helper.GetTypeReference(value.type); public override void visit ( SemanticTree . ICommonClassFieldNode value ) public class ILConverter : AbstractVisitor namespace PascalABCCompiler . NETGenerator \treeconverter\treeconversion\syntax_tree_visitor.cs public override void visit(SyntaxTree.yield_unknown_foreach_type _unk) public override void visit ( SyntaxTree . yield_unknown_foreach_type _unk ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \syntaxvisitors\yieldvisitors\loweringvisitor.cs stl.Add(new assign(currentIdent, new dot_node(enumeratorIdent, "Current"))); public override void visit ( foreach_stmt frch ) public class LoweringVisitor : BaseChangeVisitor namespace SyntaxVisitors \TreeConverter\TreeConversion\syntax_tree_visitor.cs public override void visit(SyntaxTree.assign _assign) public override void visit ( SyntaxTree . assign _assign ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \TreeConverter\TreeConversion\syntax_tree_visitor.cs else if (to.type is compiled_type_node) public override void visit ( SyntaxTree . assign _assign ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \TreeConverter\TreeConversion\syntax_tree_visitor.cs public bool FindIEnumerableElementType ( type_node tn , ref type_node elem_type ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \TreeConverter\TreeRealization\generics.cs generic_convertions.all_type_instances.Add(instance); public static void init_generic_instance ( type_node original , generic_instance_type_node instance , List < type_node > param_types ) public static class generic_convertions namespace PascalABCCompiler . TreeRealization \TreeConverter\TreeRealization\generics.cs if (shouldAddToAllTypeInstances) //lroman// Если зашли сюда при выведении типов параметров лямбды, то тип инстанцироваться может с типом lambda_any_type_node. Поэтому, если выводим типы. То данную инстанцию не добавляем public static void init_generic_instance ( type_node original , generic_instance_type_node instance , List < type_node > param_types ) public static class generic_convertions namespace PascalABCCompiler . TreeRealization \syntaxvisitors\yieldvisitors\processyieldscapturedvars.cs class ConstructFiniteAutomata namespace SyntaxVisitors public statement_list res = new statement_list ( ) statement_list stl int curState = 0 statement_list curStatList statement_list StatListAfterCase = new statement_list ( ) case_node cas private labeled_statement OuterLabeledStatement private Dictionary < int , labeled_statement > Dispatches = new Dictionary < int , labeled_statement > ( ) public ConstructFiniteAutomata ( statement_list stl ) private void AddState ( out int stateNumber , out ident resumeLabel ) \syntaxvisitors\yieldvisitors\processyieldscapturedvars.cs ReplaceCapturedVariables(pd, dld.LocalDeletedDefs, out CapturedLocalsNamesMap, out CapturedFormalParamsNamesMap); public override void visit ( procedure_definition pd ) public class ProcessYieldCapturedVarsVisitor : BaseChangeVisitor namespace SyntaxVisitors \syntaxvisitors\yieldvisitors\processyieldscapturedvars.cs var pdCloned = ObjectCopier.Clone(pd); private void CreateLocalVariablesTypeProxies ( procedure_definition pd , out IEnumerable < var_def_statement > localsClonesCollection ) public class ProcessYieldCapturedVarsVisitor : BaseChangeVisitor namespace SyntaxVisitors \syntaxvisitors\YieldVisitors\MarkMethodHasYieldVisitor.cs if (pd.has_yield) // SSM bug fix #219 public override void visit ( procedure_definition pd ) public class MarkMethodHasYieldAndCheckSomeErrorsVisitor : WalkingVisitorNew namespace SyntaxVisitors \TreeConverter\TreeConversion\convertion_data_and_alghoritms.cs return AddError<function_node>(new SeveralFunctionsCanBeCalled(loc,set_of_possible_functions)); public function_node select_function ( expressions_list parameters , SymbolInfo functions , location loc , List < SyntaxTree . expression > syntax_nodes_parameters = null ) public class convertion_data_and_alghoritms namespace PascalABCCompiler . TreeConverter \TreeConverter\TreeConversion\convertion_data_and_alghoritms.cs if (funcs.Count == 2) public function_node select_function ( expressions_list parameters , SymbolInfo functions , location loc , List < SyntaxTree . expression > syntax_nodes_parameters = null ) public class convertion_data_and_alghoritms namespace PascalABCCompiler . TreeConverter \TreeConverter\TreeConversion\syntax_tree_visitor.cs internal void visit_method_call(SyntaxTree.method_call _method_call) internal void visit_method_call ( SyntaxTree . method_call _method_call ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \TreeConverter\TreeConversion\syntax_tree_visitor.cs public override void visit(SyntaxTree.foreach_stmt _foreach_stmt) public override void visit ( SyntaxTree . foreach_stmt _foreach_stmt ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter \TreeConverter\TreeConversion\syntax_tree_visitor.cs public override void visit(SyntaxTree.semantic_type_node stn) public override void visit ( SyntaxTree . semantic_type_node stn ) public class syntax_tree_visitor : SyntaxTree . AbstractVisitor namespace PascalABCCompiler . TreeConverter