CACAO
Public Member Functions | Private Types | Private Member Functions | Private Attributes
DescriptorParser Struct Reference

Public Member Functions

 DescriptorParser (DescriptorPool *pool, Utf8String desc)
 
bool check_field_descriptor ()
 
bool check_param_descriptor (Type &dst)
 
bool check_return_descriptor ()
 
bool parse_field_descriptor (typedesc *dst)
 
bool parse_param_descriptor (typedesc *dst)
 
bool parse_return_descriptor (typedesc *dst)
 
bool start_param_list ()
 
bool has_more_params ()
 

Private Types

enum  ParserFlag { FORBID_VOID_TYPE, EXPECT_END_OF_INPUT }
 
enum  ParseResult { PARSE_ERROR, PRIMITIVE_TYPE, REFERENCE_TYPE }
 

Private Member Functions

template<int flags>
bool check_type (const char *descriptor_type, Type &t)
 
template<int flags>
bool parse_type (const char *descriptor_type, typedesc *t)
 
template<int flags>
ParseResult parse_type (Type &t, PrimitiveType &p, Utf8String &classname, size_t &arraydim)
 
bool parse_classname (Utf8String &classname)
 
bool parse_arraytype (Utf8String &classname, size_t &arraydim)
 
bool skip_classname ()
 
bool read (char &)
 
void unread ()
 
bool has_more_input () const
 
bool throw_error (const char *reason,...)
 throws a classformat error and returns false More...
 

Private Attributes

DescriptorPool *const pool
 
const char * descriptor_type
 
const char * pos
 
const char * end
 

Detailed Description

Definition at line 78 of file descriptor.cpp.

Member Enumeration Documentation

Enumerator
PARSE_ERROR 
PRIMITIVE_TYPE 
REFERENCE_TYPE 

Definition at line 114 of file descriptor.cpp.

Enumerator
FORBID_VOID_TYPE 
EXPECT_END_OF_INPUT 

Definition at line 109 of file descriptor.cpp.

Constructor & Destructor Documentation

DescriptorParser::DescriptorParser ( DescriptorPool pool,
Utf8String  desc 
)
inline

Definition at line 149 of file descriptor.cpp.

Member Function Documentation

bool DescriptorParser::check_field_descriptor ( )
inline

Definition at line 152 of file descriptor.cpp.

bool DescriptorParser::check_param_descriptor ( Type dst)
inline

Definition at line 157 of file descriptor.cpp.

bool DescriptorParser::check_return_descriptor ( )
inline

Definition at line 160 of file descriptor.cpp.

template<int flags>
bool DescriptorParser::check_type ( const char *  descriptor_type,
Type t 
)
inlineprivate

Definition at line 206 of file descriptor.cpp.

bool DescriptorParser::has_more_input ( ) const
inlineprivate

Definition at line 201 of file descriptor.cpp.

bool DescriptorParser::has_more_params ( )
inline

Definition at line 190 of file descriptor.cpp.

bool DescriptorParser::parse_arraytype ( Utf8String classname,
size_t &  arraydim 
)
inlineprivate

Definition at line 374 of file descriptor.cpp.

bool DescriptorParser::parse_classname ( Utf8String classname)
inlineprivate

Definition at line 353 of file descriptor.cpp.

bool DescriptorParser::parse_field_descriptor ( typedesc dst)
inline

Definition at line 166 of file descriptor.cpp.

bool DescriptorParser::parse_param_descriptor ( typedesc dst)
inline

Definition at line 169 of file descriptor.cpp.

bool DescriptorParser::parse_return_descriptor ( typedesc dst)
inline

Definition at line 172 of file descriptor.cpp.

template<int flags>
bool DescriptorParser::parse_type ( const char *  descriptor_type,
typedesc t 
)
inlineprivate

Definition at line 231 of file descriptor.cpp.

template<int flags>
DescriptorParser::ParseResult DescriptorParser::parse_type ( Type t,
PrimitiveType p,
Utf8String classname,
size_t &  arraydim 
)
inlineprivate

Definition at line 261 of file descriptor.cpp.

bool DescriptorParser::read ( char &  c)
inlineprivate

Definition at line 442 of file descriptor.cpp.

bool DescriptorParser::skip_classname ( )
inlineprivate

Definition at line 428 of file descriptor.cpp.

bool DescriptorParser::start_param_list ( )
inline

Definition at line 176 of file descriptor.cpp.

bool DescriptorParser::throw_error ( const char *  reason,
  ... 
)
inlineprivate

throws a classformat error and returns false

Definition at line 454 of file descriptor.cpp.

void DescriptorParser::unread ( )
inlineprivate

Definition at line 450 of file descriptor.cpp.

Field Documentation

const char* DescriptorParser::descriptor_type
private

Definition at line 145 of file descriptor.cpp.

const char * DescriptorParser::end
private

Definition at line 146 of file descriptor.cpp.

DescriptorPool* const DescriptorParser::pool
private

Definition at line 144 of file descriptor.cpp.

const char* DescriptorParser::pos
private

Definition at line 146 of file descriptor.cpp.


The documentation for this struct was generated from the following file: