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