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 

Generated on Sat Oct 21 17:47:58 2006 for OMNeT++/OMNEST NEDXML by  doxygen 1.4.6