NED1Generator Class Reference
[Generating NED]

Generates NED code from a NED object tree. More...

#include <ned1generator.h>

List of all members.

Public Member Functions

 NED1Generator (NEDErrorStore *errors)
 ~NED1Generator ()
void setIndentSize (int indentsize)
void generate (std::ostream &out, NEDElement *node, const char *indent)
std::string generate (NEDElement *node, const char *indent)

Protected Member Functions

void generateNedItem (NEDElement *node, const char *indent, bool islast, const char *arg=NULL)
void generateChildren (NEDElement *node, const char *indent, const char *arg=NULL)
void generateChildrenWithType (NEDElement *node, int tagcode, const char *indent, const char *arg=0)
void generateChildrenWithTypes (NEDElement *node, int tagcodes[], const char *indent, const char *arg=0)
Change indentation level

const char * increaseIndent (const char *indent)
const char * decreaseIndent (const char *indent)
Utilities

void printInheritance (NEDElement *node, const char *indent)
bool hasExpression (NEDElement *node, const char *attr)
void printExpression (NEDElement *node, const char *attr, const char *indent)
void printOptVector (NEDElement *node, const char *attr, const char *indent)
std::string getDisplayStringOf (NEDElement *node, PropertyElement *&outDisplayProp)
const char * getPromptTextOf (ParamElement *param)
Getters for comments

std::string concatInnerComments (NEDElement *node)
std::string getBannerComment (NEDElement *node, const char *indent)
std::string getRightComment (NEDElement *node)
std::string getInlineRightComment (NEDElement *node)
std::string getTrailingComment (NEDElement *node)
Generate NED code from the given element

void doNedfiles (FilesElement *node, const char *indent, bool islast, const char *)
void doNedfile (NedFileElement *node, const char *indent, bool islast, const char *)
void doImport (ImportElement *node, const char *indent, bool islast, const char *)
void doPropertyDecl (PropertyDeclElement *node, const char *indent, bool islast, const char *)
void doExtends (ExtendsElement *node, const char *indent, bool islast, const char *)
void doInterfaceName (InterfaceNameElement *node, const char *indent, bool islast, const char *)
void doSimpleModule (SimpleModuleElement *node, const char *indent, bool islast, const char *)
void doModuleInterface (ModuleInterfaceElement *node, const char *indent, bool islast, const char *)
void doCompoundModule (CompoundModuleElement *node, const char *indent, bool islast, const char *)
void doChannelInterface (ChannelInterfaceElement *node, const char *indent, bool islast, const char *)
void doChannel (ChannelElement *node, const char *indent, bool islast, const char *)
void doParameters (ParametersElement *node, const char *indent, bool islast, const char *)
void doModuleParameters (ParametersElement *node, const char *indent)
void doChannelParameters (ParametersElement *node, const char *indent)
void doSubstParameters (ParametersElement *node, const char *indent)
void doConnectionAttributes (ParametersElement *node, const char *indent)
void doParam (ParamElement *node, const char *indent, bool islast, const char *)
void doModuleParam (ParamElement *node, const char *indent, bool islast, const char *)
void doSubstParam (ParamElement *node, const char *indent, bool islast, const char *)
void doChannelParam (ParamElement *node, const char *indent)
void doProperty (PropertyElement *node, const char *indent, bool islast, const char *)
void doPropertyKey (PropertyKeyElement *node, const char *indent, bool islast, const char *)
void doGates (GatesElement *node, const char *indent, bool islast, const char *)
void doModuleGates (GatesElement *node, const char *indent)
void doSubmoduleGatesizes (GatesElement *node, const char *indent)
void doGate (GateElement *node, const char *indent, bool islast, const char *)
void doModuleGate (GateElement *node, const char *indent, bool islast, const char *)
void doGatesize (GateElement *node, const char *indent, bool islast, const char *)
void doTypes (TypesElement *node, const char *indent, bool islast, const char *)
void doSubmodules (SubmodulesElement *node, const char *indent, bool islast, const char *)
void doSubmodule (SubmoduleElement *node, const char *indent, bool islast, const char *)
void doConnections (ConnectionsElement *node, const char *indent, bool islast, const char *)
void doConnection (ConnectionElement *node, const char *indent, bool islast, const char *)
void doConnectionGroup (ConnectionGroupElement *node, const char *indent, bool islast, const char *)
void doLoop (LoopElement *node, const char *indent, bool islast, const char *)
void doCondition (ConditionElement *node, const char *indent, bool islast, const char *)
void printConnectionGate (NEDElement *conn, const char *modname, const char *modindexattr, const char *gatename, const char *gateindexattr, bool isplusplus, int gatesubg, const char *indent)
void doExpression (ExpressionElement *node, const char *indent, bool islast, const char *)
int getOperatorPrecedence (const char *op, int args)
bool isOperatorLeftAssoc (const char *op)
void doOperator (OperatorElement *node, const char *indent, bool islast, const char *)
void doFunction (FunctionElement *node, const char *indent, bool islast, const char *)
void doIdent (IdentElement *node, const char *indent, bool islast, const char *)
void doLiteral (LiteralElement *node, const char *indent, bool islast, const char *)

Protected Attributes

int indentsize
std::ostream * outp
NEDErrorStoreerrors

Detailed Description

Generates NED code from a NED object tree.

Assumes object tree has already passed all validation stages (DTD, syntax, semantic).


Constructor & Destructor Documentation

NED1Generator::NED1Generator ( NEDErrorStore errors  ) 

Constructor.

NED1Generator::~NED1Generator (  ) 

Destructor.


Member Function Documentation

std::string NED1Generator::concatInnerComments ( NEDElement node  )  [protected]
const char* NED1Generator::decreaseIndent ( const char *  indent  )  [protected]
void NED1Generator::doChannel ( ChannelElement node,
const char *  indent,
bool  islast,
const char *   
) [protected]
void NED1Generator::doChannelInterface ( ChannelInterfaceElement node,
const char *  indent,
bool  islast,
const char *   
) [protected]
void NED1Generator::doChannelParam ( ParamElement node,
const char *  indent 
) [protected]
void NED1Generator::doChannelParameters ( ParametersElement node,
const char *  indent 
) [protected]
void NED1Generator::doCompoundModule ( CompoundModuleElement node,
const char *  indent,
bool  islast,
const char *   
) [protected]
void NED1Generator::doCondition ( ConditionElement node,
const char *  indent,
bool  islast,
const char *   
) [protected]
void NED1Generator::doConnection ( ConnectionElement node,
const char *  indent,
bool  islast,
const char *   
) [protected]
void NED1Generator::doConnectionAttributes ( ParametersElement node,
const char *  indent 
) [protected]
void NED1Generator::doConnectionGroup ( ConnectionGroupElement node,
const char *  indent,
bool  islast,
const char *   
) [protected]
void NED1Generator::doConnections ( ConnectionsElement node,
const char *  indent,
bool  islast,
const char *   
) [protected]
void NED1Generator::doExpression ( ExpressionElement node,
const char *  indent,
bool  islast,
const char *   
) [protected]
void NED1Generator::doExtends ( ExtendsElement node,
const char *  indent,
bool  islast,
const char *   
) [protected]
void NED1Generator::doFunction ( FunctionElement node,
const char *  indent,
bool  islast,
const char *   
) [protected]
void NED1Generator::doGate ( GateElement node,
const char *  indent,
bool  islast,
const char *   
) [protected]
void NED1Generator::doGates ( GatesElement node,
const char *  indent,
bool  islast,
const char *   
) [protected]
void NED1Generator::doGatesize ( GateElement node,
const char *  indent,
bool  islast,
const char *   
) [protected]
void NED1Generator::doIdent ( IdentElement node,
const char *  indent,
bool  islast,
const char *   
) [protected]
void NED1Generator::doImport ( ImportElement node,
const char *  indent,
bool  islast,
const char *   
) [protected]
void NED1Generator::doInterfaceName ( InterfaceNameElement node,
const char *  indent,
bool  islast,
const char *   
) [protected]
void NED1Generator::doLiteral ( LiteralElement node,
const char *  indent,
bool  islast,
const char *   
) [protected]
void NED1Generator::doLoop ( LoopElement node,
const char *  indent,
bool  islast,
const char *   
) [protected]
void NED1Generator::doModuleGate ( GateElement node,
const char *  indent,
bool  islast,
const char *   
) [protected]
void NED1Generator::doModuleGates ( GatesElement node,
const char *  indent 
) [protected]
void NED1Generator::doModuleInterface ( ModuleInterfaceElement node,
const char *  indent,
bool  islast,
const char *   
) [protected]
void NED1Generator::doModuleParam ( ParamElement node,
const char *  indent,
bool  islast,
const char *   
) [protected]
void NED1Generator::doModuleParameters ( ParametersElement node,
const char *  indent 
) [protected]
void NED1Generator::doNedfile ( NedFileElement node,
const char *  indent,
bool  islast,
const char *   
) [protected]
void NED1Generator::doNedfiles ( FilesElement node,
const char *  indent,
bool  islast,
const char *   
) [protected]
void NED1Generator::doOperator ( OperatorElement node,
const char *  indent,
bool  islast,
const char *   
) [protected]
void NED1Generator::doParam ( ParamElement node,
const char *  indent,
bool  islast,
const char *   
) [protected]
void NED1Generator::doParameters ( ParametersElement node,
const char *  indent,
bool  islast,
const char *   
) [protected]
void NED1Generator::doProperty ( PropertyElement node,
const char *  indent,
bool  islast,
const char *   
) [protected]
void NED1Generator::doPropertyDecl ( PropertyDeclElement node,
const char *  indent,
bool  islast,
const char *   
) [protected]
void NED1Generator::doPropertyKey ( PropertyKeyElement node,
const char *  indent,
bool  islast,
const char *   
) [protected]
void NED1Generator::doSimpleModule ( SimpleModuleElement node,
const char *  indent,
bool  islast,
const char *   
) [protected]
void NED1Generator::doSubmodule ( SubmoduleElement node,
const char *  indent,
bool  islast,
const char *   
) [protected]
void NED1Generator::doSubmoduleGatesizes ( GatesElement node,
const char *  indent 
) [protected]
void NED1Generator::doSubmodules ( SubmodulesElement node,
const char *  indent,
bool  islast,
const char *   
) [protected]
void NED1Generator::doSubstParam ( ParamElement node,
const char *  indent,
bool  islast,
const char *   
) [protected]
void NED1Generator::doSubstParameters ( ParametersElement node,
const char *  indent 
) [protected]
void NED1Generator::doTypes ( TypesElement node,
const char *  indent,
bool  islast,
const char *   
) [protected]
std::string NED1Generator::generate ( NEDElement node,
const char *  indent 
)

Generates NED code and returns it as a string.

void NED1Generator::generate ( std::ostream &  out,
NEDElement node,
const char *  indent 
)

Generates NED code.

Takes an output stream where the generated NED code will be written, the object tree and the base indentation.

void NED1Generator::generateChildren ( NEDElement node,
const char *  indent,
const char *  arg = NULL 
) [protected]

Invoke generateNedItem() on all children.

void NED1Generator::generateChildrenWithType ( NEDElement node,
int  tagcode,
const char *  indent,
const char *  arg = 0 
) [protected]

Invoke generateNedItem() on all children of the given tagcode.

void NED1Generator::generateChildrenWithTypes ( NEDElement node,
int  tagcodes[],
const char *  indent,
const char *  arg = 0 
) [protected]

Invoke generateNedItem() on children of the given tagcodes (NED_NULL-terminated array).

void NED1Generator::generateNedItem ( NEDElement node,
const char *  indent,
bool  islast,
const char *  arg = NULL 
) [protected]

Dispatch to various doXXX() methods according to node type.

std::string NED1Generator::getBannerComment ( NEDElement node,
const char *  indent 
) [protected]
std::string NED1Generator::getDisplayStringOf ( NEDElement node,
PropertyElement *&  outDisplayProp 
) [protected]
std::string NED1Generator::getInlineRightComment ( NEDElement node  )  [protected]
int NED1Generator::getOperatorPrecedence ( const char *  op,
int  args 
) [protected]
const char* NED1Generator::getPromptTextOf ( ParamElement param  )  [protected]
std::string NED1Generator::getRightComment ( NEDElement node  )  [protected]
std::string NED1Generator::getTrailingComment ( NEDElement node  )  [protected]
bool NED1Generator::hasExpression ( NEDElement node,
const char *  attr 
) [protected]
const char* NED1Generator::increaseIndent ( const char *  indent  )  [protected]
bool NED1Generator::isOperatorLeftAssoc ( const char *  op  )  [protected]
void NED1Generator::printConnectionGate ( NEDElement conn,
const char *  modname,
const char *  modindexattr,
const char *  gatename,
const char *  gateindexattr,
bool  isplusplus,
int  gatesubg,
const char *  indent 
) [protected]
void NED1Generator::printExpression ( NEDElement node,
const char *  attr,
const char *  indent 
) [protected]
void NED1Generator::printInheritance ( NEDElement node,
const char *  indent 
) [protected]
void NED1Generator::printOptVector ( NEDElement node,
const char *  attr,
const char *  indent 
) [protected]
void NED1Generator::setIndentSize ( int  indentsize  ) 

Sets the indent size in the generated NED code.

Default is 4 spaces.


Member Data Documentation

int NED1Generator::indentsize [protected]
std::ostream* NED1Generator::outp [protected]

The documentation for this class was generated from the following file:
Generated on Tue Dec 2 11:16:31 2014 for OMNeT++ NEDXML by  doxygen 1.6.3