private void ExtractParameters(Cecil.MethodDefinition methoddef, IList <AnalysisNetTac.Values.IVariable> ourParameters) { if (!methoddef.IsStatic) { AnalysisNet.Types.IType type = typeExtractor.ExtractType(methoddef.DeclaringType); AnalysisNetTac.Values.LocalVariable v = new AnalysisNetTac.Values.LocalVariable("this", true) { Type = type }; ourParameters.Add(v); thisParameter = v; } foreach (Cecil.ParameterDefinition parameter in methoddef.Parameters) { AnalysisNet.Types.IType type = typeExtractor.ExtractType(parameter.ParameterType); AnalysisNetTac.Values.LocalVariable v = new AnalysisNetTac.Values.LocalVariable(parameter.Name, true) { Type = type }; ourParameters.Add(v); parameters.Add(parameter.Index, v); } }
private void ExtractLocalVariables(IEnumerable <Cecil.Cil.VariableDefinition> cciLocalVariables, IList <AnalysisNetTac.Values.IVariable> ourLocalVariables) { foreach (Cecil.Cil.VariableDefinition local in cciLocalVariables) { string name = GetLocalSourceName(local); AnalysisNet.Types.IType type = typeExtractor.ExtractType(local.VariableType); AnalysisNetTac.Values.LocalVariable v = new AnalysisNetTac.Values.LocalVariable(name) { Type = type }; ourLocalVariables.Add(v); locals.Add(local.Index, v); } }