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