Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
            }
        }