Assimp  v4.1. (December 2018)
OpenDDLParser Class Reference

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...
 
Context * getContext () const
 Returns the parser context, only available in case of a succeeded parsing. More...
 
logCallback getLogCallback () const
 Getter for the log callback. More...
 
DDLNode * getRoot () 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)
 
DDLNode * popNode ()
 
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...
 
DDLNode * top ()
 
 ~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

@brief  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: