public CompiledFunction(string name, CFunctionType functionType) { Name = name; FunctionType = functionType; LocalVariables = new List <VariableDeclaration> (); Instructions = new List <Instruction> (); }
public FunctionDeclaration(string name, CFunctionType functionType) { Name = name; FunctionType = functionType; ParameterInfos = new List <ParameterInfo>(); foreach (var pt in FunctionType.Parameters) { ParameterInfos.Add(new ParameterInfo("")); } }
private CType MakeCFunctionType(CType type, Declarator decl) { var fdecl = (FunctionDeclarator)decl; var name = decl.DeclaredIdentifier; var returnType = type; var ftype = new CFunctionType(returnType); foreach (var pdecl in fdecl.Parameters) { var pt = MakeCType(pdecl.DeclarationSpecifiers, pdecl.Declarator); if (!pt.IsVoid) { ftype.Parameters.Add(new CFunctionType.Parameter(pdecl.Name, pt)); } } type = ftype; type = MakeCType(type, fdecl.InnerDeclarator); return(type); }