# nedelements.h

Go to the documentation of this file.

    00001 //==========================================================================
    00002 // Part of the OMNeT++/OMNEST Discrete Event Simulation System
    00003 //
    00004 // Generated from ned.dtd by dtdclassgen.pl
    00005 //
    00006 //==========================================================================
    00007
    00008 /*--------------------------------------------------------------*
    00009   Copyright (C) 2002-2004 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
    00020 #ifndef __NEDELEMENTS_H
    00021 #define __NEDELEMENTS_H
    00022
    00023 #include "nedelement.h"
    00024
    00025 class NedFilesNode;
    00026 class NedFileNode;
    00027 class ImportNode;
    00028 class ImportedFileNode;
    00029 class ChannelNode;
    00030 class ChannelAttrNode;
    00031 class NetworkNode;
    00032 class SimpleModuleNode;
    00033 class CompoundModuleNode;
    00034 class ParamsNode;
    00035 class ParamNode;
    00036 class GatesNode;
    00037 class GateNode;
    00038 class MachinesNode;
    00039 class MachineNode;
    00040 class SubmodulesNode;
    00041 class SubmoduleNode;
    00042 class SubstparamsNode;
    00043 class SubstparamNode;
    00044 class GatesizesNode;
    00045 class GatesizeNode;
    00046 class SubstmachinesNode;
    00047 class SubstmachineNode;
    00048 class ConnectionsNode;
    00049 class ConnectionNode;
    00050 class ConnAttrNode;
    00051 class ForLoopNode;
    00052 class LoopVarNode;
    00053 class DisplayStringNode;
    00054 class ExpressionNode;
    00055 class OperatorNode;
    00056 class FunctionNode;
    00057 class ParamRefNode;
    00058 class IdentNode;
    00059 class ConstNode;
    00060 class CplusplusNode;
    00061 class StructDeclNode;
    00062 class ClassDeclNode;
    00063 class MessageDeclNode;
    00064 class EnumDeclNode;
    00065 class EnumNode;
    00066 class EnumFieldsNode;
    00067 class EnumFieldNode;
    00068 class MessageNode;
    00069 class ClassNode;
    00070 class StructNode;
    00071 class FieldsNode;
    00072 class FieldNode;
    00073 class PropertiesNode;
    00074 class PropertyNode;
    00075 class UnknownNode;
    00076
    00077
    00083 enum NEDElementCode {
    00084     NED_NED_FILES,
    00085     NED_NED_FILE,
    00086     NED_IMPORT,
    00087     NED_IMPORTED_FILE,
    00088     NED_CHANNEL,
    00089     NED_CHANNEL_ATTR,
    00090     NED_NETWORK,
    00091     NED_SIMPLE_MODULE,
    00092     NED_COMPOUND_MODULE,
    00093     NED_PARAMS,
    00094     NED_PARAM,
    00095     NED_GATES,
    00096     NED_GATE,
    00097     NED_MACHINES,
    00098     NED_MACHINE,
    00099     NED_SUBMODULES,
    00100     NED_SUBMODULE,
    00101     NED_SUBSTPARAMS,
    00102     NED_SUBSTPARAM,
    00103     NED_GATESIZES,
    00104     NED_GATESIZE,
    00105     NED_SUBSTMACHINES,
    00106     NED_SUBSTMACHINE,
    00107     NED_CONNECTIONS,
    00108     NED_CONNECTION,
    00109     NED_CONN_ATTR,
    00110     NED_FOR_LOOP,
    00111     NED_LOOP_VAR,
    00112     NED_DISPLAY_STRING,
    00113     NED_EXPRESSION,
    00114     NED_OPERATOR,
    00115     NED_FUNCTION,
    00116     NED_PARAM_REF,
    00117     NED_IDENT,
    00118     NED_CONST,
    00119     NED_CPLUSPLUS,
    00120     NED_STRUCT_DECL,
    00121     NED_CLASS_DECL,
    00122     NED_MESSAGE_DECL,
    00123     NED_ENUM_DECL,
    00124     NED_ENUM,
    00125     NED_ENUM_FIELDS,
    00126     NED_ENUM_FIELD,
    00127     NED_MESSAGE,
    00128     NED_CLASS,
    00129     NED_STRUCT,
    00130     NED_FIELDS,
    00131     NED_FIELD,
    00132     NED_PROPERTIES,
    00133     NED_PROPERTY,
    00134     NED_UNKNOWN
    00135 };
    00136
    00137 enum {NED_GATEDIR_INPUT, NED_GATEDIR_OUTPUT};
    00138 enum {NED_ARROWDIR_LEFT, NED_ARROWDIR_RIGHT};
    00139 enum {NED_CONST_BOOL, NED_CONST_INT, NED_CONST_REAL, NED_CONST_STRING, NED_CONST_TIME};
    00140
    00151 class NedFilesNode : public NEDElement
    00152 {
    00153   private:
    00154   public:
    00157     NedFilesNode() {applyDefaults();}
    00158     NedFilesNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    00159     virtual ~NedFilesNode() {}
    00161
    00164     virtual const char *getTagName() const {return "ned-files";}
    00165     virtual int getTagCode() const {return NED_NED_FILES;}
    00166     virtual int getNumAttributes() const;
    00167     virtual const char *getAttributeName(int k) const;
    00168     virtual const char *getAttribute(int k) const;
    00169     virtual void setAttribute(int k, const char *val);
    00170     virtual const char *getAttributeDefault(int k) const;
    00172
    00175
    00176     virtual NedFilesNode *getNextNedFilesNodeSibling() const;
    00177     virtual NedFilesNode *getFirstNedFilesChild() const;
    00178     virtual NedFileNode *getFirstNedFileChild() const;
    00180 };
    00181
    00198 class NedFileNode : public NEDElement
    00199 {
    00200   private:
    00201     std::string filename;
    00202     std::string sourceCode;
    00203     std::string preferredIndent;
    00204     std::string bannerComment;
    00205   public:
    00208     NedFileNode() {applyDefaults();}
    00209     NedFileNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    00210     virtual ~NedFileNode() {}
    00212
    00215     virtual const char *getTagName() const {return "ned-file";}
    00216     virtual int getTagCode() const {return NED_NED_FILE;}
    00217     virtual int getNumAttributes() const;
    00218     virtual const char *getAttributeName(int k) const;
    00219     virtual const char *getAttribute(int k) const;
    00220     virtual void setAttribute(int k, const char *val);
    00221     virtual const char *getAttributeDefault(int k) const;
    00223
    00226     const char * getFilename() const  {return filename.c_str();}
    00227     void setFilename(const char * val)  {filename = val;}
    00228     const char * getSourceCode() const  {return sourceCode.c_str();}
    00229     void setSourceCode(const char * val)  {sourceCode = val;}
    00230     const char * getPreferredIndent() const  {return preferredIndent.c_str();}
    00231     void setPreferredIndent(const char * val)  {preferredIndent = val;}
    00232     const char * getBannerComment() const  {return bannerComment.c_str();}
    00233     void setBannerComment(const char * val)  {bannerComment = val;}
    00234
    00235     virtual NedFileNode *getNextNedFileNodeSibling() const;
    00236     virtual ImportNode *getFirstImportChild() const;
    00237     virtual ChannelNode *getFirstChannelChild() const;
    00238     virtual SimpleModuleNode *getFirstSimpleModuleChild() const;
    00239     virtual CompoundModuleNode *getFirstCompoundModuleChild() const;
    00240     virtual NetworkNode *getFirstNetworkChild() const;
    00241     virtual CplusplusNode *getFirstCplusplusChild() const;
    00242     virtual StructDeclNode *getFirstStructDeclChild() const;
    00243     virtual ClassDeclNode *getFirstClassDeclChild() const;
    00244     virtual MessageDeclNode *getFirstMessageDeclChild() const;
    00245     virtual EnumDeclNode *getFirstEnumDeclChild() const;
    00246     virtual EnumNode *getFirstEnumChild() const;
    00247     virtual MessageNode *getFirstMessageChild() const;
    00248     virtual ClassNode *getFirstClassChild() const;
    00249     virtual StructNode *getFirstStructChild() const;
    00251 };
    00252
    00265 class ImportNode : public NEDElement
    00266 {
    00267   private:
    00268     std::string bannerComment;
    00269     std::string rightComment;
    00270   public:
    00273     ImportNode() {applyDefaults();}
    00274     ImportNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    00275     virtual ~ImportNode() {}
    00277
    00280     virtual const char *getTagName() const {return "import";}
    00281     virtual int getTagCode() const {return NED_IMPORT;}
    00282     virtual int getNumAttributes() const;
    00283     virtual const char *getAttributeName(int k) const;
    00284     virtual const char *getAttribute(int k) const;
    00285     virtual void setAttribute(int k, const char *val);
    00286     virtual const char *getAttributeDefault(int k) const;
    00288
    00291     const char * getBannerComment() const  {return bannerComment.c_str();}
    00292     void setBannerComment(const char * val)  {bannerComment = val;}
    00293     const char * getRightComment() const  {return rightComment.c_str();}
    00294     void setRightComment(const char * val)  {rightComment = val;}
    00295
    00296     virtual ImportNode *getNextImportNodeSibling() const;
    00297     virtual ImportedFileNode *getFirstImportedFileChild() const;
    00299 };
    00300
    00314 class ImportedFileNode : public NEDElement
    00315 {
    00316   private:
    00317     std::string filename;
    00318     std::string bannerComment;
    00319     std::string rightComment;
    00320   public:
    00323     ImportedFileNode() {applyDefaults();}
    00324     ImportedFileNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    00325     virtual ~ImportedFileNode() {}
    00327
    00330     virtual const char *getTagName() const {return "imported-file";}
    00331     virtual int getTagCode() const {return NED_IMPORTED_FILE;}
    00332     virtual int getNumAttributes() const;
    00333     virtual const char *getAttributeName(int k) const;
    00334     virtual const char *getAttribute(int k) const;
    00335     virtual void setAttribute(int k, const char *val);
    00336     virtual const char *getAttributeDefault(int k) const;
    00338
    00341     const char * getFilename() const  {return filename.c_str();}
    00342     void setFilename(const char * val)  {filename = val;}
    00343     const char * getBannerComment() const  {return bannerComment.c_str();}
    00344     void setBannerComment(const char * val)  {bannerComment = val;}
    00345     const char * getRightComment() const  {return rightComment.c_str();}
    00346     void setRightComment(const char * val)  {rightComment = val;}
    00347
    00348     virtual ImportedFileNode *getNextImportedFileNodeSibling() const;
    00350 };
    00351
    00367 class ChannelNode : public NEDElement
    00368 {
    00369   private:
    00370     std::string name;
    00371     std::string sourceCode;
    00372     std::string bannerComment;
    00373     std::string rightComment;
    00374     std::string trailingComment;
    00375   public:
    00378     ChannelNode() {applyDefaults();}
    00379     ChannelNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    00380     virtual ~ChannelNode() {}
    00382
    00385     virtual const char *getTagName() const {return "channel";}
    00386     virtual int getTagCode() const {return NED_CHANNEL;}
    00387     virtual int getNumAttributes() const;
    00388     virtual const char *getAttributeName(int k) const;
    00389     virtual const char *getAttribute(int k) const;
    00390     virtual void setAttribute(int k, const char *val);
    00391     virtual const char *getAttributeDefault(int k) const;
    00393
    00396     const char * getName() const  {return name.c_str();}
    00397     void setName(const char * val)  {name = val;}
    00398     const char * getSourceCode() const  {return sourceCode.c_str();}
    00399     void setSourceCode(const char * val)  {sourceCode = val;}
    00400     const char * getBannerComment() const  {return bannerComment.c_str();}
    00401     void setBannerComment(const char * val)  {bannerComment = val;}
    00402     const char * getRightComment() const  {return rightComment.c_str();}
    00403     void setRightComment(const char * val)  {rightComment = val;}
    00404     const char * getTrailingComment() const  {return trailingComment.c_str();}
    00405     void setTrailingComment(const char * val)  {trailingComment = val;}
    00406
    00407     virtual ChannelNode *getNextChannelNodeSibling() const;
    00408     virtual ChannelAttrNode *getFirstChannelAttrChild() const;
    00409     virtual DisplayStringNode *getFirstDisplayStringChild() const;
    00411 };
    00412
    00427 class ChannelAttrNode : public NEDElement
    00428 {
    00429   private:
    00430     std::string name;
    00431     std::string value;
    00432     std::string bannerComment;
    00433     std::string rightComment;
    00434   public:
    00437     ChannelAttrNode() {applyDefaults();}
    00438     ChannelAttrNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    00439     virtual ~ChannelAttrNode() {}
    00441
    00444     virtual const char *getTagName() const {return "channel-attr";}
    00445     virtual int getTagCode() const {return NED_CHANNEL_ATTR;}
    00446     virtual int getNumAttributes() const;
    00447     virtual const char *getAttributeName(int k) const;
    00448     virtual const char *getAttribute(int k) const;
    00449     virtual void setAttribute(int k, const char *val);
    00450     virtual const char *getAttributeDefault(int k) const;
    00452
    00455     const char * getName() const  {return name.c_str();}
    00456     void setName(const char * val)  {name = val;}
    00457     const char * getValue() const  {return value.c_str();}
    00458     void setValue(const char * val)  {value = val;}
    00459     const char * getBannerComment() const  {return bannerComment.c_str();}
    00460     void setBannerComment(const char * val)  {bannerComment = val;}
    00461     const char * getRightComment() const  {return rightComment.c_str();}
    00462     void setRightComment(const char * val)  {rightComment = val;}
    00463
    00464     virtual ChannelAttrNode *getNextChannelAttrNodeSibling() const;
    00465     virtual ExpressionNode *getFirstExpressionChild() const;
    00467 };
    00468
    00485 class NetworkNode : public NEDElement
    00486 {
    00487   private:
    00488     std::string name;
    00489     std::string typeName;
    00490     std::string sourceCode;
    00491     std::string bannerComment;
    00492     std::string rightComment;
    00493     std::string trailingComment;
    00494   public:
    00497     NetworkNode() {applyDefaults();}
    00498     NetworkNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    00499     virtual ~NetworkNode() {}
    00501
    00504     virtual const char *getTagName() const {return "network";}
    00505     virtual int getTagCode() const {return NED_NETWORK;}
    00506     virtual int getNumAttributes() const;
    00507     virtual const char *getAttributeName(int k) const;
    00508     virtual const char *getAttribute(int k) const;
    00509     virtual void setAttribute(int k, const char *val);
    00510     virtual const char *getAttributeDefault(int k) const;
    00512
    00515     const char * getName() const  {return name.c_str();}
    00516     void setName(const char * val)  {name = val;}
    00517     const char * getTypeName() const  {return typeName.c_str();}
    00518     void setTypeName(const char * val)  {typeName = val;}
    00519     const char * getSourceCode() const  {return sourceCode.c_str();}
    00520     void setSourceCode(const char * val)  {sourceCode = val;}
    00521     const char * getBannerComment() const  {return bannerComment.c_str();}
    00522     void setBannerComment(const char * val)  {bannerComment = val;}
    00523     const char * getRightComment() const  {return rightComment.c_str();}
    00524     void setRightComment(const char * val)  {rightComment = val;}
    00525     const char * getTrailingComment() const  {return trailingComment.c_str();}
    00526     void setTrailingComment(const char * val)  {trailingComment = val;}
    00527
    00528     virtual NetworkNode *getNextNetworkNodeSibling() const;
    00529     virtual SubstmachinesNode *getFirstSubstmachinesChild() const;
    00530     virtual SubstparamsNode *getFirstSubstparamsChild() const;
    00532 };
    00533
    00549 class SimpleModuleNode : public NEDElement
    00550 {
    00551   private:
    00552     std::string name;
    00553     std::string sourceCode;
    00554     std::string bannerComment;
    00555     std::string rightComment;
    00556     std::string trailingComment;
    00557   public:
    00560     SimpleModuleNode() {applyDefaults();}
    00561     SimpleModuleNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    00562     virtual ~SimpleModuleNode() {}
    00564
    00567     virtual const char *getTagName() const {return "simple-module";}
    00568     virtual int getTagCode() const {return NED_SIMPLE_MODULE;}
    00569     virtual int getNumAttributes() const;
    00570     virtual const char *getAttributeName(int k) const;
    00571     virtual const char *getAttribute(int k) const;
    00572     virtual void setAttribute(int k, const char *val);
    00573     virtual const char *getAttributeDefault(int k) const;
    00575
    00578     const char * getName() const  {return name.c_str();}
    00579     void setName(const char * val)  {name = val;}
    00580     const char * getSourceCode() const  {return sourceCode.c_str();}
    00581     void setSourceCode(const char * val)  {sourceCode = val;}
    00582     const char * getBannerComment() const  {return bannerComment.c_str();}
    00583     void setBannerComment(const char * val)  {bannerComment = val;}
    00584     const char * getRightComment() const  {return rightComment.c_str();}
    00585     void setRightComment(const char * val)  {rightComment = val;}
    00586     const char * getTrailingComment() const  {return trailingComment.c_str();}
    00587     void setTrailingComment(const char * val)  {trailingComment = val;}
    00588
    00589     virtual SimpleModuleNode *getNextSimpleModuleNodeSibling() const;
    00590     virtual MachinesNode *getFirstMachinesChild() const;
    00591     virtual ParamsNode *getFirstParamsChild() const;
    00592     virtual GatesNode *getFirstGatesChild() const;
    00593     virtual DisplayStringNode *getFirstDisplayStringChild() const;
    00595 };
    00596
    00613 class CompoundModuleNode : public NEDElement
    00614 {
    00615   private:
    00616     std::string name;
    00617     std::string sourceCode;
    00618     std::string bannerComment;
    00619     std::string rightComment;
    00620     std::string trailingComment;
    00621   public:
    00624     CompoundModuleNode() {applyDefaults();}
    00625     CompoundModuleNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    00626     virtual ~CompoundModuleNode() {}
    00628
    00631     virtual const char *getTagName() const {return "compound-module";}
    00632     virtual int getTagCode() const {return NED_COMPOUND_MODULE;}
    00633     virtual int getNumAttributes() const;
    00634     virtual const char *getAttributeName(int k) const;
    00635     virtual const char *getAttribute(int k) const;
    00636     virtual void setAttribute(int k, const char *val);
    00637     virtual const char *getAttributeDefault(int k) const;
    00639
    00642     const char * getName() const  {return name.c_str();}
    00643     void setName(const char * val)  {name = val;}
    00644     const char * getSourceCode() const  {return sourceCode.c_str();}
    00645     void setSourceCode(const char * val)  {sourceCode = val;}
    00646     const char * getBannerComment() const  {return bannerComment.c_str();}
    00647     void setBannerComment(const char * val)  {bannerComment = val;}
    00648     const char * getRightComment() const  {return rightComment.c_str();}
    00649     void setRightComment(const char * val)  {rightComment = val;}
    00650     const char * getTrailingComment() const  {return trailingComment.c_str();}
    00651     void setTrailingComment(const char * val)  {trailingComment = val;}
    00652
    00653     virtual CompoundModuleNode *getNextCompoundModuleNodeSibling() const;
    00654     virtual MachinesNode *getFirstMachinesChild() const;
    00655     virtual ParamsNode *getFirstParamsChild() const;
    00656     virtual GatesNode *getFirstGatesChild() const;
    00657     virtual SubmodulesNode *getFirstSubmodulesChild() const;
    00658     virtual ConnectionsNode *getFirstConnectionsChild() const;
    00659     virtual DisplayStringNode *getFirstDisplayStringChild() const;
    00661 };
    00662
    00675 class ParamsNode : public NEDElement
    00676 {
    00677   private:
    00678     std::string bannerComment;
    00679     std::string rightComment;
    00680   public:
    00683     ParamsNode() {applyDefaults();}
    00684     ParamsNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    00685     virtual ~ParamsNode() {}
    00687
    00690     virtual const char *getTagName() const {return "params";}
    00691     virtual int getTagCode() const {return NED_PARAMS;}
    00692     virtual int getNumAttributes() const;
    00693     virtual const char *getAttributeName(int k) const;
    00694     virtual const char *getAttribute(int k) const;
    00695     virtual void setAttribute(int k, const char *val);
    00696     virtual const char *getAttributeDefault(int k) const;
    00698
    00701     const char * getBannerComment() const  {return bannerComment.c_str();}
    00702     void setBannerComment(const char * val)  {bannerComment = val;}
    00703     const char * getRightComment() const  {return rightComment.c_str();}
    00704     void setRightComment(const char * val)  {rightComment = val;}
    00705
    00706     virtual ParamsNode *getNextParamsNodeSibling() const;
    00707     virtual ParamNode *getFirstParamChild() const;
    00709 };
    00710
    00725 class ParamNode : public NEDElement
    00726 {
    00727   private:
    00728     std::string name;
    00729     std::string dataType;
    00730     std::string bannerComment;
    00731     std::string rightComment;
    00732   public:
    00735     ParamNode() {applyDefaults();}
    00736     ParamNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    00737     virtual ~ParamNode() {}
    00739
    00742     virtual const char *getTagName() const {return "param";}
    00743     virtual int getTagCode() const {return NED_PARAM;}
    00744     virtual int getNumAttributes() const;
    00745     virtual const char *getAttributeName(int k) const;
    00746     virtual const char *getAttribute(int k) const;
    00747     virtual void setAttribute(int k, const char *val);
    00748     virtual const char *getAttributeDefault(int k) const;
    00750
    00753     const char * getName() const  {return name.c_str();}
    00754     void setName(const char * val)  {name = val;}
    00755     const char * getDataType() const  {return dataType.c_str();}
    00756     void setDataType(const char * val)  {dataType = val;}
    00757     const char * getBannerComment() const  {return bannerComment.c_str();}
    00758     void setBannerComment(const char * val)  {bannerComment = val;}
    00759     const char * getRightComment() const  {return rightComment.c_str();}
    00760     void setRightComment(const char * val)  {rightComment = val;}
    00761
    00762     virtual ParamNode *getNextParamNodeSibling() const;
    00764 };
    00765
    00778 class GatesNode : public NEDElement
    00779 {
    00780   private:
    00781     std::string bannerComment;
    00782     std::string rightComment;
    00783   public:
    00786     GatesNode() {applyDefaults();}
    00787     GatesNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    00788     virtual ~GatesNode() {}
    00790
    00793     virtual const char *getTagName() const {return "gates";}
    00794     virtual int getTagCode() const {return NED_GATES;}
    00795     virtual int getNumAttributes() const;
    00796     virtual const char *getAttributeName(int k) const;
    00797     virtual const char *getAttribute(int k) const;
    00798     virtual void setAttribute(int k, const char *val);
    00799     virtual const char *getAttributeDefault(int k) const;
    00801
    00804     const char * getBannerComment() const  {return bannerComment.c_str();}
    00805     void setBannerComment(const char * val)  {bannerComment = val;}
    00806     const char * getRightComment() const  {return rightComment.c_str();}
    00807     void setRightComment(const char * val)  {rightComment = val;}
    00808
    00809     virtual GatesNode *getNextGatesNodeSibling() const;
    00810     virtual GateNode *getFirstGateChild() const;
    00812 };
    00813
    00829 class GateNode : public NEDElement
    00830 {
    00831   private:
    00832     std::string name;
    00833     int direction;
    00834     bool isVector;
    00835     std::string bannerComment;
    00836     std::string rightComment;
    00837   public:
    00840     GateNode() {applyDefaults();}
    00841     GateNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    00842     virtual ~GateNode() {}
    00844
    00847     virtual const char *getTagName() const {return "gate";}
    00848     virtual int getTagCode() const {return NED_GATE;}
    00849     virtual int getNumAttributes() const;
    00850     virtual const char *getAttributeName(int k) const;
    00851     virtual const char *getAttribute(int k) const;
    00852     virtual void setAttribute(int k, const char *val);
    00853     virtual const char *getAttributeDefault(int k) const;
    00855
    00858     const char * getName() const  {return name.c_str();}
    00859     void setName(const char * val)  {name = val;}
    00860     int getDirection() const  {return direction;}
    00861     void setDirection(int val)  {direction = val;}
    00862     bool getIsVector() const  {return isVector;}
    00863     void setIsVector(bool val)  {isVector = val;}
    00864     const char * getBannerComment() const  {return bannerComment.c_str();}
    00865     void setBannerComment(const char * val)  {bannerComment = val;}
    00866     const char * getRightComment() const  {return rightComment.c_str();}
    00867     void setRightComment(const char * val)  {rightComment = val;}
    00868
    00869     virtual GateNode *getNextGateNodeSibling() const;
    00871 };
    00872
    00885 class MachinesNode : public NEDElement
    00886 {
    00887   private:
    00888     std::string bannerComment;
    00889     std::string rightComment;
    00890   public:
    00893     MachinesNode() {applyDefaults();}
    00894     MachinesNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    00895     virtual ~MachinesNode() {}
    00897
    00900     virtual const char *getTagName() const {return "machines";}
    00901     virtual int getTagCode() const {return NED_MACHINES;}
    00902     virtual int getNumAttributes() const;
    00903     virtual const char *getAttributeName(int k) const;
    00904     virtual const char *getAttribute(int k) const;
    00905     virtual void setAttribute(int k, const char *val);
    00906     virtual const char *getAttributeDefault(int k) const;
    00908
    00911     const char * getBannerComment() const  {return bannerComment.c_str();}
    00912     void setBannerComment(const char * val)  {bannerComment = val;}
    00913     const char * getRightComment() const  {return rightComment.c_str();}
    00914     void setRightComment(const char * val)  {rightComment = val;}
    00915
    00916     virtual MachinesNode *getNextMachinesNodeSibling() const;
    00917     virtual MachineNode *getFirstMachineChild() const;
    00919 };
    00920
    00934 class MachineNode : public NEDElement
    00935 {
    00936   private:
    00937     std::string name;
    00938     std::string bannerComment;
    00939     std::string rightComment;
    00940   public:
    00943     MachineNode() {applyDefaults();}
    00944     MachineNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    00945     virtual ~MachineNode() {}
    00947
    00950     virtual const char *getTagName() const {return "machine";}
    00951     virtual int getTagCode() const {return NED_MACHINE;}
    00952     virtual int getNumAttributes() const;
    00953     virtual const char *getAttributeName(int k) const;
    00954     virtual const char *getAttribute(int k) const;
    00955     virtual void setAttribute(int k, const char *val);
    00956     virtual const char *getAttributeDefault(int k) const;
    00958
    00961     const char * getName() const  {return name.c_str();}
    00962     void setName(const char * val)  {name = val;}
    00963     const char * getBannerComment() const  {return bannerComment.c_str();}
    00964     void setBannerComment(const char * val)  {bannerComment = val;}
    00965     const char * getRightComment() const  {return rightComment.c_str();}
    00966     void setRightComment(const char * val)  {rightComment = val;}
    00967
    00968     virtual MachineNode *getNextMachineNodeSibling() const;
    00970 };
    00971
    00984 class SubmodulesNode : public NEDElement
    00985 {
    00986   private:
    00987     std::string bannerComment;
    00988     std::string rightComment;
    00989   public:
    00992     SubmodulesNode() {applyDefaults();}
    00993     SubmodulesNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    00994     virtual ~SubmodulesNode() {}
    00996
    00999     virtual const char *getTagName() const {return "submodules";}
    01000     virtual int getTagCode() const {return NED_SUBMODULES;}
    01001     virtual int getNumAttributes() const;
    01002     virtual const char *getAttributeName(int k) const;
    01003     virtual const char *getAttribute(int k) const;
    01004     virtual void setAttribute(int k, const char *val);
    01005     virtual const char *getAttributeDefault(int k) const;
    01007
    01010     const char * getBannerComment() const  {return bannerComment.c_str();}
    01011     void setBannerComment(const char * val)  {bannerComment = val;}
    01012     const char * getRightComment() const  {return rightComment.c_str();}
    01013     void setRightComment(const char * val)  {rightComment = val;}
    01014
    01015     virtual SubmodulesNode *getNextSubmodulesNodeSibling() const;
    01016     virtual SubmoduleNode *getFirstSubmoduleChild() const;
    01018 };
    01019
    01037 class SubmoduleNode : public NEDElement
    01038 {
    01039   private:
    01040     std::string name;
    01041     std::string typeName;
    01042     std::string likeParam;
    01043     std::string vectorSize;
    01044     std::string bannerComment;
    01045     std::string rightComment;
    01046   public:
    01049     SubmoduleNode() {applyDefaults();}
    01050     SubmoduleNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    01051     virtual ~SubmoduleNode() {}
    01053
    01056     virtual const char *getTagName() const {return "submodule";}
    01057     virtual int getTagCode() const {return NED_SUBMODULE;}
    01058     virtual int getNumAttributes() const;
    01059     virtual const char *getAttributeName(int k) const;
    01060     virtual const char *getAttribute(int k) const;
    01061     virtual void setAttribute(int k, const char *val);
    01062     virtual const char *getAttributeDefault(int k) const;
    01064
    01067     const char * getName() const  {return name.c_str();}
    01068     void setName(const char * val)  {name = val;}
    01069     const char * getTypeName() const  {return typeName.c_str();}
    01070     void setTypeName(const char * val)  {typeName = val;}
    01071     const char * getLikeParam() const  {return likeParam.c_str();}
    01072     void setLikeParam(const char * val)  {likeParam = val;}
    01073     const char * getVectorSize() const  {return vectorSize.c_str();}
    01074     void setVectorSize(const char * val)  {vectorSize = val;}
    01075     const char * getBannerComment() const  {return bannerComment.c_str();}
    01076     void setBannerComment(const char * val)  {bannerComment = val;}
    01077     const char * getRightComment() const  {return rightComment.c_str();}
    01078     void setRightComment(const char * val)  {rightComment = val;}
    01079
    01080     virtual SubmoduleNode *getNextSubmoduleNodeSibling() const;
    01081     virtual ExpressionNode *getFirstExpressionChild() const;
    01082     virtual SubstmachinesNode *getFirstSubstmachinesChild() const;
    01083     virtual SubstparamsNode *getFirstSubstparamsChild() const;
    01084     virtual GatesizesNode *getFirstGatesizesChild() const;
    01085     virtual DisplayStringNode *getFirstDisplayStringChild() const;
    01087 };
    01088
    01102 class SubstparamsNode : public NEDElement
    01103 {
    01104   private:
    01105     std::string condition;
    01106     std::string bannerComment;
    01107     std::string rightComment;
    01108   public:
    01111     SubstparamsNode() {applyDefaults();}
    01112     SubstparamsNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    01113     virtual ~SubstparamsNode() {}
    01115
    01118     virtual const char *getTagName() const {return "substparams";}
    01119     virtual int getTagCode() const {return NED_SUBSTPARAMS;}
    01120     virtual int getNumAttributes() const;
    01121     virtual const char *getAttributeName(int k) const;
    01122     virtual const char *getAttribute(int k) const;
    01123     virtual void setAttribute(int k, const char *val);
    01124     virtual const char *getAttributeDefault(int k) const;
    01126
    01129     const char * getCondition() const  {return condition.c_str();}
    01130     void setCondition(const char * val)  {condition = val;}
    01131     const char * getBannerComment() const  {return bannerComment.c_str();}
    01132     void setBannerComment(const char * val)  {bannerComment = val;}
    01133     const char * getRightComment() const  {return rightComment.c_str();}
    01134     void setRightComment(const char * val)  {rightComment = val;}
    01135
    01136     virtual SubstparamsNode *getNextSubstparamsNodeSibling() const;
    01137     virtual ExpressionNode *getFirstExpressionChild() const;
    01138     virtual SubstparamNode *getFirstSubstparamChild() const;
    01140 };
    01141
    01156 class SubstparamNode : public NEDElement
    01157 {
    01158   private:
    01159     std::string name;
    01160     std::string value;
    01161     std::string bannerComment;
    01162     std::string rightComment;
    01163   public:
    01166     SubstparamNode() {applyDefaults();}
    01167     SubstparamNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    01168     virtual ~SubstparamNode() {}
    01170
    01173     virtual const char *getTagName() const {return "substparam";}
    01174     virtual int getTagCode() const {return NED_SUBSTPARAM;}
    01175     virtual int getNumAttributes() const;
    01176     virtual const char *getAttributeName(int k) const;
    01177     virtual const char *getAttribute(int k) const;
    01178     virtual void setAttribute(int k, const char *val);
    01179     virtual const char *getAttributeDefault(int k) const;
    01181
    01184     const char * getName() const  {return name.c_str();}
    01185     void setName(const char * val)  {name = val;}
    01186     const char * getValue() const  {return value.c_str();}
    01187     void setValue(const char * val)  {value = val;}
    01188     const char * getBannerComment() const  {return bannerComment.c_str();}
    01189     void setBannerComment(const char * val)  {bannerComment = val;}
    01190     const char * getRightComment() const  {return rightComment.c_str();}
    01191     void setRightComment(const char * val)  {rightComment = val;}
    01192
    01193     virtual SubstparamNode *getNextSubstparamNodeSibling() const;
    01194     virtual ExpressionNode *getFirstExpressionChild() const;
    01196 };
    01197
    01211 class GatesizesNode : public NEDElement
    01212 {
    01213   private:
    01214     std::string condition;
    01215     std::string bannerComment;
    01216     std::string rightComment;
    01217   public:
    01220     GatesizesNode() {applyDefaults();}
    01221     GatesizesNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    01222     virtual ~GatesizesNode() {}
    01224
    01227     virtual const char *getTagName() const {return "gatesizes";}
    01228     virtual int getTagCode() const {return NED_GATESIZES;}
    01229     virtual int getNumAttributes() const;
    01230     virtual const char *getAttributeName(int k) const;
    01231     virtual const char *getAttribute(int k) const;
    01232     virtual void setAttribute(int k, const char *val);
    01233     virtual const char *getAttributeDefault(int k) const;
    01235
    01238     const char * getCondition() const  {return condition.c_str();}
    01239     void setCondition(const char * val)  {condition = val;}
    01240     const char * getBannerComment() const  {return bannerComment.c_str();}
    01241     void setBannerComment(const char * val)  {bannerComment = val;}
    01242     const char * getRightComment() const  {return rightComment.c_str();}
    01243     void setRightComment(const char * val)  {rightComment = val;}
    01244
    01245     virtual GatesizesNode *getNextGatesizesNodeSibling() const;
    01246     virtual ExpressionNode *getFirstExpressionChild() const;
    01247     virtual GatesizeNode *getFirstGatesizeChild() const;
    01249 };
    01250
    01265 class GatesizeNode : public NEDElement
    01266 {
    01267   private:
    01268     std::string name;
    01269     std::string vectorSize;
    01270     std::string bannerComment;
    01271     std::string rightComment;
    01272   public:
    01275     GatesizeNode() {applyDefaults();}
    01276     GatesizeNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    01277     virtual ~GatesizeNode() {}
    01279
    01282     virtual const char *getTagName() const {return "gatesize";}
    01283     virtual int getTagCode() const {return NED_GATESIZE;}
    01284     virtual int getNumAttributes() const;
    01285     virtual const char *getAttributeName(int k) const;
    01286     virtual const char *getAttribute(int k) const;
    01287     virtual void setAttribute(int k, const char *val);
    01288     virtual const char *getAttributeDefault(int k) const;
    01290
    01293     const char * getName() const  {return name.c_str();}
    01294     void setName(const char * val)  {name = val;}
    01295     const char * getVectorSize() const  {return vectorSize.c_str();}
    01296     void setVectorSize(const char * val)  {vectorSize = val;}
    01297     const char * getBannerComment() const  {return bannerComment.c_str();}
    01298     void setBannerComment(const char * val)  {bannerComment = val;}
    01299     const char * getRightComment() const  {return rightComment.c_str();}
    01300     void setRightComment(const char * val)  {rightComment = val;}
    01301
    01302     virtual GatesizeNode *getNextGatesizeNodeSibling() const;
    01303     virtual ExpressionNode *getFirstExpressionChild() const;
    01305 };
    01306
    01320 class SubstmachinesNode : public NEDElement
    01321 {
    01322   private:
    01323     std::string condition;
    01324     std::string bannerComment;
    01325     std::string rightComment;
    01326   public:
    01329     SubstmachinesNode() {applyDefaults();}
    01330     SubstmachinesNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    01331     virtual ~SubstmachinesNode() {}
    01333
    01336     virtual const char *getTagName() const {return "substmachines";}
    01337     virtual int getTagCode() const {return NED_SUBSTMACHINES;}
    01338     virtual int getNumAttributes() const;
    01339     virtual const char *getAttributeName(int k) const;
    01340     virtual const char *getAttribute(int k) const;
    01341     virtual void setAttribute(int k, const char *val);
    01342     virtual const char *getAttributeDefault(int k) const;
    01344
    01347     const char * getCondition() const  {return condition.c_str();}
    01348     void setCondition(const char * val)  {condition = val;}
    01349     const char * getBannerComment() const  {return bannerComment.c_str();}
    01350     void setBannerComment(const char * val)  {bannerComment = val;}
    01351     const char * getRightComment() const  {return rightComment.c_str();}
    01352     void setRightComment(const char * val)  {rightComment = val;}
    01353
    01354     virtual SubstmachinesNode *getNextSubstmachinesNodeSibling() const;
    01355     virtual ExpressionNode *getFirstExpressionChild() const;
    01356     virtual SubstmachineNode *getFirstSubstmachineChild() const;
    01358 };
    01359
    01373 class SubstmachineNode : public NEDElement
    01374 {
    01375   private:
    01376     std::string name;
    01377     std::string bannerComment;
    01378     std::string rightComment;
    01379   public:
    01382     SubstmachineNode() {applyDefaults();}
    01383     SubstmachineNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    01384     virtual ~SubstmachineNode() {}
    01386
    01389     virtual const char *getTagName() const {return "substmachine";}
    01390     virtual int getTagCode() const {return NED_SUBSTMACHINE;}
    01391     virtual int getNumAttributes() const;
    01392     virtual const char *getAttributeName(int k) const;
    01393     virtual const char *getAttribute(int k) const;
    01394     virtual void setAttribute(int k, const char *val);
    01395     virtual const char *getAttributeDefault(int k) const;
    01397
    01400     const char * getName() const  {return name.c_str();}
    01401     void setName(const char * val)  {name = val;}
    01402     const char * getBannerComment() const  {return bannerComment.c_str();}
    01403     void setBannerComment(const char * val)  {bannerComment = val;}
    01404     const char * getRightComment() const  {return rightComment.c_str();}
    01405     void setRightComment(const char * val)  {rightComment = val;}
    01406
    01407     virtual SubstmachineNode *getNextSubstmachineNodeSibling() const;
    01409 };
    01410
    01424 class ConnectionsNode : public NEDElement
    01425 {
    01426   private:
    01427     bool checkUnconnected;
    01428     std::string bannerComment;
    01429     std::string rightComment;
    01430   public:
    01433     ConnectionsNode() {applyDefaults();}
    01434     ConnectionsNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    01435     virtual ~ConnectionsNode() {}
    01437
    01440     virtual const char *getTagName() const {return "connections";}
    01441     virtual int getTagCode() const {return NED_CONNECTIONS;}
    01442     virtual int getNumAttributes() const;
    01443     virtual const char *getAttributeName(int k) const;
    01444     virtual const char *getAttribute(int k) const;
    01445     virtual void setAttribute(int k, const char *val);
    01446     virtual const char *getAttributeDefault(int k) const;
    01448
    01451     bool getCheckUnconnected() const  {return checkUnconnected;}
    01452     void setCheckUnconnected(bool val)  {checkUnconnected = val;}
    01453     const char * getBannerComment() const  {return bannerComment.c_str();}
    01454     void setBannerComment(const char * val)  {bannerComment = val;}
    01455     const char * getRightComment() const  {return rightComment.c_str();}
    01456     void setRightComment(const char * val)  {rightComment = val;}
    01457
    01458     virtual ConnectionsNode *getNextConnectionsNodeSibling() const;
    01459     virtual ConnectionNode *getFirstConnectionChild() const;
    01460     virtual ForLoopNode *getFirstForLoopChild() const;
    01462 };
    01463
    01488 class ConnectionNode : public NEDElement
    01489 {
    01490   private:
    01491     std::string condition;
    01492     std::string srcModule;
    01493     std::string srcModuleIndex;
    01494     std::string srcGate;
    01495     bool srcGatePlusplus;
    01496     std::string srcGateIndex;
    01497     std::string destModule;
    01498     std::string destModuleIndex;
    01499     std::string destGate;
    01500     bool destGatePlusplus;
    01501     std::string destGateIndex;
    01502     int arrowDirection;
    01503     std::string bannerComment;
    01504     std::string rightComment;
    01505   public:
    01508     ConnectionNode() {applyDefaults();}
    01509     ConnectionNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    01510     virtual ~ConnectionNode() {}
    01512
    01515     virtual const char *getTagName() const {return "connection";}
    01516     virtual int getTagCode() const {return NED_CONNECTION;}
    01517     virtual int getNumAttributes() const;
    01518     virtual const char *getAttributeName(int k) const;
    01519     virtual const char *getAttribute(int k) const;
    01520     virtual void setAttribute(int k, const char *val);
    01521     virtual const char *getAttributeDefault(int k) const;
    01523
    01526     const char * getCondition() const  {return condition.c_str();}
    01527     void setCondition(const char * val)  {condition = val;}
    01528     const char * getSrcModule() const  {return srcModule.c_str();}
    01529     void setSrcModule(const char * val)  {srcModule = val;}
    01530     const char * getSrcModuleIndex() const  {return srcModuleIndex.c_str();}
    01531     void setSrcModuleIndex(const char * val)  {srcModuleIndex = val;}
    01532     const char * getSrcGate() const  {return srcGate.c_str();}
    01533     void setSrcGate(const char * val)  {srcGate = val;}
    01534     bool getSrcGatePlusplus() const  {return srcGatePlusplus;}
    01535     void setSrcGatePlusplus(bool val)  {srcGatePlusplus = val;}
    01536     const char * getSrcGateIndex() const  {return srcGateIndex.c_str();}
    01537     void setSrcGateIndex(const char * val)  {srcGateIndex = val;}
    01538     const char * getDestModule() const  {return destModule.c_str();}
    01539     void setDestModule(const char * val)  {destModule = val;}
    01540     const char * getDestModuleIndex() const  {return destModuleIndex.c_str();}
    01541     void setDestModuleIndex(const char * val)  {destModuleIndex = val;}
    01542     const char * getDestGate() const  {return destGate.c_str();}
    01543     void setDestGate(const char * val)  {destGate = val;}
    01544     bool getDestGatePlusplus() const  {return destGatePlusplus;}
    01545     void setDestGatePlusplus(bool val)  {destGatePlusplus = val;}
    01546     const char * getDestGateIndex() const  {return destGateIndex.c_str();}
    01547     void setDestGateIndex(const char * val)  {destGateIndex = val;}
    01548     int getArrowDirection() const  {return arrowDirection;}
    01549     void setArrowDirection(int val)  {arrowDirection = val;}
    01550     const char * getBannerComment() const  {return bannerComment.c_str();}
    01551     void setBannerComment(const char * val)  {bannerComment = val;}
    01552     const char * getRightComment() const  {return rightComment.c_str();}
    01553     void setRightComment(const char * val)  {rightComment = val;}
    01554
    01555     virtual ConnectionNode *getNextConnectionNodeSibling() const;
    01556     virtual ExpressionNode *getFirstExpressionChild() const;
    01557     virtual ConnAttrNode *getFirstConnAttrChild() const;
    01558     virtual DisplayStringNode *getFirstDisplayStringChild() const;
    01560 };
    01561
    01575 class ConnAttrNode : public NEDElement
    01576 {
    01577   private:
    01578     std::string name;
    01579     std::string value;
    01580     std::string rightComment;
    01581   public:
    01584     ConnAttrNode() {applyDefaults();}
    01585     ConnAttrNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    01586     virtual ~ConnAttrNode() {}
    01588
    01591     virtual const char *getTagName() const {return "conn-attr";}
    01592     virtual int getTagCode() const {return NED_CONN_ATTR;}
    01593     virtual int getNumAttributes() const;
    01594     virtual const char *getAttributeName(int k) const;
    01595     virtual const char *getAttribute(int k) const;
    01596     virtual void setAttribute(int k, const char *val);
    01597     virtual const char *getAttributeDefault(int k) const;
    01599
    01602     const char * getName() const  {return name.c_str();}
    01603     void setName(const char * val)  {name = val;}
    01604     const char * getValue() const  {return value.c_str();}
    01605     void setValue(const char * val)  {value = val;}
    01606     const char * getRightComment() const  {return rightComment.c_str();}
    01607     void setRightComment(const char * val)  {rightComment = val;}
    01608
    01609     virtual ConnAttrNode *getNextConnAttrNodeSibling() const;
    01610     virtual ExpressionNode *getFirstExpressionChild() const;
    01612 };
    01613
    01627 class ForLoopNode : public NEDElement
    01628 {
    01629   private:
    01630     std::string bannerComment;
    01631     std::string rightComment;
    01632     std::string trailingComment;
    01633   public:
    01636     ForLoopNode() {applyDefaults();}
    01637     ForLoopNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    01638     virtual ~ForLoopNode() {}
    01640
    01643     virtual const char *getTagName() const {return "for-loop";}
    01644     virtual int getTagCode() const {return NED_FOR_LOOP;}
    01645     virtual int getNumAttributes() const;
    01646     virtual const char *getAttributeName(int k) const;
    01647     virtual const char *getAttribute(int k) const;
    01648     virtual void setAttribute(int k, const char *val);
    01649     virtual const char *getAttributeDefault(int k) const;
    01651
    01654     const char * getBannerComment() const  {return bannerComment.c_str();}
    01655     void setBannerComment(const char * val)  {bannerComment = val;}
    01656     const char * getRightComment() const  {return rightComment.c_str();}
    01657     void setRightComment(const char * val)  {rightComment = val;}
    01658     const char * getTrailingComment() const  {return trailingComment.c_str();}
    01659     void setTrailingComment(const char * val)  {trailingComment = val;}
    01660
    01661     virtual ForLoopNode *getNextForLoopNodeSibling() const;
    01662     virtual LoopVarNode *getFirstLoopVarChild() const;
    01663     virtual ConnectionNode *getFirstConnectionChild() const;
    01665 };
    01666
    01682 class LoopVarNode : public NEDElement
    01683 {
    01684   private:
    01685     std::string paramName;
    01686     std::string fromValue;
    01687     std::string toValue;
    01688     std::string bannerComment;
    01689     std::string rightComment;
    01690   public:
    01693     LoopVarNode() {applyDefaults();}
    01694     LoopVarNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    01695     virtual ~LoopVarNode() {}
    01697
    01700     virtual const char *getTagName() const {return "loop-var";}
    01701     virtual int getTagCode() const {return NED_LOOP_VAR;}
    01702     virtual int getNumAttributes() const;
    01703     virtual const char *getAttributeName(int k) const;
    01704     virtual const char *getAttribute(int k) const;
    01705     virtual void setAttribute(int k, const char *val);
    01706     virtual const char *getAttributeDefault(int k) const;
    01708
    01711     const char * getParamName() const  {return paramName.c_str();}
    01712     void setParamName(const char * val)  {paramName = val;}
    01713     const char * getFromValue() const  {return fromValue.c_str();}
    01714     void setFromValue(const char * val)  {fromValue = val;}
    01715     const char * getToValue() const  {return toValue.c_str();}
    01716     void setToValue(const char * val)  {toValue = val;}
    01717     const char * getBannerComment() const  {return bannerComment.c_str();}
    01718     void setBannerComment(const char * val)  {bannerComment = val;}
    01719     const char * getRightComment() const  {return rightComment.c_str();}
    01720     void setRightComment(const char * val)  {rightComment = val;}
    01721
    01722     virtual LoopVarNode *getNextLoopVarNodeSibling() const;
    01723     virtual ExpressionNode *getFirstExpressionChild() const;
    01725 };
    01726
    01740 class DisplayStringNode : public NEDElement
    01741 {
    01742   private:
    01743     std::string value;
    01744     std::string bannerComment;
    01745     std::string rightComment;
    01746   public:
    01749     DisplayStringNode() {applyDefaults();}
    01750     DisplayStringNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    01751     virtual ~DisplayStringNode() {}
    01753
    01756     virtual const char *getTagName() const {return "display-string";}
    01757     virtual int getTagCode() const {return NED_DISPLAY_STRING;}
    01758     virtual int getNumAttributes() const;
    01759     virtual const char *getAttributeName(int k) const;
    01760     virtual const char *getAttribute(int k) const;
    01761     virtual void setAttribute(int k, const char *val);
    01762     virtual const char *getAttributeDefault(int k) const;
    01764
    01767     const char * getValue() const  {return value.c_str();}
    01768     void setValue(const char * val)  {value = val;}
    01769     const char * getBannerComment() const  {return bannerComment.c_str();}
    01770     void setBannerComment(const char * val)  {bannerComment = val;}
    01771     const char * getRightComment() const  {return rightComment.c_str();}
    01772     void setRightComment(const char * val)  {rightComment = val;}
    01773
    01774     virtual DisplayStringNode *getNextDisplayStringNodeSibling() const;
    01776 };
    01777
    01789 class ExpressionNode : public NEDElement
    01790 {
    01791   private:
    01792     std::string target;
    01793   public:
    01796     ExpressionNode() {applyDefaults();}
    01797     ExpressionNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    01798     virtual ~ExpressionNode() {}
    01800
    01803     virtual const char *getTagName() const {return "expression";}
    01804     virtual int getTagCode() const {return NED_EXPRESSION;}
    01805     virtual int getNumAttributes() const;
    01806     virtual const char *getAttributeName(int k) const;
    01807     virtual const char *getAttribute(int k) const;
    01808     virtual void setAttribute(int k, const char *val);
    01809     virtual const char *getAttributeDefault(int k) const;
    01811
    01814     const char * getTarget() const  {return target.c_str();}
    01815     void setTarget(const char * val)  {target = val;}
    01816
    01817     virtual ExpressionNode *getNextExpressionNodeSibling() const;
    01818     virtual OperatorNode *getFirstOperatorChild() const;
    01819     virtual FunctionNode *getFirstFunctionChild() const;
    01820     virtual ParamRefNode *getFirstParamRefChild() const;
    01821     virtual IdentNode *getFirstIdentChild() const;
    01822     virtual ConstNode *getFirstConstChild() const;
    01824 };
    01825
    01837 class OperatorNode : public NEDElement
    01838 {
    01839   private:
    01840     std::string name;
    01841   public:
    01844     OperatorNode() {applyDefaults();}
    01845     OperatorNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    01846     virtual ~OperatorNode() {}
    01848
    01851     virtual const char *getTagName() const {return "operator";}
    01852     virtual int getTagCode() const {return NED_OPERATOR;}
    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 OperatorNode *getNextOperatorNodeSibling() const;
    01866     virtual OperatorNode *getFirstOperatorChild() const;
    01867     virtual FunctionNode *getFirstFunctionChild() const;
    01868     virtual ParamRefNode *getFirstParamRefChild() const;
    01869     virtual IdentNode *getFirstIdentChild() const;
    01870     virtual ConstNode *getFirstConstChild() const;
    01872 };
    01873
    01885 class FunctionNode : public NEDElement
    01886 {
    01887   private:
    01888     std::string name;
    01889   public:
    01892     FunctionNode() {applyDefaults();}
    01893     FunctionNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    01894     virtual ~FunctionNode() {}
    01896
    01899     virtual const char *getTagName() const {return "function";}
    01900     virtual int getTagCode() const {return NED_FUNCTION;}
    01901     virtual int getNumAttributes() const;
    01902     virtual const char *getAttributeName(int k) const;
    01903     virtual const char *getAttribute(int k) const;
    01904     virtual void setAttribute(int k, const char *val);
    01905     virtual const char *getAttributeDefault(int k) const;
    01907
    01910     const char * getName() const  {return name.c_str();}
    01911     void setName(const char * val)  {name = val;}
    01912
    01913     virtual FunctionNode *getNextFunctionNodeSibling() const;
    01914     virtual OperatorNode *getFirstOperatorChild() const;
    01915     virtual FunctionNode *getFirstFunctionChild() const;
    01916     virtual ParamRefNode *getFirstParamRefChild() const;
    01917     virtual IdentNode *getFirstIdentChild() const;
    01918     virtual ConstNode *getFirstConstChild() const;
    01920 };
    01921
    01938 class ParamRefNode : public NEDElement
    01939 {
    01940   private:
    01941     std::string module;
    01942     std::string moduleIndex;
    01943     std::string paramName;
    01944     std::string paramIndex;
    01945     bool isRef;
    01946     bool isAncestor;
    01947   public:
    01950     ParamRefNode() {applyDefaults();}
    01951     ParamRefNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    01952     virtual ~ParamRefNode() {}
    01954
    01957     virtual const char *getTagName() const {return "param-ref";}
    01958     virtual int getTagCode() const {return NED_PARAM_REF;}
    01959     virtual int getNumAttributes() const;
    01960     virtual const char *getAttributeName(int k) const;
    01961     virtual const char *getAttribute(int k) const;
    01962     virtual void setAttribute(int k, const char *val);
    01963     virtual const char *getAttributeDefault(int k) const;
    01965
    01968     const char * getModule() const  {return module.c_str();}
    01969     void setModule(const char * val)  {module = val;}
    01970     const char * getModuleIndex() const  {return moduleIndex.c_str();}
    01971     void setModuleIndex(const char * val)  {moduleIndex = val;}
    01972     const char * getParamName() const  {return paramName.c_str();}
    01973     void setParamName(const char * val)  {paramName = val;}
    01974     const char * getParamIndex() const  {return paramIndex.c_str();}
    01975     void setParamIndex(const char * val)  {paramIndex = val;}
    01976     bool getIsRef() const  {return isRef;}
    01977     void setIsRef(bool val)  {isRef = val;}
    01978     bool getIsAncestor() const  {return isAncestor;}
    01979     void setIsAncestor(bool val)  {isAncestor = val;}
    01980
    01981     virtual ParamRefNode *getNextParamRefNodeSibling() const;
    01982     virtual ExpressionNode *getFirstExpressionChild() const;
    01984 };
    01985
    01997 class IdentNode : public NEDElement
    01998 {
    01999   private:
    02000     std::string name;
    02001   public:
    02004     IdentNode() {applyDefaults();}
    02005     IdentNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    02006     virtual ~IdentNode() {}
    02008
    02011     virtual const char *getTagName() const {return "ident";}
    02012     virtual int getTagCode() const {return NED_IDENT;}
    02013     virtual int getNumAttributes() const;
    02014     virtual const char *getAttributeName(int k) const;
    02015     virtual const char *getAttribute(int k) const;
    02016     virtual void setAttribute(int k, const char *val);
    02017     virtual const char *getAttributeDefault(int k) const;
    02019
    02022     const char * getName() const  {return name.c_str();}
    02023     void setName(const char * val)  {name = val;}
    02024
    02025     virtual IdentNode *getNextIdentNodeSibling() const;
    02027 };
    02028
    02042 class ConstNode : public NEDElement
    02043 {
    02044   private:
    02045     int type;
    02046     std::string text;
    02047     std::string value;
    02048   public:
    02051     ConstNode() {applyDefaults();}
    02052     ConstNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    02053     virtual ~ConstNode() {}
    02055
    02058     virtual const char *getTagName() const {return "const";}
    02059     virtual int getTagCode() const {return NED_CONST;}
    02060     virtual int getNumAttributes() const;
    02061     virtual const char *getAttributeName(int k) const;
    02062     virtual const char *getAttribute(int k) const;
    02063     virtual void setAttribute(int k, const char *val);
    02064     virtual const char *getAttributeDefault(int k) const;
    02066
    02069     int getType() const  {return type;}
    02070     void setType(int val)  {type = val;}
    02071     const char * getText() const  {return text.c_str();}
    02072     void setText(const char * val)  {text = val;}
    02073     const char * getValue() const  {return value.c_str();}
    02074     void setValue(const char * val)  {value = val;}
    02075
    02076     virtual ConstNode *getNextConstNodeSibling() const;
    02078 };
    02079
    02094 class CplusplusNode : public NEDElement
    02095 {
    02096   private:
    02097     std::string body;
    02098     std::string bannerComment;
    02099     std::string rightComment;
    02100     std::string trailingComment;
    02101   public:
    02104     CplusplusNode() {applyDefaults();}
    02105     CplusplusNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    02106     virtual ~CplusplusNode() {}
    02108
    02111     virtual const char *getTagName() const {return "cplusplus";}
    02112     virtual int getTagCode() const {return NED_CPLUSPLUS;}
    02113     virtual int getNumAttributes() const;
    02114     virtual const char *getAttributeName(int k) const;
    02115     virtual const char *getAttribute(int k) const;
    02116     virtual void setAttribute(int k, const char *val);
    02117     virtual const char *getAttributeDefault(int k) const;
    02119
    02122     const char * getBody() const  {return body.c_str();}
    02123     void setBody(const char * val)  {body = val;}
    02124     const char * getBannerComment() const  {return bannerComment.c_str();}
    02125     void setBannerComment(const char * val)  {bannerComment = val;}
    02126     const char * getRightComment() const  {return rightComment.c_str();}
    02127     void setRightComment(const char * val)  {rightComment = val;}
    02128     const char * getTrailingComment() const  {return trailingComment.c_str();}
    02129     void setTrailingComment(const char * val)  {trailingComment = val;}
    02130
    02131     virtual CplusplusNode *getNextCplusplusNodeSibling() const;
    02133 };
    02134
    02149 class StructDeclNode : public NEDElement
    02150 {
    02151   private:
    02152     std::string name;
    02153     std::string bannerComment;
    02154     std::string rightComment;
    02155     std::string trailingComment;
    02156   public:
    02159     StructDeclNode() {applyDefaults();}
    02160     StructDeclNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    02161     virtual ~StructDeclNode() {}
    02163
    02166     virtual const char *getTagName() const {return "struct-decl";}
    02167     virtual int getTagCode() const {return NED_STRUCT_DECL;}
    02168     virtual int getNumAttributes() const;
    02169     virtual const char *getAttributeName(int k) const;
    02170     virtual const char *getAttribute(int k) const;
    02171     virtual void setAttribute(int k, const char *val);
    02172     virtual const char *getAttributeDefault(int k) const;
    02174
    02177     const char * getName() const  {return name.c_str();}
    02178     void setName(const char * val)  {name = val;}
    02179     const char * getBannerComment() const  {return bannerComment.c_str();}
    02180     void setBannerComment(const char * val)  {bannerComment = val;}
    02181     const char * getRightComment() const  {return rightComment.c_str();}
    02182     void setRightComment(const char * val)  {rightComment = val;}
    02183     const char * getTrailingComment() const  {return trailingComment.c_str();}
    02184     void setTrailingComment(const char * val)  {trailingComment = val;}
    02185
    02186     virtual StructDeclNode *getNextStructDeclNodeSibling() const;
    02188 };
    02189
    02205 class ClassDeclNode : public NEDElement
    02206 {
    02207   private:
    02208     std::string name;
    02209     bool isCobject;
    02210     std::string bannerComment;
    02211     std::string rightComment;
    02212     std::string trailingComment;
    02213   public:
    02216     ClassDeclNode() {applyDefaults();}
    02217     ClassDeclNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    02218     virtual ~ClassDeclNode() {}
    02220
    02223     virtual const char *getTagName() const {return "class-decl";}
    02224     virtual int getTagCode() const {return NED_CLASS_DECL;}
    02225     virtual int getNumAttributes() const;
    02226     virtual const char *getAttributeName(int k) const;
    02227     virtual const char *getAttribute(int k) const;
    02228     virtual void setAttribute(int k, const char *val);
    02229     virtual const char *getAttributeDefault(int k) const;
    02231
    02234     const char * getName() const  {return name.c_str();}
    02235     void setName(const char * val)  {name = val;}
    02236     bool getIsCobject() const  {return isCobject;}
    02237     void setIsCobject(bool val)  {isCobject = val;}
    02238     const char * getBannerComment() const  {return bannerComment.c_str();}
    02239     void setBannerComment(const char * val)  {bannerComment = val;}
    02240     const char * getRightComment() const  {return rightComment.c_str();}
    02241     void setRightComment(const char * val)  {rightComment = val;}
    02242     const char * getTrailingComment() const  {return trailingComment.c_str();}
    02243     void setTrailingComment(const char * val)  {trailingComment = val;}
    02244
    02245     virtual ClassDeclNode *getNextClassDeclNodeSibling() const;
    02247 };
    02248
    02263 class MessageDeclNode : public NEDElement
    02264 {
    02265   private:
    02266     std::string name;
    02267     std::string bannerComment;
    02268     std::string rightComment;
    02269     std::string trailingComment;
    02270   public:
    02273     MessageDeclNode() {applyDefaults();}
    02274     MessageDeclNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    02275     virtual ~MessageDeclNode() {}
    02277
    02280     virtual const char *getTagName() const {return "message-decl";}
    02281     virtual int getTagCode() const {return NED_MESSAGE_DECL;}
    02282     virtual int getNumAttributes() const;
    02283     virtual const char *getAttributeName(int k) const;
    02284     virtual const char *getAttribute(int k) const;
    02285     virtual void setAttribute(int k, const char *val);
    02286     virtual const char *getAttributeDefault(int k) const;
    02288
    02291     const char * getName() const  {return name.c_str();}
    02292     void setName(const char * val)  {name = val;}
    02293     const char * getBannerComment() const  {return bannerComment.c_str();}
    02294     void setBannerComment(const char * val)  {bannerComment = val;}
    02295     const char * getRightComment() const  {return rightComment.c_str();}
    02296     void setRightComment(const char * val)  {rightComment = val;}
    02297     const char * getTrailingComment() const  {return trailingComment.c_str();}
    02298     void setTrailingComment(const char * val)  {trailingComment = val;}
    02299
    02300     virtual MessageDeclNode *getNextMessageDeclNodeSibling() const;
    02302 };
    02303
    02318 class EnumDeclNode : public NEDElement
    02319 {
    02320   private:
    02321     std::string name;
    02322     std::string bannerComment;
    02323     std::string rightComment;
    02324     std::string trailingComment;
    02325   public:
    02328     EnumDeclNode() {applyDefaults();}
    02329     EnumDeclNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    02330     virtual ~EnumDeclNode() {}
    02332
    02335     virtual const char *getTagName() const {return "enum-decl";}
    02336     virtual int getTagCode() const {return NED_ENUM_DECL;}
    02337     virtual int getNumAttributes() const;
    02338     virtual const char *getAttributeName(int k) const;
    02339     virtual const char *getAttribute(int k) const;
    02340     virtual void setAttribute(int k, const char *val);
    02341     virtual const char *getAttributeDefault(int k) const;
    02343
    02346     const char * getName() const  {return name.c_str();}
    02347     void setName(const char * val)  {name = val;}
    02348     const char * getBannerComment() const  {return bannerComment.c_str();}
    02349     void setBannerComment(const char * val)  {bannerComment = val;}
    02350     const char * getRightComment() const  {return rightComment.c_str();}
    02351     void setRightComment(const char * val)  {rightComment = val;}
    02352     const char * getTrailingComment() const  {return trailingComment.c_str();}
    02353     void setTrailingComment(const char * val)  {trailingComment = val;}
    02354
    02355     virtual EnumDeclNode *getNextEnumDeclNodeSibling() const;
    02357 };
    02358
    02375 class EnumNode : public NEDElement
    02376 {
    02377   private:
    02378     std::string name;
    02379     std::string extendsName;
    02380     std::string sourceCode;
    02381     std::string bannerComment;
    02382     std::string rightComment;
    02383     std::string trailingComment;
    02384   public:
    02387     EnumNode() {applyDefaults();}
    02388     EnumNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    02389     virtual ~EnumNode() {}
    02391
    02394     virtual const char *getTagName() const {return "enum";}
    02395     virtual int getTagCode() const {return NED_ENUM;}
    02396     virtual int getNumAttributes() const;
    02397     virtual const char *getAttributeName(int k) const;
    02398     virtual const char *getAttribute(int k) const;
    02399     virtual void setAttribute(int k, const char *val);
    02400     virtual const char *getAttributeDefault(int k) const;
    02402
    02405     const char * getName() const  {return name.c_str();}
    02406     void setName(const char * val)  {name = val;}
    02407     const char * getExtendsName() const  {return extendsName.c_str();}
    02408     void setExtendsName(const char * val)  {extendsName = val;}
    02409     const char * getSourceCode() const  {return sourceCode.c_str();}
    02410     void setSourceCode(const char * val)  {sourceCode = val;}
    02411     const char * getBannerComment() const  {return bannerComment.c_str();}
    02412     void setBannerComment(const char * val)  {bannerComment = val;}
    02413     const char * getRightComment() const  {return rightComment.c_str();}
    02414     void setRightComment(const char * val)  {rightComment = val;}
    02415     const char * getTrailingComment() const  {return trailingComment.c_str();}
    02416     void setTrailingComment(const char * val)  {trailingComment = val;}
    02417
    02418     virtual EnumNode *getNextEnumNodeSibling() const;
    02419     virtual EnumFieldsNode *getFirstEnumFieldsChild() const;
    02421 };
    02422
    02435 class EnumFieldsNode : public NEDElement
    02436 {
    02437   private:
    02438     std::string bannerComment;
    02439     std::string rightComment;
    02440   public:
    02443     EnumFieldsNode() {applyDefaults();}
    02444     EnumFieldsNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    02445     virtual ~EnumFieldsNode() {}
    02447
    02450     virtual const char *getTagName() const {return "enum-fields";}
    02451     virtual int getTagCode() const {return NED_ENUM_FIELDS;}
    02452     virtual int getNumAttributes() const;
    02453     virtual const char *getAttributeName(int k) const;
    02454     virtual const char *getAttribute(int k) const;
    02455     virtual void setAttribute(int k, const char *val);
    02456     virtual const char *getAttributeDefault(int k) const;
    02458
    02461     const char * getBannerComment() const  {return bannerComment.c_str();}
    02462     void setBannerComment(const char * val)  {bannerComment = val;}
    02463     const char * getRightComment() const  {return rightComment.c_str();}
    02464     void setRightComment(const char * val)  {rightComment = val;}
    02465
    02466     virtual EnumFieldsNode *getNextEnumFieldsNodeSibling() const;
    02467     virtual EnumFieldNode *getFirstEnumFieldChild() const;
    02469 };
    02470
    02485 class EnumFieldNode : public NEDElement
    02486 {
    02487   private:
    02488     std::string name;
    02489     std::string value;
    02490     std::string bannerComment;
    02491     std::string rightComment;
    02492   public:
    02495     EnumFieldNode() {applyDefaults();}
    02496     EnumFieldNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    02497     virtual ~EnumFieldNode() {}
    02499
    02502     virtual const char *getTagName() const {return "enum-field";}
    02503     virtual int getTagCode() const {return NED_ENUM_FIELD;}
    02504     virtual int getNumAttributes() const;
    02505     virtual const char *getAttributeName(int k) const;
    02506     virtual const char *getAttribute(int k) const;
    02507     virtual void setAttribute(int k, const char *val);
    02508     virtual const char *getAttributeDefault(int k) const;
    02510
    02513     const char * getName() const  {return name.c_str();}
    02514     void setName(const char * val)  {name = val;}
    02515     const char * getValue() const  {return value.c_str();}
    02516     void setValue(const char * val)  {value = val;}
    02517     const char * getBannerComment() const  {return bannerComment.c_str();}
    02518     void setBannerComment(const char * val)  {bannerComment = val;}
    02519     const char * getRightComment() const  {return rightComment.c_str();}
    02520     void setRightComment(const char * val)  {rightComment = val;}
    02521
    02522     virtual EnumFieldNode *getNextEnumFieldNodeSibling() const;
    02524 };
    02525
    02542 class MessageNode : public NEDElement
    02543 {
    02544   private:
    02545     std::string name;
    02546     std::string extendsName;
    02547     std::string sourceCode;
    02548     std::string bannerComment;
    02549     std::string rightComment;
    02550     std::string trailingComment;
    02551   public:
    02554     MessageNode() {applyDefaults();}
    02555     MessageNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    02556     virtual ~MessageNode() {}
    02558
    02561     virtual const char *getTagName() const {return "message";}
    02562     virtual int getTagCode() const {return NED_MESSAGE;}
    02563     virtual int getNumAttributes() const;
    02564     virtual const char *getAttributeName(int k) const;
    02565     virtual const char *getAttribute(int k) const;
    02566     virtual void setAttribute(int k, const char *val);
    02567     virtual const char *getAttributeDefault(int k) const;
    02569
    02572     const char * getName() const  {return name.c_str();}
    02573     void setName(const char * val)  {name = val;}
    02574     const char * getExtendsName() const  {return extendsName.c_str();}
    02575     void setExtendsName(const char * val)  {extendsName = val;}
    02576     const char * getSourceCode() const  {return sourceCode.c_str();}
    02577     void setSourceCode(const char * val)  {sourceCode = val;}
    02578     const char * getBannerComment() const  {return bannerComment.c_str();}
    02579     void setBannerComment(const char * val)  {bannerComment = val;}
    02580     const char * getRightComment() const  {return rightComment.c_str();}
    02581     void setRightComment(const char * val)  {rightComment = val;}
    02582     const char * getTrailingComment() const  {return trailingComment.c_str();}
    02583     void setTrailingComment(const char * val)  {trailingComment = val;}
    02584
    02585     virtual MessageNode *getNextMessageNodeSibling() const;
    02586     virtual PropertiesNode *getFirstPropertiesChild() const;
    02587     virtual FieldsNode *getFirstFieldsChild() const;
    02589 };
    02590
    02607 class ClassNode : public NEDElement
    02608 {
    02609   private:
    02610     std::string name;
    02611     std::string extendsName;
    02612     std::string sourceCode;
    02613     std::string bannerComment;
    02614     std::string rightComment;
    02615     std::string trailingComment;
    02616   public:
    02619     ClassNode() {applyDefaults();}
    02620     ClassNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    02621     virtual ~ClassNode() {}
    02623
    02626     virtual const char *getTagName() const {return "class";}
    02627     virtual int getTagCode() const {return NED_CLASS;}
    02628     virtual int getNumAttributes() const;
    02629     virtual const char *getAttributeName(int k) const;
    02630     virtual const char *getAttribute(int k) const;
    02631     virtual void setAttribute(int k, const char *val);
    02632     virtual const char *getAttributeDefault(int k) const;
    02634
    02637     const char * getName() const  {return name.c_str();}
    02638     void setName(const char * val)  {name = val;}
    02639     const char * getExtendsName() const  {return extendsName.c_str();}
    02640     void setExtendsName(const char * val)  {extendsName = val;}
    02641     const char * getSourceCode() const  {return sourceCode.c_str();}
    02642     void setSourceCode(const char * val)  {sourceCode = 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     const char * getTrailingComment() const  {return trailingComment.c_str();}
    02648     void setTrailingComment(const char * val)  {trailingComment = val;}
    02649
    02650     virtual ClassNode *getNextClassNodeSibling() const;
    02651     virtual PropertiesNode *getFirstPropertiesChild() const;
    02652     virtual FieldsNode *getFirstFieldsChild() const;
    02654 };
    02655
    02672 class StructNode : public NEDElement
    02673 {
    02674   private:
    02675     std::string name;
    02676     std::string extendsName;
    02677     std::string sourceCode;
    02678     std::string bannerComment;
    02679     std::string rightComment;
    02680     std::string trailingComment;
    02681   public:
    02684     StructNode() {applyDefaults();}
    02685     StructNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    02686     virtual ~StructNode() {}
    02688
    02691     virtual const char *getTagName() const {return "struct";}
    02692     virtual int getTagCode() const {return NED_STRUCT;}
    02693     virtual int getNumAttributes() const;
    02694     virtual const char *getAttributeName(int k) const;
    02695     virtual const char *getAttribute(int k) const;
    02696     virtual void setAttribute(int k, const char *val);
    02697     virtual const char *getAttributeDefault(int k) const;
    02699
    02702     const char * getName() const  {return name.c_str();}
    02703     void setName(const char * val)  {name = val;}
    02704     const char * getExtendsName() const  {return extendsName.c_str();}
    02705     void setExtendsName(const char * val)  {extendsName = val;}
    02706     const char * getSourceCode() const  {return sourceCode.c_str();}
    02707     void setSourceCode(const char * val)  {sourceCode = val;}
    02708     const char * getBannerComment() const  {return bannerComment.c_str();}
    02709     void setBannerComment(const char * val)  {bannerComment = val;}
    02710     const char * getRightComment() const  {return rightComment.c_str();}
    02711     void setRightComment(const char * val)  {rightComment = val;}
    02712     const char * getTrailingComment() const  {return trailingComment.c_str();}
    02713     void setTrailingComment(const char * val)  {trailingComment = val;}
    02714
    02715     virtual StructNode *getNextStructNodeSibling() const;
    02716     virtual PropertiesNode *getFirstPropertiesChild() const;
    02717     virtual FieldsNode *getFirstFieldsChild() const;
    02719 };
    02720
    02733 class FieldsNode : public NEDElement
    02734 {
    02735   private:
    02736     std::string bannerComment;
    02737     std::string rightComment;
    02738   public:
    02741     FieldsNode() {applyDefaults();}
    02742     FieldsNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    02743     virtual ~FieldsNode() {}
    02745
    02748     virtual const char *getTagName() const {return "fields";}
    02749     virtual int getTagCode() const {return NED_FIELDS;}
    02750     virtual int getNumAttributes() const;
    02751     virtual const char *getAttributeName(int k) const;
    02752     virtual const char *getAttribute(int k) const;
    02753     virtual void setAttribute(int k, const char *val);
    02754     virtual const char *getAttributeDefault(int k) const;
    02756
    02759     const char * getBannerComment() const  {return bannerComment.c_str();}
    02760     void setBannerComment(const char * val)  {bannerComment = val;}
    02761     const char * getRightComment() const  {return rightComment.c_str();}
    02762     void setRightComment(const char * val)  {rightComment = val;}
    02763
    02764     virtual FieldsNode *getNextFieldsNodeSibling() const;
    02765     virtual FieldNode *getFirstFieldChild() const;
    02767 };
    02768
    02789 class FieldNode : public NEDElement
    02790 {
    02791   private:
    02792     std::string name;
    02793     std::string dataType;
    02794     bool isAbstract;
    02795     bool isReadonly;
    02796     bool isVector;
    02797     std::string vectorSize;
    02798     std::string enumName;
    02799     std::string defaultValue;
    02800     std::string bannerComment;
    02801     std::string rightComment;
    02802   public:
    02805     FieldNode() {applyDefaults();}
    02806     FieldNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    02807     virtual ~FieldNode() {}
    02809
    02812     virtual const char *getTagName() const {return "field";}
    02813     virtual int getTagCode() const {return NED_FIELD;}
    02814     virtual int getNumAttributes() const;
    02815     virtual const char *getAttributeName(int k) const;
    02816     virtual const char *getAttribute(int k) const;
    02817     virtual void setAttribute(int k, const char *val);
    02818     virtual const char *getAttributeDefault(int k) const;
    02820
    02823     const char * getName() const  {return name.c_str();}
    02824     void setName(const char * val)  {name = val;}
    02825     const char * getDataType() const  {return dataType.c_str();}
    02826     void setDataType(const char * val)  {dataType = val;}
    02827     bool getIsAbstract() const  {return isAbstract;}
    02828     void setIsAbstract(bool val)  {isAbstract = val;}
    02829     bool getIsReadonly() const  {return isReadonly;}
    02830     void setIsReadonly(bool val)  {isReadonly = val;}
    02831     bool getIsVector() const  {return isVector;}
    02832     void setIsVector(bool val)  {isVector = val;}
    02833     const char * getVectorSize() const  {return vectorSize.c_str();}
    02834     void setVectorSize(const char * val)  {vectorSize = val;}
    02835     const char * getEnumName() const  {return enumName.c_str();}
    02836     void setEnumName(const char * val)  {enumName = val;}
    02837     const char * getDefaultValue() const  {return defaultValue.c_str();}
    02838     void setDefaultValue(const char * val)  {defaultValue = val;}
    02839     const char * getBannerComment() const  {return bannerComment.c_str();}
    02840     void setBannerComment(const char * val)  {bannerComment = val;}
    02841     const char * getRightComment() const  {return rightComment.c_str();}
    02842     void setRightComment(const char * val)  {rightComment = val;}
    02843
    02844     virtual FieldNode *getNextFieldNodeSibling() const;
    02846 };
    02847
    02860 class PropertiesNode : public NEDElement
    02861 {
    02862   private:
    02863     std::string bannerComment;
    02864     std::string rightComment;
    02865   public:
    02868     PropertiesNode() {applyDefaults();}
    02869     PropertiesNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    02870     virtual ~PropertiesNode() {}
    02872
    02875     virtual const char *getTagName() const {return "properties";}
    02876     virtual int getTagCode() const {return NED_PROPERTIES;}
    02877     virtual int getNumAttributes() const;
    02878     virtual const char *getAttributeName(int k) const;
    02879     virtual const char *getAttribute(int k) const;
    02880     virtual void setAttribute(int k, const char *val);
    02881     virtual const char *getAttributeDefault(int k) const;
    02883
    02886     const char * getBannerComment() const  {return bannerComment.c_str();}
    02887     void setBannerComment(const char * val)  {bannerComment = val;}
    02888     const char * getRightComment() const  {return rightComment.c_str();}
    02889     void setRightComment(const char * val)  {rightComment = val;}
    02890
    02891     virtual PropertiesNode *getNextPropertiesNodeSibling() const;
    02892     virtual PropertyNode *getFirstPropertyChild() const;
    02894 };
    02895
    02910 class PropertyNode : public NEDElement
    02911 {
    02912   private:
    02913     std::string name;
    02914     std::string value;
    02915     std::string bannerComment;
    02916     std::string rightComment;
    02917   public:
    02920     PropertyNode() {applyDefaults();}
    02921     PropertyNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    02922     virtual ~PropertyNode() {}
    02924
    02927     virtual const char *getTagName() const {return "property";}
    02928     virtual int getTagCode() const {return NED_PROPERTY;}
    02929     virtual int getNumAttributes() const;
    02930     virtual const char *getAttributeName(int k) const;
    02931     virtual const char *getAttribute(int k) const;
    02932     virtual void setAttribute(int k, const char *val);
    02933     virtual const char *getAttributeDefault(int k) const;
    02935
    02938     const char * getName() const  {return name.c_str();}
    02939     void setName(const char * val)  {name = val;}
    02940     const char * getValue() const  {return value.c_str();}
    02941     void setValue(const char * val)  {value = val;}
    02942     const char * getBannerComment() const  {return bannerComment.c_str();}
    02943     void setBannerComment(const char * val)  {bannerComment = val;}
    02944     const char * getRightComment() const  {return rightComment.c_str();}
    02945     void setRightComment(const char * val)  {rightComment = val;}
    02946
    02947     virtual PropertyNode *getNextPropertyNodeSibling() const;
    02949 };
    02950
    02962 class UnknownNode : public NEDElement
    02963 {
    02964   private:
    02965     std::string element;
    02966   public:
    02969     UnknownNode() {applyDefaults();}
    02970     UnknownNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
    02971     virtual ~UnknownNode() {}
    02973
    02976     virtual const char *getTagName() const {return "unknown";}
    02977     virtual int getTagCode() const {return NED_UNKNOWN;}
    02978     virtual int getNumAttributes() const;
    02979     virtual const char *getAttributeName(int k) const;
    02980     virtual const char *getAttribute(int k) const;
    02981     virtual void setAttribute(int k, const char *val);
    02982     virtual const char *getAttributeDefault(int k) const;
    02984
    02987     const char * getElement() const  {return element.c_str();}
    02988     void setElement(const char * val)  {element = val;}
    02989
    02990     virtual UnknownNode *getNextUnknownNodeSibling() const;
    02992 };
    02993
    02999 class NEDElementFactory
    03000 {
    03001   private:
    03002     static NEDElementFactory *f;
    03003     // ctor is private, because only one instance is allowed
    03004     NEDElementFactory() {}
    03005   public:
    03007     virtual ~NEDElementFactory() {}
    03009     static NEDElementFactory *getInstance();
    03011     virtual NEDElement *createNodeWithTag(const char *tagname);
    03013     virtual NEDElement *createNodeWithTag(int tagcode);
    03014 };
    03015
    03016 #endif
    03017