| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- // Filename: cppFunctionType.h
- // Created by: drose (21Oct99)
- //
- ////////////////////////////////////////////////////////////////////
- //
- // PANDA 3D SOFTWARE
- // Copyright (c) 2001 - 2004, Disney Enterprises, Inc. All rights reserved
- //
- // All use of this software is subject to the terms of the Panda 3d
- // Software license. You should have received a copy of this license
- // along with this source code; you will also find a current copy of
- // the license at http://etc.cmu.edu/panda3d/docs/license/ .
- //
- // To contact the maintainers of this program write to
- // [email protected] .
- //
- ////////////////////////////////////////////////////////////////////
- #ifndef CPPFUNCTIONTYPE_H
- #define CPPFUNCTIONTYPE_H
- #include "dtoolbase.h"
- #include "cppType.h"
- class CPPParameterList;
- class CPPIdentifier;
- ///////////////////////////////////////////////////////////////////
- // Class : CPPFunctionType
- // Description :
- ////////////////////////////////////////////////////////////////////
- class CPPFunctionType : public CPPType {
- public:
- enum Flags {
- F_const_method = 0x01,
- F_operator_typecast = 0x02,
- F_constructor = 0x04,
- F_destructor = 0x08,
- F_method_pointer = 0x10,
- F_unary_op = 0x20,
- };
- CPPFunctionType(CPPType *return_type, CPPParameterList *parameters,
- int flags);
- CPPFunctionType(const CPPFunctionType ©);
- void operator = (const CPPFunctionType ©);
- CPPType *_return_type;
- CPPParameterList *_parameters;
- int _flags;
- virtual bool is_fully_specified() const;
- virtual CPPDeclaration *substitute_decl(SubstDecl &subst,
- CPPScope *current_scope,
- CPPScope *global_scope);
- virtual CPPType *resolve_type(CPPScope *current_scope,
- CPPScope *global_scope);
- virtual bool is_tbd() const;
- virtual void output(ostream &out, int indent_level, CPPScope *scope,
- bool complete) const;
- void output(ostream &out, int indent_level, CPPScope *scope,
- bool complete, int num_default_parameters) const;
- virtual void output_instance(ostream &out, int indent_level,
- CPPScope *scope,
- bool complete, const string &prename,
- const string &name) const;
- void output_instance(ostream &out, int indent_level,
- CPPScope *scope,
- bool complete, const string &prename,
- const string &name,
- int num_default_parameters) const;
- int get_num_default_parameters() const;
- virtual SubType get_subtype() const;
- virtual CPPFunctionType *as_function_type();
- bool is_equivalent_function(const CPPFunctionType &other) const;
- CPPIdentifier *_class_owner;
- protected:
- virtual bool is_equal(const CPPDeclaration *other) const;
- virtual bool is_less(const CPPDeclaration *other) const;
- };
- #endif
|