예제 #1
0
 public FieldProperty(Field field)
     : base(field)
 {
     _field = field;
 }
예제 #2
0
 public Function(Field field)
 {
     _cc = field.CC;
     _id = field.Id;
     _name = field.Name;
     _access = "public";
     _context = field.ContextId;
     if(field.Attr.Get != null)
         _returnId = field.TypeId;
     else
         _returnId = CC.Types.VoidTypeId;
     _file = field.File;
     _line = field.Line;
     _memberFunc = true;
     _artificial = false;
     _attr = field.Attr;
     if(_attr.Get != null || _attr.Set != null)
     {
         if(_context != null)
             CC.ContextMap[_context].GenStructors = true;
     }
     _static = false;
     _head = field.Args;
 }
예제 #3
0
        public void process()
        {
            _types.Add (new UnknownType ());
            while(reader_.Read())
            {
                if(reader_.NodeType == XmlNodeType.Element)
                {
                    switch(reader_.Name)
                    {
                    case "Namespace":			addContext(reader_.Name); break;
                    case "Class":				addContext(reader_.Name); break;
                    case "Struct":				addContext(reader_.Name); break;
                    case "Union":				addContext(reader_.Name); break;

                    case "Constructor":			addMethod(reader_.Name); break;
                    case "Destructor":			addMethod(reader_.Name); break;
                    case "Method":				addMethod(reader_.Name); break;
                    case "OperatorFunction":	addMethod(reader_.Name); break;
                    case "OperatorMethod":		addMethod(reader_.Name); break;
                    case "Function":			addMethod(reader_.Name); break;

                    case "Argument":			addArguement(); break;

                    case "Field":				Field f = new Field(reader_, this); ContextMap[f.ContextId].Fields.Add(f); break;

                    case "Unimplemented":		_types.Add(new Unimplemented(reader_)); break;
                    case "Typedef":				_types.Add (new Typedef(reader_)); break;
                    case "FundamentalType":		_types.Add (new FundamentalType(reader_)); break;
                    case "PointerType": 		_types.Add (new PointerType(reader_)); break;
                    case "ReferenceType": 		_types.Add (new ReferenceType(reader_)); break;
                    case "CvQualifiedType":		_types.Add (new CvQualifiedType(reader_)); break;
                    case "FunctionType":
                    {
                        FunctionType ftype = new FunctionType(reader_);
                        _types.Add (ftype);
                        lastFunction_ = ftype;
                        break;
                    }

                    case "File":
                    {
                        FileMap.Add(reader_["id"], reader_["name"]);
                        FileInfo info = new FileInfo(reader_, OutDir);
                        Files.Add(info.Id, info);
                        break;
                    }

                    case "EnumValue":			_lastEnum.addValue(new Enumeration.Value(reader_)); break;
                    case "Enumeration":			addEnumeration(); break;

            //					default:	Console.WriteLine ("could not parse \"" + reader_.Name + "\""); break;
                    }
                }
            } // while
            postProcess();
        }