Main Page   Modules   Class Hierarchy   Compound List   File List   Compound Members  

nedelements.h

00001 //==========================================================================
00002 // Part of the OMNeT++ Discrete System Simulation System
00003 //
00004 // GENERATED FILE.
00005 //
00006 //==========================================================================
00007 
00008 /*--------------------------------------------------------------*
00009   Copyright (C) 2002-2003 Andras Varga
00010 
00011   This file is distributed WITHOUT ANY WARRANTY. See the file
00012   `license' for details on this and other legal matters.
00013 *--------------------------------------------------------------*/
00014 
00015 //
00016 // THIS IS A GENERATED FILE, DO NOT EDIT!
00017 //
00018 
00019 #ifndef __NEDELEMENTS_H
00020 #define __NEDELEMENTS_H
00021 
00022 #include "nedelement.h"
00023 
00024 class NedFilesNode;
00025 class NedFileNode;
00026 class ImportNode;
00027 class ImportedFileNode;
00028 class ChannelNode;
00029 class ChannelAttrNode;
00030 class NetworkNode;
00031 class SimpleModuleNode;
00032 class CompoundModuleNode;
00033 class ParamsNode;
00034 class ParamNode;
00035 class GatesNode;
00036 class GateNode;
00037 class MachinesNode;
00038 class MachineNode;
00039 class SubmodulesNode;
00040 class SubmoduleNode;
00041 class SubstparamsNode;
00042 class SubstparamNode;
00043 class GatesizesNode;
00044 class GatesizeNode;
00045 class SubstmachinesNode;
00046 class SubstmachineNode;
00047 class ConnectionsNode;
00048 class ConnectionNode;
00049 class ConnAttrNode;
00050 class ForLoopNode;
00051 class LoopVarNode;
00052 class DisplayStringNode;
00053 class ExpressionNode;
00054 class OperatorNode;
00055 class FunctionNode;
00056 class ParamRefNode;
00057 class IdentNode;
00058 class ConstNode;
00059 class CppincludeNode;
00060 class CppStructNode;
00061 class CppCobjectNode;
00062 class CppNoncobjectNode;
00063 class EnumNode;
00064 class EnumFieldsNode;
00065 class EnumFieldNode;
00066 class MessageNode;
00067 class ClassNode;
00068 class StructNode;
00069 class FieldsNode;
00070 class FieldNode;
00071 class PropertiesNode;
00072 class PropertyNode;
00073 class UnknownNode;
00074 
00075 
00081 enum NEDElementCode {
00082     NED_NED_FILES,
00083     NED_NED_FILE,
00084     NED_IMPORT,
00085     NED_IMPORTED_FILE,
00086     NED_CHANNEL,
00087     NED_CHANNEL_ATTR,
00088     NED_NETWORK,
00089     NED_SIMPLE_MODULE,
00090     NED_COMPOUND_MODULE,
00091     NED_PARAMS,
00092     NED_PARAM,
00093     NED_GATES,
00094     NED_GATE,
00095     NED_MACHINES,
00096     NED_MACHINE,
00097     NED_SUBMODULES,
00098     NED_SUBMODULE,
00099     NED_SUBSTPARAMS,
00100     NED_SUBSTPARAM,
00101     NED_GATESIZES,
00102     NED_GATESIZE,
00103     NED_SUBSTMACHINES,
00104     NED_SUBSTMACHINE,
00105     NED_CONNECTIONS,
00106     NED_CONNECTION,
00107     NED_CONN_ATTR,
00108     NED_FOR_LOOP,
00109     NED_LOOP_VAR,
00110     NED_DISPLAY_STRING,
00111     NED_EXPRESSION,
00112     NED_OPERATOR,
00113     NED_FUNCTION,
00114     NED_PARAM_REF,
00115     NED_IDENT,
00116     NED_CONST,
00117     NED_CPPINCLUDE,
00118     NED_CPP_STRUCT,
00119     NED_CPP_COBJECT,
00120     NED_CPP_NONCOBJECT,
00121     NED_ENUM,
00122     NED_ENUM_FIELDS,
00123     NED_ENUM_FIELD,
00124     NED_MESSAGE,
00125     NED_CLASS,
00126     NED_STRUCT,
00127     NED_FIELDS,
00128     NED_FIELD,
00129     NED_PROPERTIES,
00130     NED_PROPERTY,
00131     NED_UNKNOWN,
00132 };
00133 
00134 enum {NED_GATEDIR_INPUT, NED_GATEDIR_OUTPUT};
00135 enum {NED_ARROWDIR_LEFT, NED_ARROWDIR_RIGHT};
00136 enum {NED_CONST_BOOL, NED_CONST_INT, NED_CONST_REAL, NED_CONST_STRING, NED_CONST_TIME};
00137 
00148 class NedFilesNode : public NEDElement
00149 {
00150   private:
00151   public:
00152     NedFilesNode() {applyDefaults();}
00153     NedFilesNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00154     virtual ~NedFilesNode() {}
00157     virtual const char *getTagName() const {return "ned-files";}
00158     virtual int getTagCode() const {return NED_NED_FILES;}
00159     virtual int getNumAttributes() const;
00160     virtual const char *getAttributeName(int k) const;
00161     virtual const char *getAttribute(int k) const;
00162     virtual void setAttribute(int k, const char *val);
00163     virtual const char *getAttributeDefault(int k) const;
00165 
00168 
00169     virtual NedFilesNode *getNextNedFilesNodeSibling() const;
00170     virtual NedFilesNode *getFirstNedFilesChild() const;
00171     virtual NedFileNode *getFirstNedFileChild() const;
00173 };
00174 
00190 class NedFileNode : public NEDElement
00191 {
00192   private:
00193     std::string filename;
00194     std::string preferredIndent;
00195     std::string bannerComment;
00196   public:
00197     NedFileNode() {applyDefaults();}
00198     NedFileNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00199     virtual ~NedFileNode() {}
00202     virtual const char *getTagName() const {return "ned-file";}
00203     virtual int getTagCode() const {return NED_NED_FILE;}
00204     virtual int getNumAttributes() const;
00205     virtual const char *getAttributeName(int k) const;
00206     virtual const char *getAttribute(int k) const;
00207     virtual void setAttribute(int k, const char *val);
00208     virtual const char *getAttributeDefault(int k) const;
00210 
00213     const char * getFilename() const  {return filename.c_str();}
00214     void setFilename(const char * val)  {filename = val;}
00215     const char * getPreferredIndent() const  {return preferredIndent.c_str();}
00216     void setPreferredIndent(const char * val)  {preferredIndent = val;}
00217     const char * getBannerComment() const  {return bannerComment.c_str();}
00218     void setBannerComment(const char * val)  {bannerComment = val;}
00219 
00220     virtual NedFileNode *getNextNedFileNodeSibling() const;
00221     virtual ImportNode *getFirstImportChild() const;
00222     virtual ChannelNode *getFirstChannelChild() const;
00223     virtual SimpleModuleNode *getFirstSimpleModuleChild() const;
00224     virtual CompoundModuleNode *getFirstCompoundModuleChild() const;
00225     virtual NetworkNode *getFirstNetworkChild() const;
00226     virtual CppincludeNode *getFirstCppincludeChild() const;
00227     virtual CppStructNode *getFirstCppStructChild() const;
00228     virtual CppCobjectNode *getFirstCppCobjectChild() const;
00229     virtual CppNoncobjectNode *getFirstCppNoncobjectChild() const;
00230     virtual EnumNode *getFirstEnumChild() const;
00231     virtual MessageNode *getFirstMessageChild() const;
00232     virtual ClassNode *getFirstClassChild() const;
00233     virtual StructNode *getFirstStructChild() const;
00235 };
00236 
00250 class ImportNode : public NEDElement
00251 {
00252   private:
00253     std::string bannerComment;
00254     std::string rightComment;
00255     std::string trailingComment;
00256   public:
00257     ImportNode() {applyDefaults();}
00258     ImportNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00259     virtual ~ImportNode() {}
00262     virtual const char *getTagName() const {return "import";}
00263     virtual int getTagCode() const {return NED_IMPORT;}
00264     virtual int getNumAttributes() const;
00265     virtual const char *getAttributeName(int k) const;
00266     virtual const char *getAttribute(int k) const;
00267     virtual void setAttribute(int k, const char *val);
00268     virtual const char *getAttributeDefault(int k) const;
00270 
00273     const char * getBannerComment() const  {return bannerComment.c_str();}
00274     void setBannerComment(const char * val)  {bannerComment = val;}
00275     const char * getRightComment() const  {return rightComment.c_str();}
00276     void setRightComment(const char * val)  {rightComment = val;}
00277     const char * getTrailingComment() const  {return trailingComment.c_str();}
00278     void setTrailingComment(const char * val)  {trailingComment = val;}
00279 
00280     virtual ImportNode *getNextImportNodeSibling() const;
00281     virtual ImportedFileNode *getFirstImportedFileChild() const;
00283 };
00284 
00298 class ImportedFileNode : public NEDElement
00299 {
00300   private:
00301     std::string filename;
00302     std::string bannerComment;
00303     std::string rightComment;
00304   public:
00305     ImportedFileNode() {applyDefaults();}
00306     ImportedFileNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00307     virtual ~ImportedFileNode() {}
00310     virtual const char *getTagName() const {return "imported-file";}
00311     virtual int getTagCode() const {return NED_IMPORTED_FILE;}
00312     virtual int getNumAttributes() const;
00313     virtual const char *getAttributeName(int k) const;
00314     virtual const char *getAttribute(int k) const;
00315     virtual void setAttribute(int k, const char *val);
00316     virtual const char *getAttributeDefault(int k) const;
00318 
00321     const char * getFilename() const  {return filename.c_str();}
00322     void setFilename(const char * val)  {filename = val;}
00323     const char * getBannerComment() const  {return bannerComment.c_str();}
00324     void setBannerComment(const char * val)  {bannerComment = val;}
00325     const char * getRightComment() const  {return rightComment.c_str();}
00326     void setRightComment(const char * val)  {rightComment = val;}
00327 
00328     virtual ImportedFileNode *getNextImportedFileNodeSibling() const;
00330 };
00331 
00346 class ChannelNode : public NEDElement
00347 {
00348   private:
00349     std::string name;
00350     std::string bannerComment;
00351     std::string rightComment;
00352     std::string trailingComment;
00353   public:
00354     ChannelNode() {applyDefaults();}
00355     ChannelNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00356     virtual ~ChannelNode() {}
00359     virtual const char *getTagName() const {return "channel";}
00360     virtual int getTagCode() const {return NED_CHANNEL;}
00361     virtual int getNumAttributes() const;
00362     virtual const char *getAttributeName(int k) const;
00363     virtual const char *getAttribute(int k) const;
00364     virtual void setAttribute(int k, const char *val);
00365     virtual const char *getAttributeDefault(int k) const;
00367 
00370     const char * getName() const  {return name.c_str();}
00371     void setName(const char * val)  {name = val;}
00372     const char * getBannerComment() const  {return bannerComment.c_str();}
00373     void setBannerComment(const char * val)  {bannerComment = val;}
00374     const char * getRightComment() const  {return rightComment.c_str();}
00375     void setRightComment(const char * val)  {rightComment = val;}
00376     const char * getTrailingComment() const  {return trailingComment.c_str();}
00377     void setTrailingComment(const char * val)  {trailingComment = val;}
00378 
00379     virtual ChannelNode *getNextChannelNodeSibling() const;
00380     virtual ChannelAttrNode *getFirstChannelAttrChild() const;
00381     virtual DisplayStringNode *getFirstDisplayStringChild() const;
00383 };
00384 
00399 class ChannelAttrNode : public NEDElement
00400 {
00401   private:
00402     std::string name;
00403     std::string value;
00404     std::string bannerComment;
00405     std::string rightComment;
00406   public:
00407     ChannelAttrNode() {applyDefaults();}
00408     ChannelAttrNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00409     virtual ~ChannelAttrNode() {}
00412     virtual const char *getTagName() const {return "channel-attr";}
00413     virtual int getTagCode() const {return NED_CHANNEL_ATTR;}
00414     virtual int getNumAttributes() const;
00415     virtual const char *getAttributeName(int k) const;
00416     virtual const char *getAttribute(int k) const;
00417     virtual void setAttribute(int k, const char *val);
00418     virtual const char *getAttributeDefault(int k) const;
00420 
00423     const char * getName() const  {return name.c_str();}
00424     void setName(const char * val)  {name = val;}
00425     const char * getValue() const  {return value.c_str();}
00426     void setValue(const char * val)  {value = val;}
00427     const char * getBannerComment() const  {return bannerComment.c_str();}
00428     void setBannerComment(const char * val)  {bannerComment = val;}
00429     const char * getRightComment() const  {return rightComment.c_str();}
00430     void setRightComment(const char * val)  {rightComment = val;}
00431 
00432     virtual ChannelAttrNode *getNextChannelAttrNodeSibling() const;
00433     virtual ExpressionNode *getFirstExpressionChild() const;
00435 };
00436 
00453 class NetworkNode : public NEDElement
00454 {
00455   private:
00456     std::string name;
00457     std::string typeName;
00458     std::string likeName;
00459     std::string bannerComment;
00460     std::string rightComment;
00461     std::string trailingComment;
00462   public:
00463     NetworkNode() {applyDefaults();}
00464     NetworkNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00465     virtual ~NetworkNode() {}
00468     virtual const char *getTagName() const {return "network";}
00469     virtual int getTagCode() const {return NED_NETWORK;}
00470     virtual int getNumAttributes() const;
00471     virtual const char *getAttributeName(int k) const;
00472     virtual const char *getAttribute(int k) const;
00473     virtual void setAttribute(int k, const char *val);
00474     virtual const char *getAttributeDefault(int k) const;
00476 
00479     const char * getName() const  {return name.c_str();}
00480     void setName(const char * val)  {name = val;}
00481     const char * getTypeName() const  {return typeName.c_str();}
00482     void setTypeName(const char * val)  {typeName = val;}
00483     const char * getLikeName() const  {return likeName.c_str();}
00484     void setLikeName(const char * val)  {likeName = val;}
00485     const char * getBannerComment() const  {return bannerComment.c_str();}
00486     void setBannerComment(const char * val)  {bannerComment = val;}
00487     const char * getRightComment() const  {return rightComment.c_str();}
00488     void setRightComment(const char * val)  {rightComment = val;}
00489     const char * getTrailingComment() const  {return trailingComment.c_str();}
00490     void setTrailingComment(const char * val)  {trailingComment = val;}
00491 
00492     virtual NetworkNode *getNextNetworkNodeSibling() const;
00493     virtual SubstmachinesNode *getFirstSubstmachinesChild() const;
00494     virtual SubstparamsNode *getFirstSubstparamsChild() const;
00496 };
00497 
00512 class SimpleModuleNode : public NEDElement
00513 {
00514   private:
00515     std::string name;
00516     std::string bannerComment;
00517     std::string rightComment;
00518     std::string trailingComment;
00519   public:
00520     SimpleModuleNode() {applyDefaults();}
00521     SimpleModuleNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00522     virtual ~SimpleModuleNode() {}
00525     virtual const char *getTagName() const {return "simple-module";}
00526     virtual int getTagCode() const {return NED_SIMPLE_MODULE;}
00527     virtual int getNumAttributes() const;
00528     virtual const char *getAttributeName(int k) const;
00529     virtual const char *getAttribute(int k) const;
00530     virtual void setAttribute(int k, const char *val);
00531     virtual const char *getAttributeDefault(int k) const;
00533 
00536     const char * getName() const  {return name.c_str();}
00537     void setName(const char * val)  {name = val;}
00538     const char * getBannerComment() const  {return bannerComment.c_str();}
00539     void setBannerComment(const char * val)  {bannerComment = val;}
00540     const char * getRightComment() const  {return rightComment.c_str();}
00541     void setRightComment(const char * val)  {rightComment = val;}
00542     const char * getTrailingComment() const  {return trailingComment.c_str();}
00543     void setTrailingComment(const char * val)  {trailingComment = val;}
00544 
00545     virtual SimpleModuleNode *getNextSimpleModuleNodeSibling() const;
00546     virtual MachinesNode *getFirstMachinesChild() const;
00547     virtual ParamsNode *getFirstParamsChild() const;
00548     virtual GatesNode *getFirstGatesChild() const;
00549     virtual DisplayStringNode *getFirstDisplayStringChild() const;
00551 };
00552 
00568 class CompoundModuleNode : public NEDElement
00569 {
00570   private:
00571     std::string name;
00572     std::string bannerComment;
00573     std::string rightComment;
00574     std::string trailingComment;
00575   public:
00576     CompoundModuleNode() {applyDefaults();}
00577     CompoundModuleNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00578     virtual ~CompoundModuleNode() {}
00581     virtual const char *getTagName() const {return "compound-module";}
00582     virtual int getTagCode() const {return NED_COMPOUND_MODULE;}
00583     virtual int getNumAttributes() const;
00584     virtual const char *getAttributeName(int k) const;
00585     virtual const char *getAttribute(int k) const;
00586     virtual void setAttribute(int k, const char *val);
00587     virtual const char *getAttributeDefault(int k) const;
00589 
00592     const char * getName() const  {return name.c_str();}
00593     void setName(const char * val)  {name = val;}
00594     const char * getBannerComment() const  {return bannerComment.c_str();}
00595     void setBannerComment(const char * val)  {bannerComment = val;}
00596     const char * getRightComment() const  {return rightComment.c_str();}
00597     void setRightComment(const char * val)  {rightComment = val;}
00598     const char * getTrailingComment() const  {return trailingComment.c_str();}
00599     void setTrailingComment(const char * val)  {trailingComment = val;}
00600 
00601     virtual CompoundModuleNode *getNextCompoundModuleNodeSibling() const;
00602     virtual MachinesNode *getFirstMachinesChild() const;
00603     virtual ParamsNode *getFirstParamsChild() const;
00604     virtual GatesNode *getFirstGatesChild() const;
00605     virtual SubmodulesNode *getFirstSubmodulesChild() const;
00606     virtual ConnectionsNode *getFirstConnectionsChild() const;
00607     virtual DisplayStringNode *getFirstDisplayStringChild() const;
00609 };
00610 
00623 class ParamsNode : public NEDElement
00624 {
00625   private:
00626     std::string bannerComment;
00627     std::string rightComment;
00628   public:
00629     ParamsNode() {applyDefaults();}
00630     ParamsNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00631     virtual ~ParamsNode() {}
00634     virtual const char *getTagName() const {return "params";}
00635     virtual int getTagCode() const {return NED_PARAMS;}
00636     virtual int getNumAttributes() const;
00637     virtual const char *getAttributeName(int k) const;
00638     virtual const char *getAttribute(int k) const;
00639     virtual void setAttribute(int k, const char *val);
00640     virtual const char *getAttributeDefault(int k) const;
00642 
00645     const char * getBannerComment() const  {return bannerComment.c_str();}
00646     void setBannerComment(const char * val)  {bannerComment = val;}
00647     const char * getRightComment() const  {return rightComment.c_str();}
00648     void setRightComment(const char * val)  {rightComment = val;}
00649 
00650     virtual ParamsNode *getNextParamsNodeSibling() const;
00651     virtual ParamNode *getFirstParamChild() const;
00653 };
00654 
00669 class ParamNode : public NEDElement
00670 {
00671   private:
00672     std::string name;
00673     std::string dataType;
00674     std::string bannerComment;
00675     std::string rightComment;
00676   public:
00677     ParamNode() {applyDefaults();}
00678     ParamNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00679     virtual ~ParamNode() {}
00682     virtual const char *getTagName() const {return "param";}
00683     virtual int getTagCode() const {return NED_PARAM;}
00684     virtual int getNumAttributes() const;
00685     virtual const char *getAttributeName(int k) const;
00686     virtual const char *getAttribute(int k) const;
00687     virtual void setAttribute(int k, const char *val);
00688     virtual const char *getAttributeDefault(int k) const;
00690 
00693     const char * getName() const  {return name.c_str();}
00694     void setName(const char * val)  {name = val;}
00695     const char * getDataType() const  {return dataType.c_str();}
00696     void setDataType(const char * val)  {dataType = val;}
00697     const char * getBannerComment() const  {return bannerComment.c_str();}
00698     void setBannerComment(const char * val)  {bannerComment = val;}
00699     const char * getRightComment() const  {return rightComment.c_str();}
00700     void setRightComment(const char * val)  {rightComment = val;}
00701 
00702     virtual ParamNode *getNextParamNodeSibling() const;
00704 };
00705 
00718 class GatesNode : public NEDElement
00719 {
00720   private:
00721     std::string bannerComment;
00722     std::string rightComment;
00723   public:
00724     GatesNode() {applyDefaults();}
00725     GatesNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00726     virtual ~GatesNode() {}
00729     virtual const char *getTagName() const {return "gates";}
00730     virtual int getTagCode() const {return NED_GATES;}
00731     virtual int getNumAttributes() const;
00732     virtual const char *getAttributeName(int k) const;
00733     virtual const char *getAttribute(int k) const;
00734     virtual void setAttribute(int k, const char *val);
00735     virtual const char *getAttributeDefault(int k) const;
00737 
00740     const char * getBannerComment() const  {return bannerComment.c_str();}
00741     void setBannerComment(const char * val)  {bannerComment = val;}
00742     const char * getRightComment() const  {return rightComment.c_str();}
00743     void setRightComment(const char * val)  {rightComment = val;}
00744 
00745     virtual GatesNode *getNextGatesNodeSibling() const;
00746     virtual GateNode *getFirstGateChild() const;
00748 };
00749 
00765 class GateNode : public NEDElement
00766 {
00767   private:
00768     std::string name;
00769     int direction;
00770     bool isVector;
00771     std::string bannerComment;
00772     std::string rightComment;
00773   public:
00774     GateNode() {applyDefaults();}
00775     GateNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00776     virtual ~GateNode() {}
00779     virtual const char *getTagName() const {return "gate";}
00780     virtual int getTagCode() const {return NED_GATE;}
00781     virtual int getNumAttributes() const;
00782     virtual const char *getAttributeName(int k) const;
00783     virtual const char *getAttribute(int k) const;
00784     virtual void setAttribute(int k, const char *val);
00785     virtual const char *getAttributeDefault(int k) const;
00787 
00790     const char * getName() const  {return name.c_str();}
00791     void setName(const char * val)  {name = val;}
00792     int getDirection() const  {return direction;}
00793     void setDirection(int val)  {direction = val;}
00794     bool getIsVector() const  {return isVector;}
00795     void setIsVector(bool val)  {isVector = val;}
00796     const char * getBannerComment() const  {return bannerComment.c_str();}
00797     void setBannerComment(const char * val)  {bannerComment = val;}
00798     const char * getRightComment() const  {return rightComment.c_str();}
00799     void setRightComment(const char * val)  {rightComment = val;}
00800 
00801     virtual GateNode *getNextGateNodeSibling() const;
00803 };
00804 
00817 class MachinesNode : public NEDElement
00818 {
00819   private:
00820     std::string bannerComment;
00821     std::string rightComment;
00822   public:
00823     MachinesNode() {applyDefaults();}
00824     MachinesNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00825     virtual ~MachinesNode() {}
00828     virtual const char *getTagName() const {return "machines";}
00829     virtual int getTagCode() const {return NED_MACHINES;}
00830     virtual int getNumAttributes() const;
00831     virtual const char *getAttributeName(int k) const;
00832     virtual const char *getAttribute(int k) const;
00833     virtual void setAttribute(int k, const char *val);
00834     virtual const char *getAttributeDefault(int k) const;
00836 
00839     const char * getBannerComment() const  {return bannerComment.c_str();}
00840     void setBannerComment(const char * val)  {bannerComment = val;}
00841     const char * getRightComment() const  {return rightComment.c_str();}
00842     void setRightComment(const char * val)  {rightComment = val;}
00843 
00844     virtual MachinesNode *getNextMachinesNodeSibling() const;
00845     virtual MachineNode *getFirstMachineChild() const;
00847 };
00848 
00862 class MachineNode : public NEDElement
00863 {
00864   private:
00865     std::string name;
00866     std::string bannerComment;
00867     std::string rightComment;
00868   public:
00869     MachineNode() {applyDefaults();}
00870     MachineNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00871     virtual ~MachineNode() {}
00874     virtual const char *getTagName() const {return "machine";}
00875     virtual int getTagCode() const {return NED_MACHINE;}
00876     virtual int getNumAttributes() const;
00877     virtual const char *getAttributeName(int k) const;
00878     virtual const char *getAttribute(int k) const;
00879     virtual void setAttribute(int k, const char *val);
00880     virtual const char *getAttributeDefault(int k) const;
00882 
00885     const char * getName() const  {return name.c_str();}
00886     void setName(const char * val)  {name = val;}
00887     const char * getBannerComment() const  {return bannerComment.c_str();}
00888     void setBannerComment(const char * val)  {bannerComment = val;}
00889     const char * getRightComment() const  {return rightComment.c_str();}
00890     void setRightComment(const char * val)  {rightComment = val;}
00891 
00892     virtual MachineNode *getNextMachineNodeSibling() const;
00894 };
00895 
00908 class SubmodulesNode : public NEDElement
00909 {
00910   private:
00911     std::string bannerComment;
00912     std::string rightComment;
00913   public:
00914     SubmodulesNode() {applyDefaults();}
00915     SubmodulesNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00916     virtual ~SubmodulesNode() {}
00919     virtual const char *getTagName() const {return "submodules";}
00920     virtual int getTagCode() const {return NED_SUBMODULES;}
00921     virtual int getNumAttributes() const;
00922     virtual const char *getAttributeName(int k) const;
00923     virtual const char *getAttribute(int k) const;
00924     virtual void setAttribute(int k, const char *val);
00925     virtual const char *getAttributeDefault(int k) const;
00927 
00930     const char * getBannerComment() const  {return bannerComment.c_str();}
00931     void setBannerComment(const char * val)  {bannerComment = val;}
00932     const char * getRightComment() const  {return rightComment.c_str();}
00933     void setRightComment(const char * val)  {rightComment = val;}
00934 
00935     virtual SubmodulesNode *getNextSubmodulesNodeSibling() const;
00936     virtual SubmoduleNode *getFirstSubmoduleChild() const;
00938 };
00939 
00957 class SubmoduleNode : public NEDElement
00958 {
00959   private:
00960     std::string name;
00961     std::string typeName;
00962     std::string likeName;
00963     std::string vectorSize;
00964     std::string bannerComment;
00965     std::string rightComment;
00966   public:
00967     SubmoduleNode() {applyDefaults();}
00968     SubmoduleNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00969     virtual ~SubmoduleNode() {}
00972     virtual const char *getTagName() const {return "submodule";}
00973     virtual int getTagCode() const {return NED_SUBMODULE;}
00974     virtual int getNumAttributes() const;
00975     virtual const char *getAttributeName(int k) const;
00976     virtual const char *getAttribute(int k) const;
00977     virtual void setAttribute(int k, const char *val);
00978     virtual const char *getAttributeDefault(int k) const;
00980 
00983     const char * getName() const  {return name.c_str();}
00984     void setName(const char * val)  {name = val;}
00985     const char * getTypeName() const  {return typeName.c_str();}
00986     void setTypeName(const char * val)  {typeName = val;}
00987     const char * getLikeName() const  {return likeName.c_str();}
00988     void setLikeName(const char * val)  {likeName = val;}
00989     const char * getVectorSize() const  {return vectorSize.c_str();}
00990     void setVectorSize(const char * val)  {vectorSize = val;}
00991     const char * getBannerComment() const  {return bannerComment.c_str();}
00992     void setBannerComment(const char * val)  {bannerComment = val;}
00993     const char * getRightComment() const  {return rightComment.c_str();}
00994     void setRightComment(const char * val)  {rightComment = val;}
00995 
00996     virtual SubmoduleNode *getNextSubmoduleNodeSibling() const;
00997     virtual ExpressionNode *getFirstExpressionChild() const;
00998     virtual SubstmachinesNode *getFirstSubstmachinesChild() const;
00999     virtual SubstparamsNode *getFirstSubstparamsChild() const;
01000     virtual GatesizesNode *getFirstGatesizesChild() const;
01001     virtual DisplayStringNode *getFirstDisplayStringChild() const;
01003 };
01004 
01018 class SubstparamsNode : public NEDElement
01019 {
01020   private:
01021     std::string condition;
01022     std::string bannerComment;
01023     std::string rightComment;
01024   public:
01025     SubstparamsNode() {applyDefaults();}
01026     SubstparamsNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01027     virtual ~SubstparamsNode() {}
01030     virtual const char *getTagName() const {return "substparams";}
01031     virtual int getTagCode() const {return NED_SUBSTPARAMS;}
01032     virtual int getNumAttributes() const;
01033     virtual const char *getAttributeName(int k) const;
01034     virtual const char *getAttribute(int k) const;
01035     virtual void setAttribute(int k, const char *val);
01036     virtual const char *getAttributeDefault(int k) const;
01038 
01041     const char * getCondition() const  {return condition.c_str();}
01042     void setCondition(const char * val)  {condition = val;}
01043     const char * getBannerComment() const  {return bannerComment.c_str();}
01044     void setBannerComment(const char * val)  {bannerComment = val;}
01045     const char * getRightComment() const  {return rightComment.c_str();}
01046     void setRightComment(const char * val)  {rightComment = val;}
01047 
01048     virtual SubstparamsNode *getNextSubstparamsNodeSibling() const;
01049     virtual ExpressionNode *getFirstExpressionChild() const;
01050     virtual SubstparamNode *getFirstSubstparamChild() const;
01052 };
01053 
01068 class SubstparamNode : public NEDElement
01069 {
01070   private:
01071     std::string name;
01072     std::string value;
01073     std::string bannerComment;
01074     std::string rightComment;
01075   public:
01076     SubstparamNode() {applyDefaults();}
01077     SubstparamNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01078     virtual ~SubstparamNode() {}
01081     virtual const char *getTagName() const {return "substparam";}
01082     virtual int getTagCode() const {return NED_SUBSTPARAM;}
01083     virtual int getNumAttributes() const;
01084     virtual const char *getAttributeName(int k) const;
01085     virtual const char *getAttribute(int k) const;
01086     virtual void setAttribute(int k, const char *val);
01087     virtual const char *getAttributeDefault(int k) const;
01089 
01092     const char * getName() const  {return name.c_str();}
01093     void setName(const char * val)  {name = val;}
01094     const char * getValue() const  {return value.c_str();}
01095     void setValue(const char * val)  {value = val;}
01096     const char * getBannerComment() const  {return bannerComment.c_str();}
01097     void setBannerComment(const char * val)  {bannerComment = val;}
01098     const char * getRightComment() const  {return rightComment.c_str();}
01099     void setRightComment(const char * val)  {rightComment = val;}
01100 
01101     virtual SubstparamNode *getNextSubstparamNodeSibling() const;
01102     virtual ExpressionNode *getFirstExpressionChild() const;
01104 };
01105 
01119 class GatesizesNode : public NEDElement
01120 {
01121   private:
01122     std::string condition;
01123     std::string bannerComment;
01124     std::string rightComment;
01125   public:
01126     GatesizesNode() {applyDefaults();}
01127     GatesizesNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01128     virtual ~GatesizesNode() {}
01131     virtual const char *getTagName() const {return "gatesizes";}
01132     virtual int getTagCode() const {return NED_GATESIZES;}
01133     virtual int getNumAttributes() const;
01134     virtual const char *getAttributeName(int k) const;
01135     virtual const char *getAttribute(int k) const;
01136     virtual void setAttribute(int k, const char *val);
01137     virtual const char *getAttributeDefault(int k) const;
01139 
01142     const char * getCondition() const  {return condition.c_str();}
01143     void setCondition(const char * val)  {condition = val;}
01144     const char * getBannerComment() const  {return bannerComment.c_str();}
01145     void setBannerComment(const char * val)  {bannerComment = val;}
01146     const char * getRightComment() const  {return rightComment.c_str();}
01147     void setRightComment(const char * val)  {rightComment = val;}
01148 
01149     virtual GatesizesNode *getNextGatesizesNodeSibling() const;
01150     virtual ExpressionNode *getFirstExpressionChild() const;
01151     virtual GatesizeNode *getFirstGatesizeChild() const;
01153 };
01154 
01169 class GatesizeNode : public NEDElement
01170 {
01171   private:
01172     std::string name;
01173     std::string vectorSize;
01174     std::string bannerComment;
01175     std::string rightComment;
01176   public:
01177     GatesizeNode() {applyDefaults();}
01178     GatesizeNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01179     virtual ~GatesizeNode() {}
01182     virtual const char *getTagName() const {return "gatesize";}
01183     virtual int getTagCode() const {return NED_GATESIZE;}
01184     virtual int getNumAttributes() const;
01185     virtual const char *getAttributeName(int k) const;
01186     virtual const char *getAttribute(int k) const;
01187     virtual void setAttribute(int k, const char *val);
01188     virtual const char *getAttributeDefault(int k) const;
01190 
01193     const char * getName() const  {return name.c_str();}
01194     void setName(const char * val)  {name = val;}
01195     const char * getVectorSize() const  {return vectorSize.c_str();}
01196     void setVectorSize(const char * val)  {vectorSize = val;}
01197     const char * getBannerComment() const  {return bannerComment.c_str();}
01198     void setBannerComment(const char * val)  {bannerComment = val;}
01199     const char * getRightComment() const  {return rightComment.c_str();}
01200     void setRightComment(const char * val)  {rightComment = val;}
01201 
01202     virtual GatesizeNode *getNextGatesizeNodeSibling() const;
01203     virtual ExpressionNode *getFirstExpressionChild() const;
01205 };
01206 
01220 class SubstmachinesNode : public NEDElement
01221 {
01222   private:
01223     std::string condition;
01224     std::string bannerComment;
01225     std::string rightComment;
01226   public:
01227     SubstmachinesNode() {applyDefaults();}
01228     SubstmachinesNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01229     virtual ~SubstmachinesNode() {}
01232     virtual const char *getTagName() const {return "substmachines";}
01233     virtual int getTagCode() const {return NED_SUBSTMACHINES;}
01234     virtual int getNumAttributes() const;
01235     virtual const char *getAttributeName(int k) const;
01236     virtual const char *getAttribute(int k) const;
01237     virtual void setAttribute(int k, const char *val);
01238     virtual const char *getAttributeDefault(int k) const;
01240 
01243     const char * getCondition() const  {return condition.c_str();}
01244     void setCondition(const char * val)  {condition = val;}
01245     const char * getBannerComment() const  {return bannerComment.c_str();}
01246     void setBannerComment(const char * val)  {bannerComment = val;}
01247     const char * getRightComment() const  {return rightComment.c_str();}
01248     void setRightComment(const char * val)  {rightComment = val;}
01249 
01250     virtual SubstmachinesNode *getNextSubstmachinesNodeSibling() const;
01251     virtual ExpressionNode *getFirstExpressionChild() const;
01252     virtual SubstmachineNode *getFirstSubstmachineChild() const;
01254 };
01255 
01269 class SubstmachineNode : public NEDElement
01270 {
01271   private:
01272     std::string name;
01273     std::string bannerComment;
01274     std::string rightComment;
01275   public:
01276     SubstmachineNode() {applyDefaults();}
01277     SubstmachineNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01278     virtual ~SubstmachineNode() {}
01281     virtual const char *getTagName() const {return "substmachine";}
01282     virtual int getTagCode() const {return NED_SUBSTMACHINE;}
01283     virtual int getNumAttributes() const;
01284     virtual const char *getAttributeName(int k) const;
01285     virtual const char *getAttribute(int k) const;
01286     virtual void setAttribute(int k, const char *val);
01287     virtual const char *getAttributeDefault(int k) const;
01289 
01292     const char * getName() const  {return name.c_str();}
01293     void setName(const char * val)  {name = val;}
01294     const char * getBannerComment() const  {return bannerComment.c_str();}
01295     void setBannerComment(const char * val)  {bannerComment = val;}
01296     const char * getRightComment() const  {return rightComment.c_str();}
01297     void setRightComment(const char * val)  {rightComment = val;}
01298 
01299     virtual SubstmachineNode *getNextSubstmachineNodeSibling() const;
01301 };
01302 
01316 class ConnectionsNode : public NEDElement
01317 {
01318   private:
01319     bool checkUnconnected;
01320     std::string bannerComment;
01321     std::string rightComment;
01322   public:
01323     ConnectionsNode() {applyDefaults();}
01324     ConnectionsNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01325     virtual ~ConnectionsNode() {}
01328     virtual const char *getTagName() const {return "connections";}
01329     virtual int getTagCode() const {return NED_CONNECTIONS;}
01330     virtual int getNumAttributes() const;
01331     virtual const char *getAttributeName(int k) const;
01332     virtual const char *getAttribute(int k) const;
01333     virtual void setAttribute(int k, const char *val);
01334     virtual const char *getAttributeDefault(int k) const;
01336 
01339     bool getCheckUnconnected() const  {return checkUnconnected;}
01340     void setCheckUnconnected(bool val)  {checkUnconnected = val;}
01341     const char * getBannerComment() const  {return bannerComment.c_str();}
01342     void setBannerComment(const char * val)  {bannerComment = val;}
01343     const char * getRightComment() const  {return rightComment.c_str();}
01344     void setRightComment(const char * val)  {rightComment = val;}
01345 
01346     virtual ConnectionsNode *getNextConnectionsNodeSibling() const;
01347     virtual ConnectionNode *getFirstConnectionChild() const;
01348     virtual ForLoopNode *getFirstForLoopChild() const;
01350 };
01351 
01374 class ConnectionNode : public NEDElement
01375 {
01376   private:
01377     std::string condition;
01378     std::string srcModule;
01379     std::string srcModuleIndex;
01380     std::string srcGate;
01381     std::string srcGateIndex;
01382     std::string destModule;
01383     std::string destModuleIndex;
01384     std::string destGate;
01385     std::string destGateIndex;
01386     int arrowDirection;
01387     std::string bannerComment;
01388     std::string rightComment;
01389   public:
01390     ConnectionNode() {applyDefaults();}
01391     ConnectionNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01392     virtual ~ConnectionNode() {}
01395     virtual const char *getTagName() const {return "connection";}
01396     virtual int getTagCode() const {return NED_CONNECTION;}
01397     virtual int getNumAttributes() const;
01398     virtual const char *getAttributeName(int k) const;
01399     virtual const char *getAttribute(int k) const;
01400     virtual void setAttribute(int k, const char *val);
01401     virtual const char *getAttributeDefault(int k) const;
01403 
01406     const char * getCondition() const  {return condition.c_str();}
01407     void setCondition(const char * val)  {condition = val;}
01408     const char * getSrcModule() const  {return srcModule.c_str();}
01409     void setSrcModule(const char * val)  {srcModule = val;}
01410     const char * getSrcModuleIndex() const  {return srcModuleIndex.c_str();}
01411     void setSrcModuleIndex(const char * val)  {srcModuleIndex = val;}
01412     const char * getSrcGate() const  {return srcGate.c_str();}
01413     void setSrcGate(const char * val)  {srcGate = val;}
01414     const char * getSrcGateIndex() const  {return srcGateIndex.c_str();}
01415     void setSrcGateIndex(const char * val)  {srcGateIndex = val;}
01416     const char * getDestModule() const  {return destModule.c_str();}
01417     void setDestModule(const char * val)  {destModule = val;}
01418     const char * getDestModuleIndex() const  {return destModuleIndex.c_str();}
01419     void setDestModuleIndex(const char * val)  {destModuleIndex = val;}
01420     const char * getDestGate() const  {return destGate.c_str();}
01421     void setDestGate(const char * val)  {destGate = val;}
01422     const char * getDestGateIndex() const  {return destGateIndex.c_str();}
01423     void setDestGateIndex(const char * val)  {destGateIndex = val;}
01424     int getArrowDirection() const  {return arrowDirection;}
01425     void setArrowDirection(int val)  {arrowDirection = val;}
01426     const char * getBannerComment() const  {return bannerComment.c_str();}
01427     void setBannerComment(const char * val)  {bannerComment = val;}
01428     const char * getRightComment() const  {return rightComment.c_str();}
01429     void setRightComment(const char * val)  {rightComment = val;}
01430 
01431     virtual ConnectionNode *getNextConnectionNodeSibling() const;
01432     virtual ExpressionNode *getFirstExpressionChild() const;
01433     virtual ConnAttrNode *getFirstConnAttrChild() const;
01434     virtual DisplayStringNode *getFirstDisplayStringChild() const;
01436 };
01437 
01451 class ConnAttrNode : public NEDElement
01452 {
01453   private:
01454     std::string name;
01455     std::string value;
01456     std::string rightComment;
01457   public:
01458     ConnAttrNode() {applyDefaults();}
01459     ConnAttrNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01460     virtual ~ConnAttrNode() {}
01463     virtual const char *getTagName() const {return "conn-attr";}
01464     virtual int getTagCode() const {return NED_CONN_ATTR;}
01465     virtual int getNumAttributes() const;
01466     virtual const char *getAttributeName(int k) const;
01467     virtual const char *getAttribute(int k) const;
01468     virtual void setAttribute(int k, const char *val);
01469     virtual const char *getAttributeDefault(int k) const;
01471 
01474     const char * getName() const  {return name.c_str();}
01475     void setName(const char * val)  {name = val;}
01476     const char * getValue() const  {return value.c_str();}
01477     void setValue(const char * val)  {value = val;}
01478     const char * getRightComment() const  {return rightComment.c_str();}
01479     void setRightComment(const char * val)  {rightComment = val;}
01480 
01481     virtual ConnAttrNode *getNextConnAttrNodeSibling() const;
01482     virtual ExpressionNode *getFirstExpressionChild() const;
01484 };
01485 
01499 class ForLoopNode : public NEDElement
01500 {
01501   private:
01502     std::string bannerComment;
01503     std::string rightComment;
01504     std::string trailingComment;
01505   public:
01506     ForLoopNode() {applyDefaults();}
01507     ForLoopNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01508     virtual ~ForLoopNode() {}
01511     virtual const char *getTagName() const {return "for-loop";}
01512     virtual int getTagCode() const {return NED_FOR_LOOP;}
01513     virtual int getNumAttributes() const;
01514     virtual const char *getAttributeName(int k) const;
01515     virtual const char *getAttribute(int k) const;
01516     virtual void setAttribute(int k, const char *val);
01517     virtual const char *getAttributeDefault(int k) const;
01519 
01522     const char * getBannerComment() const  {return bannerComment.c_str();}
01523     void setBannerComment(const char * val)  {bannerComment = val;}
01524     const char * getRightComment() const  {return rightComment.c_str();}
01525     void setRightComment(const char * val)  {rightComment = val;}
01526     const char * getTrailingComment() const  {return trailingComment.c_str();}
01527     void setTrailingComment(const char * val)  {trailingComment = val;}
01528 
01529     virtual ForLoopNode *getNextForLoopNodeSibling() const;
01530     virtual LoopVarNode *getFirstLoopVarChild() const;
01531     virtual ConnectionNode *getFirstConnectionChild() const;
01533 };
01534 
01550 class LoopVarNode : public NEDElement
01551 {
01552   private:
01553     std::string paramName;
01554     std::string fromValue;
01555     std::string toValue;
01556     std::string bannerComment;
01557     std::string rightComment;
01558   public:
01559     LoopVarNode() {applyDefaults();}
01560     LoopVarNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01561     virtual ~LoopVarNode() {}
01564     virtual const char *getTagName() const {return "loop-var";}
01565     virtual int getTagCode() const {return NED_LOOP_VAR;}
01566     virtual int getNumAttributes() const;
01567     virtual const char *getAttributeName(int k) const;
01568     virtual const char *getAttribute(int k) const;
01569     virtual void setAttribute(int k, const char *val);
01570     virtual const char *getAttributeDefault(int k) const;
01572 
01575     const char * getParamName() const  {return paramName.c_str();}
01576     void setParamName(const char * val)  {paramName = val;}
01577     const char * getFromValue() const  {return fromValue.c_str();}
01578     void setFromValue(const char * val)  {fromValue = val;}
01579     const char * getToValue() const  {return toValue.c_str();}
01580     void setToValue(const char * val)  {toValue = val;}
01581     const char * getBannerComment() const  {return bannerComment.c_str();}
01582     void setBannerComment(const char * val)  {bannerComment = val;}
01583     const char * getRightComment() const  {return rightComment.c_str();}
01584     void setRightComment(const char * val)  {rightComment = val;}
01585 
01586     virtual LoopVarNode *getNextLoopVarNodeSibling() const;
01587     virtual ExpressionNode *getFirstExpressionChild() const;
01589 };
01590 
01604 class DisplayStringNode : public NEDElement
01605 {
01606   private:
01607     std::string value;
01608     std::string bannerComment;
01609     std::string rightComment;
01610   public:
01611     DisplayStringNode() {applyDefaults();}
01612     DisplayStringNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01613     virtual ~DisplayStringNode() {}
01616     virtual const char *getTagName() const {return "display-string";}
01617     virtual int getTagCode() const {return NED_DISPLAY_STRING;}
01618     virtual int getNumAttributes() const;
01619     virtual const char *getAttributeName(int k) const;
01620     virtual const char *getAttribute(int k) const;
01621     virtual void setAttribute(int k, const char *val);
01622     virtual const char *getAttributeDefault(int k) const;
01624 
01627     const char * getValue() const  {return value.c_str();}
01628     void setValue(const char * val)  {value = val;}
01629     const char * getBannerComment() const  {return bannerComment.c_str();}
01630     void setBannerComment(const char * val)  {bannerComment = val;}
01631     const char * getRightComment() const  {return rightComment.c_str();}
01632     void setRightComment(const char * val)  {rightComment = val;}
01633 
01634     virtual DisplayStringNode *getNextDisplayStringNodeSibling() const;
01636 };
01637 
01649 class ExpressionNode : public NEDElement
01650 {
01651   private:
01652     std::string target;
01653   public:
01654     ExpressionNode() {applyDefaults();}
01655     ExpressionNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01656     virtual ~ExpressionNode() {}
01659     virtual const char *getTagName() const {return "expression";}
01660     virtual int getTagCode() const {return NED_EXPRESSION;}
01661     virtual int getNumAttributes() const;
01662     virtual const char *getAttributeName(int k) const;
01663     virtual const char *getAttribute(int k) const;
01664     virtual void setAttribute(int k, const char *val);
01665     virtual const char *getAttributeDefault(int k) const;
01667 
01670     const char * getTarget() const  {return target.c_str();}
01671     void setTarget(const char * val)  {target = val;}
01672 
01673     virtual ExpressionNode *getNextExpressionNodeSibling() const;
01674     virtual OperatorNode *getFirstOperatorChild() const;
01675     virtual FunctionNode *getFirstFunctionChild() const;
01676     virtual ParamRefNode *getFirstParamRefChild() const;
01677     virtual IdentNode *getFirstIdentChild() const;
01678     virtual ConstNode *getFirstConstChild() const;
01680 };
01681 
01693 class OperatorNode : public NEDElement
01694 {
01695   private:
01696     std::string name;
01697   public:
01698     OperatorNode() {applyDefaults();}
01699     OperatorNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01700     virtual ~OperatorNode() {}
01703     virtual const char *getTagName() const {return "operator";}
01704     virtual int getTagCode() const {return NED_OPERATOR;}
01705     virtual int getNumAttributes() const;
01706     virtual const char *getAttributeName(int k) const;
01707     virtual const char *getAttribute(int k) const;
01708     virtual void setAttribute(int k, const char *val);
01709     virtual const char *getAttributeDefault(int k) const;
01711 
01714     const char * getName() const  {return name.c_str();}
01715     void setName(const char * val)  {name = val;}
01716 
01717     virtual OperatorNode *getNextOperatorNodeSibling() const;
01718     virtual OperatorNode *getFirstOperatorChild() const;
01719     virtual FunctionNode *getFirstFunctionChild() const;
01720     virtual ParamRefNode *getFirstParamRefChild() const;
01721     virtual IdentNode *getFirstIdentChild() const;
01722     virtual ConstNode *getFirstConstChild() const;
01724 };
01725 
01737 class FunctionNode : public NEDElement
01738 {
01739   private:
01740     std::string name;
01741   public:
01742     FunctionNode() {applyDefaults();}
01743     FunctionNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01744     virtual ~FunctionNode() {}
01747     virtual const char *getTagName() const {return "function";}
01748     virtual int getTagCode() const {return NED_FUNCTION;}
01749     virtual int getNumAttributes() const;
01750     virtual const char *getAttributeName(int k) const;
01751     virtual const char *getAttribute(int k) const;
01752     virtual void setAttribute(int k, const char *val);
01753     virtual const char *getAttributeDefault(int k) const;
01755 
01758     const char * getName() const  {return name.c_str();}
01759     void setName(const char * val)  {name = val;}
01760 
01761     virtual FunctionNode *getNextFunctionNodeSibling() const;
01762     virtual OperatorNode *getFirstOperatorChild() const;
01763     virtual FunctionNode *getFirstFunctionChild() const;
01764     virtual ParamRefNode *getFirstParamRefChild() const;
01765     virtual IdentNode *getFirstIdentChild() const;
01766     virtual ConstNode *getFirstConstChild() const;
01768 };
01769 
01786 class ParamRefNode : public NEDElement
01787 {
01788   private:
01789     std::string module;
01790     std::string moduleIndex;
01791     std::string paramName;
01792     std::string paramIndex;
01793     bool isRef;
01794     bool isAncestor;
01795   public:
01796     ParamRefNode() {applyDefaults();}
01797     ParamRefNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01798     virtual ~ParamRefNode() {}
01801     virtual const char *getTagName() const {return "param-ref";}
01802     virtual int getTagCode() const {return NED_PARAM_REF;}
01803     virtual int getNumAttributes() const;
01804     virtual const char *getAttributeName(int k) const;
01805     virtual const char *getAttribute(int k) const;
01806     virtual void setAttribute(int k, const char *val);
01807     virtual const char *getAttributeDefault(int k) const;
01809 
01812     const char * getModule() const  {return module.c_str();}
01813     void setModule(const char * val)  {module = val;}
01814     const char * getModuleIndex() const  {return moduleIndex.c_str();}
01815     void setModuleIndex(const char * val)  {moduleIndex = val;}
01816     const char * getParamName() const  {return paramName.c_str();}
01817     void setParamName(const char * val)  {paramName = val;}
01818     const char * getParamIndex() const  {return paramIndex.c_str();}
01819     void setParamIndex(const char * val)  {paramIndex = val;}
01820     bool getIsRef() const  {return isRef;}
01821     void setIsRef(bool val)  {isRef = val;}
01822     bool getIsAncestor() const  {return isAncestor;}
01823     void setIsAncestor(bool val)  {isAncestor = val;}
01824 
01825     virtual ParamRefNode *getNextParamRefNodeSibling() const;
01826     virtual ExpressionNode *getFirstExpressionChild() const;
01828 };
01829 
01841 class IdentNode : public NEDElement
01842 {
01843   private:
01844     std::string name;
01845   public:
01846     IdentNode() {applyDefaults();}
01847     IdentNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01848     virtual ~IdentNode() {}
01851     virtual const char *getTagName() const {return "ident";}
01852     virtual int getTagCode() const {return NED_IDENT;}
01853     virtual int getNumAttributes() const;
01854     virtual const char *getAttributeName(int k) const;
01855     virtual const char *getAttribute(int k) const;
01856     virtual void setAttribute(int k, const char *val);
01857     virtual const char *getAttributeDefault(int k) const;
01859 
01862     const char * getName() const  {return name.c_str();}
01863     void setName(const char * val)  {name = val;}
01864 
01865     virtual IdentNode *getNextIdentNodeSibling() const;
01867 };
01868 
01882 class ConstNode : public NEDElement
01883 {
01884   private:
01885     int type;
01886     std::string text;
01887     std::string value;
01888   public:
01889     ConstNode() {applyDefaults();}
01890     ConstNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01891     virtual ~ConstNode() {}
01894     virtual const char *getTagName() const {return "const";}
01895     virtual int getTagCode() const {return NED_CONST;}
01896     virtual int getNumAttributes() const;
01897     virtual const char *getAttributeName(int k) const;
01898     virtual const char *getAttribute(int k) const;
01899     virtual void setAttribute(int k, const char *val);
01900     virtual const char *getAttributeDefault(int k) const;
01902 
01905     int getType() const  {return type;}
01906     void setType(int val)  {type = val;}
01907     const char * getText() const  {return text.c_str();}
01908     void setText(const char * val)  {text = val;}
01909     const char * getValue() const  {return value.c_str();}
01910     void setValue(const char * val)  {value = val;}
01911 
01912     virtual ConstNode *getNextConstNodeSibling() const;
01914 };
01915 
01930 class CppincludeNode : public NEDElement
01931 {
01932   private:
01933     std::string filename;
01934     std::string bannerComment;
01935     std::string rightComment;
01936     std::string trailingComment;
01937   public:
01938     CppincludeNode() {applyDefaults();}
01939     CppincludeNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01940     virtual ~CppincludeNode() {}
01943     virtual const char *getTagName() const {return "cppinclude";}
01944     virtual int getTagCode() const {return NED_CPPINCLUDE;}
01945     virtual int getNumAttributes() const;
01946     virtual const char *getAttributeName(int k) const;
01947     virtual const char *getAttribute(int k) const;
01948     virtual void setAttribute(int k, const char *val);
01949     virtual const char *getAttributeDefault(int k) const;
01951 
01954     const char * getFilename() const  {return filename.c_str();}
01955     void setFilename(const char * val)  {filename = val;}
01956     const char * getBannerComment() const  {return bannerComment.c_str();}
01957     void setBannerComment(const char * val)  {bannerComment = val;}
01958     const char * getRightComment() const  {return rightComment.c_str();}
01959     void setRightComment(const char * val)  {rightComment = val;}
01960     const char * getTrailingComment() const  {return trailingComment.c_str();}
01961     void setTrailingComment(const char * val)  {trailingComment = val;}
01962 
01963     virtual CppincludeNode *getNextCppincludeNodeSibling() const;
01965 };
01966 
01981 class CppStructNode : public NEDElement
01982 {
01983   private:
01984     std::string name;
01985     std::string bannerComment;
01986     std::string rightComment;
01987     std::string trailingComment;
01988   public:
01989     CppStructNode() {applyDefaults();}
01990     CppStructNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01991     virtual ~CppStructNode() {}
01994     virtual const char *getTagName() const {return "cpp-struct";}
01995     virtual int getTagCode() const {return NED_CPP_STRUCT;}
01996     virtual int getNumAttributes() const;
01997     virtual const char *getAttributeName(int k) const;
01998     virtual const char *getAttribute(int k) const;
01999     virtual void setAttribute(int k, const char *val);
02000     virtual const char *getAttributeDefault(int k) const;
02002 
02005     const char * getName() const  {return name.c_str();}
02006     void setName(const char * val)  {name = val;}
02007     const char * getBannerComment() const  {return bannerComment.c_str();}
02008     void setBannerComment(const char * val)  {bannerComment = val;}
02009     const char * getRightComment() const  {return rightComment.c_str();}
02010     void setRightComment(const char * val)  {rightComment = val;}
02011     const char * getTrailingComment() const  {return trailingComment.c_str();}
02012     void setTrailingComment(const char * val)  {trailingComment = val;}
02013 
02014     virtual CppStructNode *getNextCppStructNodeSibling() const;
02016 };
02017 
02032 class CppCobjectNode : public NEDElement
02033 {
02034   private:
02035     std::string name;
02036     std::string bannerComment;
02037     std::string rightComment;
02038     std::string trailingComment;
02039   public:
02040     CppCobjectNode() {applyDefaults();}
02041     CppCobjectNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02042     virtual ~CppCobjectNode() {}
02045     virtual const char *getTagName() const {return "cpp-cobject";}
02046     virtual int getTagCode() const {return NED_CPP_COBJECT;}
02047     virtual int getNumAttributes() const;
02048     virtual const char *getAttributeName(int k) const;
02049     virtual const char *getAttribute(int k) const;
02050     virtual void setAttribute(int k, const char *val);
02051     virtual const char *getAttributeDefault(int k) const;
02053 
02056     const char * getName() const  {return name.c_str();}
02057     void setName(const char * val)  {name = val;}
02058     const char * getBannerComment() const  {return bannerComment.c_str();}
02059     void setBannerComment(const char * val)  {bannerComment = val;}
02060     const char * getRightComment() const  {return rightComment.c_str();}
02061     void setRightComment(const char * val)  {rightComment = val;}
02062     const char * getTrailingComment() const  {return trailingComment.c_str();}
02063     void setTrailingComment(const char * val)  {trailingComment = val;}
02064 
02065     virtual CppCobjectNode *getNextCppCobjectNodeSibling() const;
02067 };
02068 
02083 class CppNoncobjectNode : public NEDElement
02084 {
02085   private:
02086     std::string name;
02087     std::string bannerComment;
02088     std::string rightComment;
02089     std::string trailingComment;
02090   public:
02091     CppNoncobjectNode() {applyDefaults();}
02092     CppNoncobjectNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02093     virtual ~CppNoncobjectNode() {}
02096     virtual const char *getTagName() const {return "cpp-noncobject";}
02097     virtual int getTagCode() const {return NED_CPP_NONCOBJECT;}
02098     virtual int getNumAttributes() const;
02099     virtual const char *getAttributeName(int k) const;
02100     virtual const char *getAttribute(int k) const;
02101     virtual void setAttribute(int k, const char *val);
02102     virtual const char *getAttributeDefault(int k) const;
02104 
02107     const char * getName() const  {return name.c_str();}
02108     void setName(const char * val)  {name = val;}
02109     const char * getBannerComment() const  {return bannerComment.c_str();}
02110     void setBannerComment(const char * val)  {bannerComment = val;}
02111     const char * getRightComment() const  {return rightComment.c_str();}
02112     void setRightComment(const char * val)  {rightComment = val;}
02113     const char * getTrailingComment() const  {return trailingComment.c_str();}
02114     void setTrailingComment(const char * val)  {trailingComment = val;}
02115 
02116     virtual CppNoncobjectNode *getNextCppNoncobjectNodeSibling() const;
02118 };
02119 
02135 class EnumNode : public NEDElement
02136 {
02137   private:
02138     std::string name;
02139     std::string extendsName;
02140     std::string bannerComment;
02141     std::string rightComment;
02142     std::string trailingComment;
02143   public:
02144     EnumNode() {applyDefaults();}
02145     EnumNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02146     virtual ~EnumNode() {}
02149     virtual const char *getTagName() const {return "enum";}
02150     virtual int getTagCode() const {return NED_ENUM;}
02151     virtual int getNumAttributes() const;
02152     virtual const char *getAttributeName(int k) const;
02153     virtual const char *getAttribute(int k) const;
02154     virtual void setAttribute(int k, const char *val);
02155     virtual const char *getAttributeDefault(int k) const;
02157 
02160     const char * getName() const  {return name.c_str();}
02161     void setName(const char * val)  {name = val;}
02162     const char * getExtendsName() const  {return extendsName.c_str();}
02163     void setExtendsName(const char * val)  {extendsName = val;}
02164     const char * getBannerComment() const  {return bannerComment.c_str();}
02165     void setBannerComment(const char * val)  {bannerComment = val;}
02166     const char * getRightComment() const  {return rightComment.c_str();}
02167     void setRightComment(const char * val)  {rightComment = val;}
02168     const char * getTrailingComment() const  {return trailingComment.c_str();}
02169     void setTrailingComment(const char * val)  {trailingComment = val;}
02170 
02171     virtual EnumNode *getNextEnumNodeSibling() const;
02172     virtual EnumFieldsNode *getFirstEnumFieldsChild() const;
02174 };
02175 
02188 class EnumFieldsNode : public NEDElement
02189 {
02190   private:
02191     std::string bannerComment;
02192     std::string rightComment;
02193   public:
02194     EnumFieldsNode() {applyDefaults();}
02195     EnumFieldsNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02196     virtual ~EnumFieldsNode() {}
02199     virtual const char *getTagName() const {return "enum-fields";}
02200     virtual int getTagCode() const {return NED_ENUM_FIELDS;}
02201     virtual int getNumAttributes() const;
02202     virtual const char *getAttributeName(int k) const;
02203     virtual const char *getAttribute(int k) const;
02204     virtual void setAttribute(int k, const char *val);
02205     virtual const char *getAttributeDefault(int k) const;
02207 
02210     const char * getBannerComment() const  {return bannerComment.c_str();}
02211     void setBannerComment(const char * val)  {bannerComment = val;}
02212     const char * getRightComment() const  {return rightComment.c_str();}
02213     void setRightComment(const char * val)  {rightComment = val;}
02214 
02215     virtual EnumFieldsNode *getNextEnumFieldsNodeSibling() const;
02216     virtual EnumFieldNode *getFirstEnumFieldChild() const;
02218 };
02219 
02234 class EnumFieldNode : public NEDElement
02235 {
02236   private:
02237     std::string name;
02238     std::string value;
02239     std::string bannerComment;
02240     std::string rightComment;
02241   public:
02242     EnumFieldNode() {applyDefaults();}
02243     EnumFieldNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02244     virtual ~EnumFieldNode() {}
02247     virtual const char *getTagName() const {return "enum-field";}
02248     virtual int getTagCode() const {return NED_ENUM_FIELD;}
02249     virtual int getNumAttributes() const;
02250     virtual const char *getAttributeName(int k) const;
02251     virtual const char *getAttribute(int k) const;
02252     virtual void setAttribute(int k, const char *val);
02253     virtual const char *getAttributeDefault(int k) const;
02255 
02258     const char * getName() const  {return name.c_str();}
02259     void setName(const char * val)  {name = val;}
02260     const char * getValue() const  {return value.c_str();}
02261     void setValue(const char * val)  {value = val;}
02262     const char * getBannerComment() const  {return bannerComment.c_str();}
02263     void setBannerComment(const char * val)  {bannerComment = val;}
02264     const char * getRightComment() const  {return rightComment.c_str();}
02265     void setRightComment(const char * val)  {rightComment = val;}
02266 
02267     virtual EnumFieldNode *getNextEnumFieldNodeSibling() const;
02269 };
02270 
02286 class MessageNode : public NEDElement
02287 {
02288   private:
02289     std::string name;
02290     std::string extendsName;
02291     std::string bannerComment;
02292     std::string rightComment;
02293     std::string trailingComment;
02294   public:
02295     MessageNode() {applyDefaults();}
02296     MessageNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02297     virtual ~MessageNode() {}
02300     virtual const char *getTagName() const {return "message";}
02301     virtual int getTagCode() const {return NED_MESSAGE;}
02302     virtual int getNumAttributes() const;
02303     virtual const char *getAttributeName(int k) const;
02304     virtual const char *getAttribute(int k) const;
02305     virtual void setAttribute(int k, const char *val);
02306     virtual const char *getAttributeDefault(int k) const;
02308 
02311     const char * getName() const  {return name.c_str();}
02312     void setName(const char * val)  {name = val;}
02313     const char * getExtendsName() const  {return extendsName.c_str();}
02314     void setExtendsName(const char * val)  {extendsName = val;}
02315     const char * getBannerComment() const  {return bannerComment.c_str();}
02316     void setBannerComment(const char * val)  {bannerComment = val;}
02317     const char * getRightComment() const  {return rightComment.c_str();}
02318     void setRightComment(const char * val)  {rightComment = val;}
02319     const char * getTrailingComment() const  {return trailingComment.c_str();}
02320     void setTrailingComment(const char * val)  {trailingComment = val;}
02321 
02322     virtual MessageNode *getNextMessageNodeSibling() const;
02323     virtual PropertiesNode *getFirstPropertiesChild() const;
02324     virtual FieldsNode *getFirstFieldsChild() const;
02326 };
02327 
02343 class ClassNode : public NEDElement
02344 {
02345   private:
02346     std::string name;
02347     std::string extendsName;
02348     std::string bannerComment;
02349     std::string rightComment;
02350     std::string trailingComment;
02351   public:
02352     ClassNode() {applyDefaults();}
02353     ClassNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02354     virtual ~ClassNode() {}
02357     virtual const char *getTagName() const {return "class";}
02358     virtual int getTagCode() const {return NED_CLASS;}
02359     virtual int getNumAttributes() const;
02360     virtual const char *getAttributeName(int k) const;
02361     virtual const char *getAttribute(int k) const;
02362     virtual void setAttribute(int k, const char *val);
02363     virtual const char *getAttributeDefault(int k) const;
02365 
02368     const char * getName() const  {return name.c_str();}
02369     void setName(const char * val)  {name = val;}
02370     const char * getExtendsName() const  {return extendsName.c_str();}
02371     void setExtendsName(const char * val)  {extendsName = val;}
02372     const char * getBannerComment() const  {return bannerComment.c_str();}
02373     void setBannerComment(const char * val)  {bannerComment = val;}
02374     const char * getRightComment() const  {return rightComment.c_str();}
02375     void setRightComment(const char * val)  {rightComment = val;}
02376     const char * getTrailingComment() const  {return trailingComment.c_str();}
02377     void setTrailingComment(const char * val)  {trailingComment = val;}
02378 
02379     virtual ClassNode *getNextClassNodeSibling() const;
02380     virtual PropertiesNode *getFirstPropertiesChild() const;
02381     virtual FieldsNode *getFirstFieldsChild() const;
02383 };
02384 
02400 class StructNode : public NEDElement
02401 {
02402   private:
02403     std::string name;
02404     std::string extendsName;
02405     std::string bannerComment;
02406     std::string rightComment;
02407     std::string trailingComment;
02408   public:
02409     StructNode() {applyDefaults();}
02410     StructNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02411     virtual ~StructNode() {}
02414     virtual const char *getTagName() const {return "struct";}
02415     virtual int getTagCode() const {return NED_STRUCT;}
02416     virtual int getNumAttributes() const;
02417     virtual const char *getAttributeName(int k) const;
02418     virtual const char *getAttribute(int k) const;
02419     virtual void setAttribute(int k, const char *val);
02420     virtual const char *getAttributeDefault(int k) const;
02422 
02425     const char * getName() const  {return name.c_str();}
02426     void setName(const char * val)  {name = val;}
02427     const char * getExtendsName() const  {return extendsName.c_str();}
02428     void setExtendsName(const char * val)  {extendsName = val;}
02429     const char * getBannerComment() const  {return bannerComment.c_str();}
02430     void setBannerComment(const char * val)  {bannerComment = val;}
02431     const char * getRightComment() const  {return rightComment.c_str();}
02432     void setRightComment(const char * val)  {rightComment = val;}
02433     const char * getTrailingComment() const  {return trailingComment.c_str();}
02434     void setTrailingComment(const char * val)  {trailingComment = val;}
02435 
02436     virtual StructNode *getNextStructNodeSibling() const;
02437     virtual PropertiesNode *getFirstPropertiesChild() const;
02438     virtual FieldsNode *getFirstFieldsChild() const;
02440 };
02441 
02454 class FieldsNode : public NEDElement
02455 {
02456   private:
02457     std::string bannerComment;
02458     std::string rightComment;
02459   public:
02460     FieldsNode() {applyDefaults();}
02461     FieldsNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02462     virtual ~FieldsNode() {}
02465     virtual const char *getTagName() const {return "fields";}
02466     virtual int getTagCode() const {return NED_FIELDS;}
02467     virtual int getNumAttributes() const;
02468     virtual const char *getAttributeName(int k) const;
02469     virtual const char *getAttribute(int k) const;
02470     virtual void setAttribute(int k, const char *val);
02471     virtual const char *getAttributeDefault(int k) const;
02473 
02476     const char * getBannerComment() const  {return bannerComment.c_str();}
02477     void setBannerComment(const char * val)  {bannerComment = val;}
02478     const char * getRightComment() const  {return rightComment.c_str();}
02479     void setRightComment(const char * val)  {rightComment = val;}
02480 
02481     virtual FieldsNode *getNextFieldsNodeSibling() const;
02482     virtual FieldNode *getFirstFieldChild() const;
02484 };
02485 
02505 class FieldNode : public NEDElement
02506 {
02507   private:
02508     std::string name;
02509     std::string dataType;
02510     bool isAbstract;
02511     bool isVector;
02512     std::string vectorSize;
02513     std::string enumName;
02514     std::string defaultValue;
02515     std::string bannerComment;
02516     std::string rightComment;
02517   public:
02518     FieldNode() {applyDefaults();}
02519     FieldNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02520     virtual ~FieldNode() {}
02523     virtual const char *getTagName() const {return "field";}
02524     virtual int getTagCode() const {return NED_FIELD;}
02525     virtual int getNumAttributes() const;
02526     virtual const char *getAttributeName(int k) const;
02527     virtual const char *getAttribute(int k) const;
02528     virtual void setAttribute(int k, const char *val);
02529     virtual const char *getAttributeDefault(int k) const;
02531 
02534     const char * getName() const  {return name.c_str();}
02535     void setName(const char * val)  {name = val;}
02536     const char * getDataType() const  {return dataType.c_str();}
02537     void setDataType(const char * val)  {dataType = val;}
02538     bool getIsAbstract() const  {return isAbstract;}
02539     void setIsAbstract(bool val)  {isAbstract = val;}
02540     bool getIsVector() const  {return isVector;}
02541     void setIsVector(bool val)  {isVector = val;}
02542     const char * getVectorSize() const  {return vectorSize.c_str();}
02543     void setVectorSize(const char * val)  {vectorSize = val;}
02544     const char * getEnumName() const  {return enumName.c_str();}
02545     void setEnumName(const char * val)  {enumName = val;}
02546     const char * getDefaultValue() const  {return defaultValue.c_str();}
02547     void setDefaultValue(const char * val)  {defaultValue = val;}
02548     const char * getBannerComment() const  {return bannerComment.c_str();}
02549     void setBannerComment(const char * val)  {bannerComment = val;}
02550     const char * getRightComment() const  {return rightComment.c_str();}
02551     void setRightComment(const char * val)  {rightComment = val;}
02552 
02553     virtual FieldNode *getNextFieldNodeSibling() const;
02555 };
02556 
02569 class PropertiesNode : public NEDElement
02570 {
02571   private:
02572     std::string bannerComment;
02573     std::string rightComment;
02574   public:
02575     PropertiesNode() {applyDefaults();}
02576     PropertiesNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02577     virtual ~PropertiesNode() {}
02580     virtual const char *getTagName() const {return "properties";}
02581     virtual int getTagCode() const {return NED_PROPERTIES;}
02582     virtual int getNumAttributes() const;
02583     virtual const char *getAttributeName(int k) const;
02584     virtual const char *getAttribute(int k) const;
02585     virtual void setAttribute(int k, const char *val);
02586     virtual const char *getAttributeDefault(int k) const;
02588 
02591     const char * getBannerComment() const  {return bannerComment.c_str();}
02592     void setBannerComment(const char * val)  {bannerComment = val;}
02593     const char * getRightComment() const  {return rightComment.c_str();}
02594     void setRightComment(const char * val)  {rightComment = val;}
02595 
02596     virtual PropertiesNode *getNextPropertiesNodeSibling() const;
02597     virtual PropertyNode *getFirstPropertyChild() const;
02599 };
02600 
02615 class PropertyNode : public NEDElement
02616 {
02617   private:
02618     std::string name;
02619     std::string value;
02620     std::string bannerComment;
02621     std::string rightComment;
02622   public:
02623     PropertyNode() {applyDefaults();}
02624     PropertyNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02625     virtual ~PropertyNode() {}
02628     virtual const char *getTagName() const {return "property";}
02629     virtual int getTagCode() const {return NED_PROPERTY;}
02630     virtual int getNumAttributes() const;
02631     virtual const char *getAttributeName(int k) const;
02632     virtual const char *getAttribute(int k) const;
02633     virtual void setAttribute(int k, const char *val);
02634     virtual const char *getAttributeDefault(int k) const;
02636 
02639     const char * getName() const  {return name.c_str();}
02640     void setName(const char * val)  {name = val;}
02641     const char * getValue() const  {return value.c_str();}
02642     void setValue(const char * val)  {value = val;}
02643     const char * getBannerComment() const  {return bannerComment.c_str();}
02644     void setBannerComment(const char * val)  {bannerComment = val;}
02645     const char * getRightComment() const  {return rightComment.c_str();}
02646     void setRightComment(const char * val)  {rightComment = val;}
02647 
02648     virtual PropertyNode *getNextPropertyNodeSibling() const;
02650 };
02651 
02663 class UnknownNode : public NEDElement
02664 {
02665   private:
02666     std::string element;
02667   public:
02668     UnknownNode() {applyDefaults();}
02669     UnknownNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02670     virtual ~UnknownNode() {}
02673     virtual const char *getTagName() const {return "unknown";}
02674     virtual int getTagCode() const {return NED_UNKNOWN;}
02675     virtual int getNumAttributes() const;
02676     virtual const char *getAttributeName(int k) const;
02677     virtual const char *getAttribute(int k) const;
02678     virtual void setAttribute(int k, const char *val);
02679     virtual const char *getAttributeDefault(int k) const;
02681 
02684     const char * getElement() const  {return element.c_str();}
02685     void setElement(const char * val)  {element = val;}
02686 
02687     virtual UnknownNode *getNextUnknownNodeSibling() const;
02689 };
02690 
02696 class NEDElementFactory
02697 {
02698   protected:
02699     static NEDElementFactory *f;
02700   public:
02701     static NEDElementFactory *getInstance();
02702     virtual NEDElement *createNodeWithTag(const char *tagname);
02703     virtual NEDElement *createNodeWithTag(int tagcode);
02704 };
02705 
02706 #endif
02707 

Generated at Mon Jun 16 23:37:40 2003 for OMNeT++NEDXML by doxygen1.2.8.1 written by Dimitri van Heesch, © 1997-2001