Assimp  v3.1.1 (June 2014)
OpenDDLParser Class Reference

This is the main API for the OpenDDL-parser. More...

Public Types

typedef void(* logCallback) (LogSeverity severity, const std::string &msg)
 The log callback function pointer. More...
 

Public Member Functions

void clear ()
 Clears all parser data, including buffer and active context. More...
 
bool exportContext (Context *ctx, const std::string &filename)
 
const char * getBuffer () const
 Returns the buffer pointer. More...
 
size_t getBufferSize () const
 Returns the size of the buffer. More...
 
ContextgetContext () const
 Returns the parser context, only available in case of a succeeded parsing. More...
 
logCallback getLogCallback () const
 Getter for the log callback. More...
 
DDLNodegetRoot () const
 Returns the root node. More...
 
 OpenDDLParser ()
 The default class constructor. More...
 
 OpenDDLParser (const char *buffer, size_t len)
 The class constructor. More...
 
bool parse ()
 Starts the parsing of the OpenDDL-file. More...
 
char * parseHeader (char *in, char *end)
 
char * parseNextNode (char *current, char *end)
 
char * parseStructure (char *in, char *end)
 
char * parseStructureBody (char *in, char *end, bool &error)
 
DDLNodepopNode ()
 
void pushNode (DDLNode *node)
 
void setBuffer (const char *buffer, size_t len)
 Assigns a new buffer to parse. More...
 
void setBuffer (const std::vector< char > &buffer)
 Assigns a new buffer to parse. More...
 
void setLogCallback (logCallback callback)
 Setter for an own log callback function. More...
 
DDLNodetop ()
 
 ~OpenDDLParser ()
 The class destructor. More...
 

Static Public Member Functions

static const char * getVersion ()
 
static void normalizeBuffer (std::vector< char > &buffer)
 
static char * parseBooleanLiteral (char *in, char *end, Value **boolean)
 
static char * parseDataArrayList (char *in, char *end, Value::ValueType type, DataArrayList **dataList)
 
static char * parseDataList (char *in, char *end, Value::ValueType type, Value **data, size_t &numValues, Reference **refs, size_t &numRefs)
 
static char * parseFloatingLiteral (char *in, char *end, Value **floating, Value::ValueType floatType=Value::ddl_float)
 
static char * parseHexaLiteral (char *in, char *end, Value **data)
 
static char * parseIdentifier (char *in, char *end, Text **id)
 
static char * parseIntegerLiteral (char *in, char *end, Value **integer, Value::ValueType integerType=Value::ddl_int32)
 
static char * parseName (char *in, char *end, Name **name)
 
static char * parsePrimitiveDataType (char *in, char *end, Value::ValueType &type, size_t &len)
 
static char * parseProperty (char *in, char *end, Property **prop)
 
static char * parseReference (char *in, char *end, std::vector< Name *> &names)
 
static char * parseStringLiteral (char *in, char *end, Value **stringData)
 

Detailed Description

This is the main API for the OpenDDL-parser.

Use instances of this class to manage the parsing and handling of your parser contexts.

Member Typedef Documentation

§ logCallback

typedef void( * OpenDDLParser::logCallback) (LogSeverity severity, const std::string &msg)

The log callback function pointer.

Constructor & Destructor Documentation

§ OpenDDLParser() [1/2]

OpenDDLParser::OpenDDLParser ( )

The default class constructor.

§ OpenDDLParser() [2/2]

OpenDDLParser::OpenDDLParser ( const char *  buffer,
size_t  len 
)

The class constructor.

Parameters
buffer[in] The buffer
len[in] Size of the buffer

§ ~OpenDDLParser()

OpenDDLParser::~OpenDDLParser ( )

The class destructor.

Member Function Documentation

§ clear()

void OpenDDLParser::clear ( )

Clears all parser data, including buffer and active context.

§ exportContext()

bool OpenDDLParser::exportContext ( Context ctx,
const std::string &  filename 
)

§ getBuffer()

const char * OpenDDLParser::getBuffer ( ) const

Returns the buffer pointer.

Returns
The buffer pointer.

§ getBufferSize()

size_t OpenDDLParser::getBufferSize ( ) const

Returns the size of the buffer.

Returns
The buffer size.

§ getContext()

Context * OpenDDLParser::getContext ( ) const

Returns the parser context, only available in case of a succeeded parsing.

Returns
Pointer to the active context or ddl_nullptr.

§ getLogCallback()

OpenDDLParser::logCallback OpenDDLParser::getLogCallback ( ) const

Getter for the log callback.

Returns
The current log callback.

§ getRoot()

DDLNode * OpenDDLParser::getRoot ( ) const

Returns the root node.

Returns
The root node.

§ getVersion()

const char * OpenDDLParser::getVersion ( )
static

§ normalizeBuffer()

void OpenDDLParser::normalizeBuffer ( std::vector< char > &  buffer)
static

§ parse()

bool OpenDDLParser::parse ( )

Starts the parsing of the OpenDDL-file.

Returns
True in case of success, false in case of an error.
Remarks
In case of errors check log.

§ parseBooleanLiteral()

char * OpenDDLParser::parseBooleanLiteral ( char *  in,
char *  end,
Value **  boolean 
)
static

§ parseDataArrayList()

char * OpenDDLParser::parseDataArrayList ( char *  in,
char *  end,
Value::ValueType  type,
DataArrayList **  dataList 
)
static

§ parseDataList()

char * OpenDDLParser::parseDataList ( char *  in,
char *  end,
Value::ValueType  type,
Value **  data,
size_t &  numValues,
Reference **  refs,
size_t &  numRefs 
)
static

§ parseFloatingLiteral()

char * OpenDDLParser::parseFloatingLiteral ( char *  in,
char *  end,
Value **  floating,
Value::ValueType  floatType = Value::ddl_float 
)
static

§ parseHeader()

char * OpenDDLParser::parseHeader ( char *  in,
char *  end 
)

§ parseHexaLiteral()

char * OpenDDLParser::parseHexaLiteral ( char *  in,
char *  end,
Value **  data 
)
static

§ parseIdentifier()

char * OpenDDLParser::parseIdentifier ( char *  in,
char *  end,
Text **  id 
)
static

§ parseIntegerLiteral()

char * OpenDDLParser::parseIntegerLiteral ( char *  in,
char *  end,
Value **  integer,
Value::ValueType  integerType = Value::ddl_int32 
)
static

§ parseName()

char * OpenDDLParser::parseName ( char *  in,
char *  end,
Name **  name 
)
static

§ parseNextNode()

char * OpenDDLParser::parseNextNode ( char *  current,
char *  end 
)

§ parsePrimitiveDataType()

char * OpenDDLParser::parsePrimitiveDataType ( char *  in,
char *  end,
Value::ValueType type,
size_t &  len 
)
static

§ parseProperty()

char * OpenDDLParser::parseProperty ( char *  in,
char *  end,
Property **  prop 
)
static

§ parseReference()

char * OpenDDLParser::parseReference ( char *  in,
char *  end,
std::vector< Name *> &  names 
)
static

§ parseStringLiteral()

char * OpenDDLParser::parseStringLiteral ( char *  in,
char *  end,
Value **  stringData 
)
static

§ parseStructure()

char * OpenDDLParser::parseStructure ( char *  in,
char *  end 
)

§ parseStructureBody()

char * OpenDDLParser::parseStructureBody ( char *  in,
char *  end,
bool &  error 
)

§ popNode()

DDLNode * OpenDDLParser::popNode ( )

§ pushNode()

void OpenDDLParser::pushNode ( DDLNode node)

§ setBuffer() [1/2]

void OpenDDLParser::setBuffer ( const char *  buffer,
size_t  len 
)

Assigns a new buffer to parse.

Parameters
buffer[in] The buffer
len[in] Size of the buffer

§ setBuffer() [2/2]

void OpenDDLParser::setBuffer ( const std::vector< char > &  buffer)

Assigns a new buffer to parse.

Parameters
buffer[in] The buffer as a std::vector.

§ setLogCallback()

void OpenDDLParser::setLogCallback ( logCallback  callback)

Setter for an own log callback function.

Parameters
callback[in] The own callback.

§ top()

DDLNode * OpenDDLParser::top ( )

The documentation for this class was generated from the following files: