示例#1
0
 public CompiledFunction(string name, CFunctionType functionType)
 {
     Name           = name;
     FunctionType   = functionType;
     LocalVariables = new List <VariableDeclaration> ();
     Instructions   = new List <Instruction> ();
 }
示例#2
0
 public FunctionDeclaration(string name, CFunctionType functionType)
 {
     Name           = name;
     FunctionType   = functionType;
     ParameterInfos = new List <ParameterInfo>();
     foreach (var pt in FunctionType.Parameters)
     {
         ParameterInfos.Add(new ParameterInfo(""));
     }
 }
示例#3
0
        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);
        }