00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
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 EnumDeclNode;
00064 class EnumNode;
00065 class EnumFieldsNode;
00066 class EnumFieldNode;
00067 class MessageNode;
00068 class ClassNode;
00069 class StructNode;
00070 class FieldsNode;
00071 class FieldNode;
00072 class PropertiesNode;
00073 class PropertyNode;
00074 class UnknownNode;
00075
00076
00082 enum NEDElementCode {
00083 NED_NED_FILES,
00084 NED_NED_FILE,
00085 NED_IMPORT,
00086 NED_IMPORTED_FILE,
00087 NED_CHANNEL,
00088 NED_CHANNEL_ATTR,
00089 NED_NETWORK,
00090 NED_SIMPLE_MODULE,
00091 NED_COMPOUND_MODULE,
00092 NED_PARAMS,
00093 NED_PARAM,
00094 NED_GATES,
00095 NED_GATE,
00096 NED_MACHINES,
00097 NED_MACHINE,
00098 NED_SUBMODULES,
00099 NED_SUBMODULE,
00100 NED_SUBSTPARAMS,
00101 NED_SUBSTPARAM,
00102 NED_GATESIZES,
00103 NED_GATESIZE,
00104 NED_SUBSTMACHINES,
00105 NED_SUBSTMACHINE,
00106 NED_CONNECTIONS,
00107 NED_CONNECTION,
00108 NED_CONN_ATTR,
00109 NED_FOR_LOOP,
00110 NED_LOOP_VAR,
00111 NED_DISPLAY_STRING,
00112 NED_EXPRESSION,
00113 NED_OPERATOR,
00114 NED_FUNCTION,
00115 NED_PARAM_REF,
00116 NED_IDENT,
00117 NED_CONST,
00118 NED_CPLUSPLUS,
00119 NED_STRUCT_DECL,
00120 NED_CLASS_DECL,
00121 NED_ENUM_DECL,
00122 NED_ENUM,
00123 NED_ENUM_FIELDS,
00124 NED_ENUM_FIELD,
00125 NED_MESSAGE,
00126 NED_CLASS,
00127 NED_STRUCT,
00128 NED_FIELDS,
00129 NED_FIELD,
00130 NED_PROPERTIES,
00131 NED_PROPERTY,
00132 NED_UNKNOWN,
00133 };
00134
00135 enum {NED_GATEDIR_INPUT, NED_GATEDIR_OUTPUT};
00136 enum {NED_ARROWDIR_LEFT, NED_ARROWDIR_RIGHT};
00137 enum {NED_CONST_BOOL, NED_CONST_INT, NED_CONST_REAL, NED_CONST_STRING, NED_CONST_TIME};
00138
00149 class NedFilesNode : public NEDElement
00150 {
00151 private:
00152 public:
00155 NedFilesNode() {applyDefaults();}
00156 NedFilesNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00157 virtual ~NedFilesNode() {}
00159
00162 virtual const char *getTagName() const {return "ned-files";}
00163 virtual int getTagCode() const {return NED_NED_FILES;}
00164 virtual int getNumAttributes() const;
00165 virtual const char *getAttributeName(int k) const;
00166 virtual const char *getAttribute(int k) const;
00167 virtual void setAttribute(int k, const char *val);
00168 virtual const char *getAttributeDefault(int k) const;
00170
00173
00174 virtual NedFilesNode *getNextNedFilesNodeSibling() const;
00175 virtual NedFilesNode *getFirstNedFilesChild() const;
00176 virtual NedFileNode *getFirstNedFileChild() const;
00178 };
00179
00196 class NedFileNode : public NEDElement
00197 {
00198 private:
00199 std::string filename;
00200 std::string sourceCode;
00201 std::string preferredIndent;
00202 std::string bannerComment;
00203 public:
00206 NedFileNode() {applyDefaults();}
00207 NedFileNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00208 virtual ~NedFileNode() {}
00210
00213 virtual const char *getTagName() const {return "ned-file";}
00214 virtual int getTagCode() const {return NED_NED_FILE;}
00215 virtual int getNumAttributes() const;
00216 virtual const char *getAttributeName(int k) const;
00217 virtual const char *getAttribute(int k) const;
00218 virtual void setAttribute(int k, const char *val);
00219 virtual const char *getAttributeDefault(int k) const;
00221
00224 const char * getFilename() const {return filename.c_str();}
00225 void setFilename(const char * val) {filename = val;}
00226 const char * getSourceCode() const {return sourceCode.c_str();}
00227 void setSourceCode(const char * val) {sourceCode = val;}
00228 const char * getPreferredIndent() const {return preferredIndent.c_str();}
00229 void setPreferredIndent(const char * val) {preferredIndent = val;}
00230 const char * getBannerComment() const {return bannerComment.c_str();}
00231 void setBannerComment(const char * val) {bannerComment = val;}
00232
00233 virtual NedFileNode *getNextNedFileNodeSibling() const;
00234 virtual ImportNode *getFirstImportChild() const;
00235 virtual ChannelNode *getFirstChannelChild() const;
00236 virtual SimpleModuleNode *getFirstSimpleModuleChild() const;
00237 virtual CompoundModuleNode *getFirstCompoundModuleChild() const;
00238 virtual NetworkNode *getFirstNetworkChild() const;
00239 virtual CplusplusNode *getFirstCplusplusChild() const;
00240 virtual StructDeclNode *getFirstStructDeclChild() const;
00241 virtual ClassDeclNode *getFirstClassDeclChild() const;
00242 virtual EnumDeclNode *getFirstEnumDeclChild() const;
00243 virtual EnumNode *getFirstEnumChild() const;
00244 virtual MessageNode *getFirstMessageChild() const;
00245 virtual ClassNode *getFirstClassChild() const;
00246 virtual StructNode *getFirstStructChild() const;
00248 };
00249
00262 class ImportNode : public NEDElement
00263 {
00264 private:
00265 std::string bannerComment;
00266 std::string rightComment;
00267 public:
00270 ImportNode() {applyDefaults();}
00271 ImportNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00272 virtual ~ImportNode() {}
00274
00277 virtual const char *getTagName() const {return "import";}
00278 virtual int getTagCode() const {return NED_IMPORT;}
00279 virtual int getNumAttributes() const;
00280 virtual const char *getAttributeName(int k) const;
00281 virtual const char *getAttribute(int k) const;
00282 virtual void setAttribute(int k, const char *val);
00283 virtual const char *getAttributeDefault(int k) const;
00285
00288 const char * getBannerComment() const {return bannerComment.c_str();}
00289 void setBannerComment(const char * val) {bannerComment = val;}
00290 const char * getRightComment() const {return rightComment.c_str();}
00291 void setRightComment(const char * val) {rightComment = val;}
00292
00293 virtual ImportNode *getNextImportNodeSibling() const;
00294 virtual ImportedFileNode *getFirstImportedFileChild() const;
00296 };
00297
00311 class ImportedFileNode : public NEDElement
00312 {
00313 private:
00314 std::string filename;
00315 std::string bannerComment;
00316 std::string rightComment;
00317 public:
00320 ImportedFileNode() {applyDefaults();}
00321 ImportedFileNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00322 virtual ~ImportedFileNode() {}
00324
00327 virtual const char *getTagName() const {return "imported-file";}
00328 virtual int getTagCode() const {return NED_IMPORTED_FILE;}
00329 virtual int getNumAttributes() const;
00330 virtual const char *getAttributeName(int k) const;
00331 virtual const char *getAttribute(int k) const;
00332 virtual void setAttribute(int k, const char *val);
00333 virtual const char *getAttributeDefault(int k) const;
00335
00338 const char * getFilename() const {return filename.c_str();}
00339 void setFilename(const char * val) {filename = val;}
00340 const char * getBannerComment() const {return bannerComment.c_str();}
00341 void setBannerComment(const char * val) {bannerComment = val;}
00342 const char * getRightComment() const {return rightComment.c_str();}
00343 void setRightComment(const char * val) {rightComment = val;}
00344
00345 virtual ImportedFileNode *getNextImportedFileNodeSibling() const;
00347 };
00348
00364 class ChannelNode : public NEDElement
00365 {
00366 private:
00367 std::string name;
00368 std::string sourceCode;
00369 std::string bannerComment;
00370 std::string rightComment;
00371 std::string trailingComment;
00372 public:
00375 ChannelNode() {applyDefaults();}
00376 ChannelNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00377 virtual ~ChannelNode() {}
00379
00382 virtual const char *getTagName() const {return "channel";}
00383 virtual int getTagCode() const {return NED_CHANNEL;}
00384 virtual int getNumAttributes() const;
00385 virtual const char *getAttributeName(int k) const;
00386 virtual const char *getAttribute(int k) const;
00387 virtual void setAttribute(int k, const char *val);
00388 virtual const char *getAttributeDefault(int k) const;
00390
00393 const char * getName() const {return name.c_str();}
00394 void setName(const char * val) {name = val;}
00395 const char * getSourceCode() const {return sourceCode.c_str();}
00396 void setSourceCode(const char * val) {sourceCode = val;}
00397 const char * getBannerComment() const {return bannerComment.c_str();}
00398 void setBannerComment(const char * val) {bannerComment = val;}
00399 const char * getRightComment() const {return rightComment.c_str();}
00400 void setRightComment(const char * val) {rightComment = val;}
00401 const char * getTrailingComment() const {return trailingComment.c_str();}
00402 void setTrailingComment(const char * val) {trailingComment = val;}
00403
00404 virtual ChannelNode *getNextChannelNodeSibling() const;
00405 virtual ChannelAttrNode *getFirstChannelAttrChild() const;
00406 virtual DisplayStringNode *getFirstDisplayStringChild() const;
00408 };
00409
00424 class ChannelAttrNode : public NEDElement
00425 {
00426 private:
00427 std::string name;
00428 std::string value;
00429 std::string bannerComment;
00430 std::string rightComment;
00431 public:
00434 ChannelAttrNode() {applyDefaults();}
00435 ChannelAttrNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00436 virtual ~ChannelAttrNode() {}
00438
00441 virtual const char *getTagName() const {return "channel-attr";}
00442 virtual int getTagCode() const {return NED_CHANNEL_ATTR;}
00443 virtual int getNumAttributes() const;
00444 virtual const char *getAttributeName(int k) const;
00445 virtual const char *getAttribute(int k) const;
00446 virtual void setAttribute(int k, const char *val);
00447 virtual const char *getAttributeDefault(int k) const;
00449
00452 const char * getName() const {return name.c_str();}
00453 void setName(const char * val) {name = val;}
00454 const char * getValue() const {return value.c_str();}
00455 void setValue(const char * val) {value = val;}
00456 const char * getBannerComment() const {return bannerComment.c_str();}
00457 void setBannerComment(const char * val) {bannerComment = val;}
00458 const char * getRightComment() const {return rightComment.c_str();}
00459 void setRightComment(const char * val) {rightComment = val;}
00460
00461 virtual ChannelAttrNode *getNextChannelAttrNodeSibling() const;
00462 virtual ExpressionNode *getFirstExpressionChild() const;
00464 };
00465
00482 class NetworkNode : public NEDElement
00483 {
00484 private:
00485 std::string name;
00486 std::string typeName;
00487 std::string sourceCode;
00488 std::string bannerComment;
00489 std::string rightComment;
00490 std::string trailingComment;
00491 public:
00494 NetworkNode() {applyDefaults();}
00495 NetworkNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00496 virtual ~NetworkNode() {}
00498
00501 virtual const char *getTagName() const {return "network";}
00502 virtual int getTagCode() const {return NED_NETWORK;}
00503 virtual int getNumAttributes() const;
00504 virtual const char *getAttributeName(int k) const;
00505 virtual const char *getAttribute(int k) const;
00506 virtual void setAttribute(int k, const char *val);
00507 virtual const char *getAttributeDefault(int k) const;
00509
00512 const char * getName() const {return name.c_str();}
00513 void setName(const char * val) {name = val;}
00514 const char * getTypeName() const {return typeName.c_str();}
00515 void setTypeName(const char * val) {typeName = val;}
00516 const char * getSourceCode() const {return sourceCode.c_str();}
00517 void setSourceCode(const char * val) {sourceCode = val;}
00518 const char * getBannerComment() const {return bannerComment.c_str();}
00519 void setBannerComment(const char * val) {bannerComment = val;}
00520 const char * getRightComment() const {return rightComment.c_str();}
00521 void setRightComment(const char * val) {rightComment = val;}
00522 const char * getTrailingComment() const {return trailingComment.c_str();}
00523 void setTrailingComment(const char * val) {trailingComment = val;}
00524
00525 virtual NetworkNode *getNextNetworkNodeSibling() const;
00526 virtual SubstmachinesNode *getFirstSubstmachinesChild() const;
00527 virtual SubstparamsNode *getFirstSubstparamsChild() const;
00529 };
00530
00546 class SimpleModuleNode : public NEDElement
00547 {
00548 private:
00549 std::string name;
00550 std::string sourceCode;
00551 std::string bannerComment;
00552 std::string rightComment;
00553 std::string trailingComment;
00554 public:
00557 SimpleModuleNode() {applyDefaults();}
00558 SimpleModuleNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00559 virtual ~SimpleModuleNode() {}
00561
00564 virtual const char *getTagName() const {return "simple-module";}
00565 virtual int getTagCode() const {return NED_SIMPLE_MODULE;}
00566 virtual int getNumAttributes() const;
00567 virtual const char *getAttributeName(int k) const;
00568 virtual const char *getAttribute(int k) const;
00569 virtual void setAttribute(int k, const char *val);
00570 virtual const char *getAttributeDefault(int k) const;
00572
00575 const char * getName() const {return name.c_str();}
00576 void setName(const char * val) {name = val;}
00577 const char * getSourceCode() const {return sourceCode.c_str();}
00578 void setSourceCode(const char * val) {sourceCode = val;}
00579 const char * getBannerComment() const {return bannerComment.c_str();}
00580 void setBannerComment(const char * val) {bannerComment = val;}
00581 const char * getRightComment() const {return rightComment.c_str();}
00582 void setRightComment(const char * val) {rightComment = val;}
00583 const char * getTrailingComment() const {return trailingComment.c_str();}
00584 void setTrailingComment(const char * val) {trailingComment = val;}
00585
00586 virtual SimpleModuleNode *getNextSimpleModuleNodeSibling() const;
00587 virtual MachinesNode *getFirstMachinesChild() const;
00588 virtual ParamsNode *getFirstParamsChild() const;
00589 virtual GatesNode *getFirstGatesChild() const;
00590 virtual DisplayStringNode *getFirstDisplayStringChild() const;
00592 };
00593
00610 class CompoundModuleNode : public NEDElement
00611 {
00612 private:
00613 std::string name;
00614 std::string sourceCode;
00615 std::string bannerComment;
00616 std::string rightComment;
00617 std::string trailingComment;
00618 public:
00621 CompoundModuleNode() {applyDefaults();}
00622 CompoundModuleNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00623 virtual ~CompoundModuleNode() {}
00625
00628 virtual const char *getTagName() const {return "compound-module";}
00629 virtual int getTagCode() const {return NED_COMPOUND_MODULE;}
00630 virtual int getNumAttributes() const;
00631 virtual const char *getAttributeName(int k) const;
00632 virtual const char *getAttribute(int k) const;
00633 virtual void setAttribute(int k, const char *val);
00634 virtual const char *getAttributeDefault(int k) const;
00636
00639 const char * getName() const {return name.c_str();}
00640 void setName(const char * val) {name = val;}
00641 const char * getSourceCode() const {return sourceCode.c_str();}
00642 void setSourceCode(const char * val) {sourceCode = val;}
00643 const char * getBannerComment() const {return bannerComment.c_str();}
00644 void setBannerComment(const char * val) {bannerComment = val;}
00645 const char * getRightComment() const {return rightComment.c_str();}
00646 void setRightComment(const char * val) {rightComment = val;}
00647 const char * getTrailingComment() const {return trailingComment.c_str();}
00648 void setTrailingComment(const char * val) {trailingComment = val;}
00649
00650 virtual CompoundModuleNode *getNextCompoundModuleNodeSibling() const;
00651 virtual MachinesNode *getFirstMachinesChild() const;
00652 virtual ParamsNode *getFirstParamsChild() const;
00653 virtual GatesNode *getFirstGatesChild() const;
00654 virtual SubmodulesNode *getFirstSubmodulesChild() const;
00655 virtual ConnectionsNode *getFirstConnectionsChild() const;
00656 virtual DisplayStringNode *getFirstDisplayStringChild() const;
00658 };
00659
00672 class ParamsNode : public NEDElement
00673 {
00674 private:
00675 std::string bannerComment;
00676 std::string rightComment;
00677 public:
00680 ParamsNode() {applyDefaults();}
00681 ParamsNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00682 virtual ~ParamsNode() {}
00684
00687 virtual const char *getTagName() const {return "params";}
00688 virtual int getTagCode() const {return NED_PARAMS;}
00689 virtual int getNumAttributes() const;
00690 virtual const char *getAttributeName(int k) const;
00691 virtual const char *getAttribute(int k) const;
00692 virtual void setAttribute(int k, const char *val);
00693 virtual const char *getAttributeDefault(int k) const;
00695
00698 const char * getBannerComment() const {return bannerComment.c_str();}
00699 void setBannerComment(const char * val) {bannerComment = val;}
00700 const char * getRightComment() const {return rightComment.c_str();}
00701 void setRightComment(const char * val) {rightComment = val;}
00702
00703 virtual ParamsNode *getNextParamsNodeSibling() const;
00704 virtual ParamNode *getFirstParamChild() const;
00706 };
00707
00722 class ParamNode : public NEDElement
00723 {
00724 private:
00725 std::string name;
00726 std::string dataType;
00727 std::string bannerComment;
00728 std::string rightComment;
00729 public:
00732 ParamNode() {applyDefaults();}
00733 ParamNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00734 virtual ~ParamNode() {}
00736
00739 virtual const char *getTagName() const {return "param";}
00740 virtual int getTagCode() const {return NED_PARAM;}
00741 virtual int getNumAttributes() const;
00742 virtual const char *getAttributeName(int k) const;
00743 virtual const char *getAttribute(int k) const;
00744 virtual void setAttribute(int k, const char *val);
00745 virtual const char *getAttributeDefault(int k) const;
00747
00750 const char * getName() const {return name.c_str();}
00751 void setName(const char * val) {name = val;}
00752 const char * getDataType() const {return dataType.c_str();}
00753 void setDataType(const char * val) {dataType = val;}
00754 const char * getBannerComment() const {return bannerComment.c_str();}
00755 void setBannerComment(const char * val) {bannerComment = val;}
00756 const char * getRightComment() const {return rightComment.c_str();}
00757 void setRightComment(const char * val) {rightComment = val;}
00758
00759 virtual ParamNode *getNextParamNodeSibling() const;
00761 };
00762
00775 class GatesNode : public NEDElement
00776 {
00777 private:
00778 std::string bannerComment;
00779 std::string rightComment;
00780 public:
00783 GatesNode() {applyDefaults();}
00784 GatesNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00785 virtual ~GatesNode() {}
00787
00790 virtual const char *getTagName() const {return "gates";}
00791 virtual int getTagCode() const {return NED_GATES;}
00792 virtual int getNumAttributes() const;
00793 virtual const char *getAttributeName(int k) const;
00794 virtual const char *getAttribute(int k) const;
00795 virtual void setAttribute(int k, const char *val);
00796 virtual const char *getAttributeDefault(int k) const;
00798
00801 const char * getBannerComment() const {return bannerComment.c_str();}
00802 void setBannerComment(const char * val) {bannerComment = val;}
00803 const char * getRightComment() const {return rightComment.c_str();}
00804 void setRightComment(const char * val) {rightComment = val;}
00805
00806 virtual GatesNode *getNextGatesNodeSibling() const;
00807 virtual GateNode *getFirstGateChild() const;
00809 };
00810
00826 class GateNode : public NEDElement
00827 {
00828 private:
00829 std::string name;
00830 int direction;
00831 bool isVector;
00832 std::string bannerComment;
00833 std::string rightComment;
00834 public:
00837 GateNode() {applyDefaults();}
00838 GateNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00839 virtual ~GateNode() {}
00841
00844 virtual const char *getTagName() const {return "gate";}
00845 virtual int getTagCode() const {return NED_GATE;}
00846 virtual int getNumAttributes() const;
00847 virtual const char *getAttributeName(int k) const;
00848 virtual const char *getAttribute(int k) const;
00849 virtual void setAttribute(int k, const char *val);
00850 virtual const char *getAttributeDefault(int k) const;
00852
00855 const char * getName() const {return name.c_str();}
00856 void setName(const char * val) {name = val;}
00857 int getDirection() const {return direction;}
00858 void setDirection(int val) {direction = val;}
00859 bool getIsVector() const {return isVector;}
00860 void setIsVector(bool val) {isVector = val;}
00861 const char * getBannerComment() const {return bannerComment.c_str();}
00862 void setBannerComment(const char * val) {bannerComment = val;}
00863 const char * getRightComment() const {return rightComment.c_str();}
00864 void setRightComment(const char * val) {rightComment = val;}
00865
00866 virtual GateNode *getNextGateNodeSibling() const;
00868 };
00869
00882 class MachinesNode : public NEDElement
00883 {
00884 private:
00885 std::string bannerComment;
00886 std::string rightComment;
00887 public:
00890 MachinesNode() {applyDefaults();}
00891 MachinesNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00892 virtual ~MachinesNode() {}
00894
00897 virtual const char *getTagName() const {return "machines";}
00898 virtual int getTagCode() const {return NED_MACHINES;}
00899 virtual int getNumAttributes() const;
00900 virtual const char *getAttributeName(int k) const;
00901 virtual const char *getAttribute(int k) const;
00902 virtual void setAttribute(int k, const char *val);
00903 virtual const char *getAttributeDefault(int k) const;
00905
00908 const char * getBannerComment() const {return bannerComment.c_str();}
00909 void setBannerComment(const char * val) {bannerComment = val;}
00910 const char * getRightComment() const {return rightComment.c_str();}
00911 void setRightComment(const char * val) {rightComment = val;}
00912
00913 virtual MachinesNode *getNextMachinesNodeSibling() const;
00914 virtual MachineNode *getFirstMachineChild() const;
00916 };
00917
00931 class MachineNode : public NEDElement
00932 {
00933 private:
00934 std::string name;
00935 std::string bannerComment;
00936 std::string rightComment;
00937 public:
00940 MachineNode() {applyDefaults();}
00941 MachineNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00942 virtual ~MachineNode() {}
00944
00947 virtual const char *getTagName() const {return "machine";}
00948 virtual int getTagCode() const {return NED_MACHINE;}
00949 virtual int getNumAttributes() const;
00950 virtual const char *getAttributeName(int k) const;
00951 virtual const char *getAttribute(int k) const;
00952 virtual void setAttribute(int k, const char *val);
00953 virtual const char *getAttributeDefault(int k) const;
00955
00958 const char * getName() const {return name.c_str();}
00959 void setName(const char * val) {name = val;}
00960 const char * getBannerComment() const {return bannerComment.c_str();}
00961 void setBannerComment(const char * val) {bannerComment = val;}
00962 const char * getRightComment() const {return rightComment.c_str();}
00963 void setRightComment(const char * val) {rightComment = val;}
00964
00965 virtual MachineNode *getNextMachineNodeSibling() const;
00967 };
00968
00981 class SubmodulesNode : public NEDElement
00982 {
00983 private:
00984 std::string bannerComment;
00985 std::string rightComment;
00986 public:
00989 SubmodulesNode() {applyDefaults();}
00990 SubmodulesNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
00991 virtual ~SubmodulesNode() {}
00993
00996 virtual const char *getTagName() const {return "submodules";}
00997 virtual int getTagCode() const {return NED_SUBMODULES;}
00998 virtual int getNumAttributes() const;
00999 virtual const char *getAttributeName(int k) const;
01000 virtual const char *getAttribute(int k) const;
01001 virtual void setAttribute(int k, const char *val);
01002 virtual const char *getAttributeDefault(int k) const;
01004
01007 const char * getBannerComment() const {return bannerComment.c_str();}
01008 void setBannerComment(const char * val) {bannerComment = val;}
01009 const char * getRightComment() const {return rightComment.c_str();}
01010 void setRightComment(const char * val) {rightComment = val;}
01011
01012 virtual SubmodulesNode *getNextSubmodulesNodeSibling() const;
01013 virtual SubmoduleNode *getFirstSubmoduleChild() const;
01015 };
01016
01034 class SubmoduleNode : public NEDElement
01035 {
01036 private:
01037 std::string name;
01038 std::string typeName;
01039 std::string likeParam;
01040 std::string vectorSize;
01041 std::string bannerComment;
01042 std::string rightComment;
01043 public:
01046 SubmoduleNode() {applyDefaults();}
01047 SubmoduleNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01048 virtual ~SubmoduleNode() {}
01050
01053 virtual const char *getTagName() const {return "submodule";}
01054 virtual int getTagCode() const {return NED_SUBMODULE;}
01055 virtual int getNumAttributes() const;
01056 virtual const char *getAttributeName(int k) const;
01057 virtual const char *getAttribute(int k) const;
01058 virtual void setAttribute(int k, const char *val);
01059 virtual const char *getAttributeDefault(int k) const;
01061
01064 const char * getName() const {return name.c_str();}
01065 void setName(const char * val) {name = val;}
01066 const char * getTypeName() const {return typeName.c_str();}
01067 void setTypeName(const char * val) {typeName = val;}
01068 const char * getLikeParam() const {return likeParam.c_str();}
01069 void setLikeParam(const char * val) {likeParam = val;}
01070 const char * getVectorSize() const {return vectorSize.c_str();}
01071 void setVectorSize(const char * val) {vectorSize = val;}
01072 const char * getBannerComment() const {return bannerComment.c_str();}
01073 void setBannerComment(const char * val) {bannerComment = val;}
01074 const char * getRightComment() const {return rightComment.c_str();}
01075 void setRightComment(const char * val) {rightComment = val;}
01076
01077 virtual SubmoduleNode *getNextSubmoduleNodeSibling() const;
01078 virtual ExpressionNode *getFirstExpressionChild() const;
01079 virtual SubstmachinesNode *getFirstSubstmachinesChild() const;
01080 virtual SubstparamsNode *getFirstSubstparamsChild() const;
01081 virtual GatesizesNode *getFirstGatesizesChild() const;
01082 virtual DisplayStringNode *getFirstDisplayStringChild() const;
01084 };
01085
01099 class SubstparamsNode : public NEDElement
01100 {
01101 private:
01102 std::string condition;
01103 std::string bannerComment;
01104 std::string rightComment;
01105 public:
01108 SubstparamsNode() {applyDefaults();}
01109 SubstparamsNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01110 virtual ~SubstparamsNode() {}
01112
01115 virtual const char *getTagName() const {return "substparams";}
01116 virtual int getTagCode() const {return NED_SUBSTPARAMS;}
01117 virtual int getNumAttributes() const;
01118 virtual const char *getAttributeName(int k) const;
01119 virtual const char *getAttribute(int k) const;
01120 virtual void setAttribute(int k, const char *val);
01121 virtual const char *getAttributeDefault(int k) const;
01123
01126 const char * getCondition() const {return condition.c_str();}
01127 void setCondition(const char * val) {condition = val;}
01128 const char * getBannerComment() const {return bannerComment.c_str();}
01129 void setBannerComment(const char * val) {bannerComment = val;}
01130 const char * getRightComment() const {return rightComment.c_str();}
01131 void setRightComment(const char * val) {rightComment = val;}
01132
01133 virtual SubstparamsNode *getNextSubstparamsNodeSibling() const;
01134 virtual ExpressionNode *getFirstExpressionChild() const;
01135 virtual SubstparamNode *getFirstSubstparamChild() const;
01137 };
01138
01153 class SubstparamNode : public NEDElement
01154 {
01155 private:
01156 std::string name;
01157 std::string value;
01158 std::string bannerComment;
01159 std::string rightComment;
01160 public:
01163 SubstparamNode() {applyDefaults();}
01164 SubstparamNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01165 virtual ~SubstparamNode() {}
01167
01170 virtual const char *getTagName() const {return "substparam";}
01171 virtual int getTagCode() const {return NED_SUBSTPARAM;}
01172 virtual int getNumAttributes() const;
01173 virtual const char *getAttributeName(int k) const;
01174 virtual const char *getAttribute(int k) const;
01175 virtual void setAttribute(int k, const char *val);
01176 virtual const char *getAttributeDefault(int k) const;
01178
01181 const char * getName() const {return name.c_str();}
01182 void setName(const char * val) {name = val;}
01183 const char * getValue() const {return value.c_str();}
01184 void setValue(const char * val) {value = val;}
01185 const char * getBannerComment() const {return bannerComment.c_str();}
01186 void setBannerComment(const char * val) {bannerComment = val;}
01187 const char * getRightComment() const {return rightComment.c_str();}
01188 void setRightComment(const char * val) {rightComment = val;}
01189
01190 virtual SubstparamNode *getNextSubstparamNodeSibling() const;
01191 virtual ExpressionNode *getFirstExpressionChild() const;
01193 };
01194
01208 class GatesizesNode : public NEDElement
01209 {
01210 private:
01211 std::string condition;
01212 std::string bannerComment;
01213 std::string rightComment;
01214 public:
01217 GatesizesNode() {applyDefaults();}
01218 GatesizesNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01219 virtual ~GatesizesNode() {}
01221
01224 virtual const char *getTagName() const {return "gatesizes";}
01225 virtual int getTagCode() const {return NED_GATESIZES;}
01226 virtual int getNumAttributes() const;
01227 virtual const char *getAttributeName(int k) const;
01228 virtual const char *getAttribute(int k) const;
01229 virtual void setAttribute(int k, const char *val);
01230 virtual const char *getAttributeDefault(int k) const;
01232
01235 const char * getCondition() const {return condition.c_str();}
01236 void setCondition(const char * val) {condition = val;}
01237 const char * getBannerComment() const {return bannerComment.c_str();}
01238 void setBannerComment(const char * val) {bannerComment = val;}
01239 const char * getRightComment() const {return rightComment.c_str();}
01240 void setRightComment(const char * val) {rightComment = val;}
01241
01242 virtual GatesizesNode *getNextGatesizesNodeSibling() const;
01243 virtual ExpressionNode *getFirstExpressionChild() const;
01244 virtual GatesizeNode *getFirstGatesizeChild() const;
01246 };
01247
01262 class GatesizeNode : public NEDElement
01263 {
01264 private:
01265 std::string name;
01266 std::string vectorSize;
01267 std::string bannerComment;
01268 std::string rightComment;
01269 public:
01272 GatesizeNode() {applyDefaults();}
01273 GatesizeNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01274 virtual ~GatesizeNode() {}
01276
01279 virtual const char *getTagName() const {return "gatesize";}
01280 virtual int getTagCode() const {return NED_GATESIZE;}
01281 virtual int getNumAttributes() const;
01282 virtual const char *getAttributeName(int k) const;
01283 virtual const char *getAttribute(int k) const;
01284 virtual void setAttribute(int k, const char *val);
01285 virtual const char *getAttributeDefault(int k) const;
01287
01290 const char * getName() const {return name.c_str();}
01291 void setName(const char * val) {name = val;}
01292 const char * getVectorSize() const {return vectorSize.c_str();}
01293 void setVectorSize(const char * val) {vectorSize = 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 GatesizeNode *getNextGatesizeNodeSibling() const;
01300 virtual ExpressionNode *getFirstExpressionChild() const;
01302 };
01303
01317 class SubstmachinesNode : public NEDElement
01318 {
01319 private:
01320 std::string condition;
01321 std::string bannerComment;
01322 std::string rightComment;
01323 public:
01326 SubstmachinesNode() {applyDefaults();}
01327 SubstmachinesNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01328 virtual ~SubstmachinesNode() {}
01330
01333 virtual const char *getTagName() const {return "substmachines";}
01334 virtual int getTagCode() const {return NED_SUBSTMACHINES;}
01335 virtual int getNumAttributes() const;
01336 virtual const char *getAttributeName(int k) const;
01337 virtual const char *getAttribute(int k) const;
01338 virtual void setAttribute(int k, const char *val);
01339 virtual const char *getAttributeDefault(int k) const;
01341
01344 const char * getCondition() const {return condition.c_str();}
01345 void setCondition(const char * val) {condition = val;}
01346 const char * getBannerComment() const {return bannerComment.c_str();}
01347 void setBannerComment(const char * val) {bannerComment = val;}
01348 const char * getRightComment() const {return rightComment.c_str();}
01349 void setRightComment(const char * val) {rightComment = val;}
01350
01351 virtual SubstmachinesNode *getNextSubstmachinesNodeSibling() const;
01352 virtual ExpressionNode *getFirstExpressionChild() const;
01353 virtual SubstmachineNode *getFirstSubstmachineChild() const;
01355 };
01356
01370 class SubstmachineNode : public NEDElement
01371 {
01372 private:
01373 std::string name;
01374 std::string bannerComment;
01375 std::string rightComment;
01376 public:
01379 SubstmachineNode() {applyDefaults();}
01380 SubstmachineNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01381 virtual ~SubstmachineNode() {}
01383
01386 virtual const char *getTagName() const {return "substmachine";}
01387 virtual int getTagCode() const {return NED_SUBSTMACHINE;}
01388 virtual int getNumAttributes() const;
01389 virtual const char *getAttributeName(int k) const;
01390 virtual const char *getAttribute(int k) const;
01391 virtual void setAttribute(int k, const char *val);
01392 virtual const char *getAttributeDefault(int k) const;
01394
01397 const char * getName() const {return name.c_str();}
01398 void setName(const char * val) {name = val;}
01399 const char * getBannerComment() const {return bannerComment.c_str();}
01400 void setBannerComment(const char * val) {bannerComment = val;}
01401 const char * getRightComment() const {return rightComment.c_str();}
01402 void setRightComment(const char * val) {rightComment = val;}
01403
01404 virtual SubstmachineNode *getNextSubstmachineNodeSibling() const;
01406 };
01407
01421 class ConnectionsNode : public NEDElement
01422 {
01423 private:
01424 bool checkUnconnected;
01425 std::string bannerComment;
01426 std::string rightComment;
01427 public:
01430 ConnectionsNode() {applyDefaults();}
01431 ConnectionsNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01432 virtual ~ConnectionsNode() {}
01434
01437 virtual const char *getTagName() const {return "connections";}
01438 virtual int getTagCode() const {return NED_CONNECTIONS;}
01439 virtual int getNumAttributes() const;
01440 virtual const char *getAttributeName(int k) const;
01441 virtual const char *getAttribute(int k) const;
01442 virtual void setAttribute(int k, const char *val);
01443 virtual const char *getAttributeDefault(int k) const;
01445
01448 bool getCheckUnconnected() const {return checkUnconnected;}
01449 void setCheckUnconnected(bool val) {checkUnconnected = val;}
01450 const char * getBannerComment() const {return bannerComment.c_str();}
01451 void setBannerComment(const char * val) {bannerComment = val;}
01452 const char * getRightComment() const {return rightComment.c_str();}
01453 void setRightComment(const char * val) {rightComment = val;}
01454
01455 virtual ConnectionsNode *getNextConnectionsNodeSibling() const;
01456 virtual ConnectionNode *getFirstConnectionChild() const;
01457 virtual ForLoopNode *getFirstForLoopChild() const;
01459 };
01460
01485 class ConnectionNode : public NEDElement
01486 {
01487 private:
01488 std::string condition;
01489 std::string srcModule;
01490 std::string srcModuleIndex;
01491 std::string srcGate;
01492 bool srcGatePlusplus;
01493 std::string srcGateIndex;
01494 std::string destModule;
01495 std::string destModuleIndex;
01496 std::string destGate;
01497 bool destGatePlusplus;
01498 std::string destGateIndex;
01499 int arrowDirection;
01500 std::string bannerComment;
01501 std::string rightComment;
01502 public:
01505 ConnectionNode() {applyDefaults();}
01506 ConnectionNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01507 virtual ~ConnectionNode() {}
01509
01512 virtual const char *getTagName() const {return "connection";}
01513 virtual int getTagCode() const {return NED_CONNECTION;}
01514 virtual int getNumAttributes() const;
01515 virtual const char *getAttributeName(int k) const;
01516 virtual const char *getAttribute(int k) const;
01517 virtual void setAttribute(int k, const char *val);
01518 virtual const char *getAttributeDefault(int k) const;
01520
01523 const char * getCondition() const {return condition.c_str();}
01524 void setCondition(const char * val) {condition = val;}
01525 const char * getSrcModule() const {return srcModule.c_str();}
01526 void setSrcModule(const char * val) {srcModule = val;}
01527 const char * getSrcModuleIndex() const {return srcModuleIndex.c_str();}
01528 void setSrcModuleIndex(const char * val) {srcModuleIndex = val;}
01529 const char * getSrcGate() const {return srcGate.c_str();}
01530 void setSrcGate(const char * val) {srcGate = val;}
01531 bool getSrcGatePlusplus() const {return srcGatePlusplus;}
01532 void setSrcGatePlusplus(bool val) {srcGatePlusplus = val;}
01533 const char * getSrcGateIndex() const {return srcGateIndex.c_str();}
01534 void setSrcGateIndex(const char * val) {srcGateIndex = val;}
01535 const char * getDestModule() const {return destModule.c_str();}
01536 void setDestModule(const char * val) {destModule = val;}
01537 const char * getDestModuleIndex() const {return destModuleIndex.c_str();}
01538 void setDestModuleIndex(const char * val) {destModuleIndex = val;}
01539 const char * getDestGate() const {return destGate.c_str();}
01540 void setDestGate(const char * val) {destGate = val;}
01541 bool getDestGatePlusplus() const {return destGatePlusplus;}
01542 void setDestGatePlusplus(bool val) {destGatePlusplus = val;}
01543 const char * getDestGateIndex() const {return destGateIndex.c_str();}
01544 void setDestGateIndex(const char * val) {destGateIndex = val;}
01545 int getArrowDirection() const {return arrowDirection;}
01546 void setArrowDirection(int val) {arrowDirection = val;}
01547 const char * getBannerComment() const {return bannerComment.c_str();}
01548 void setBannerComment(const char * val) {bannerComment = val;}
01549 const char * getRightComment() const {return rightComment.c_str();}
01550 void setRightComment(const char * val) {rightComment = val;}
01551
01552 virtual ConnectionNode *getNextConnectionNodeSibling() const;
01553 virtual ExpressionNode *getFirstExpressionChild() const;
01554 virtual ConnAttrNode *getFirstConnAttrChild() const;
01555 virtual DisplayStringNode *getFirstDisplayStringChild() const;
01557 };
01558
01572 class ConnAttrNode : public NEDElement
01573 {
01574 private:
01575 std::string name;
01576 std::string value;
01577 std::string rightComment;
01578 public:
01581 ConnAttrNode() {applyDefaults();}
01582 ConnAttrNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01583 virtual ~ConnAttrNode() {}
01585
01588 virtual const char *getTagName() const {return "conn-attr";}
01589 virtual int getTagCode() const {return NED_CONN_ATTR;}
01590 virtual int getNumAttributes() const;
01591 virtual const char *getAttributeName(int k) const;
01592 virtual const char *getAttribute(int k) const;
01593 virtual void setAttribute(int k, const char *val);
01594 virtual const char *getAttributeDefault(int k) const;
01596
01599 const char * getName() const {return name.c_str();}
01600 void setName(const char * val) {name = val;}
01601 const char * getValue() const {return value.c_str();}
01602 void setValue(const char * val) {value = val;}
01603 const char * getRightComment() const {return rightComment.c_str();}
01604 void setRightComment(const char * val) {rightComment = val;}
01605
01606 virtual ConnAttrNode *getNextConnAttrNodeSibling() const;
01607 virtual ExpressionNode *getFirstExpressionChild() const;
01609 };
01610
01624 class ForLoopNode : public NEDElement
01625 {
01626 private:
01627 std::string bannerComment;
01628 std::string rightComment;
01629 std::string trailingComment;
01630 public:
01633 ForLoopNode() {applyDefaults();}
01634 ForLoopNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01635 virtual ~ForLoopNode() {}
01637
01640 virtual const char *getTagName() const {return "for-loop";}
01641 virtual int getTagCode() const {return NED_FOR_LOOP;}
01642 virtual int getNumAttributes() const;
01643 virtual const char *getAttributeName(int k) const;
01644 virtual const char *getAttribute(int k) const;
01645 virtual void setAttribute(int k, const char *val);
01646 virtual const char *getAttributeDefault(int k) const;
01648
01651 const char * getBannerComment() const {return bannerComment.c_str();}
01652 void setBannerComment(const char * val) {bannerComment = val;}
01653 const char * getRightComment() const {return rightComment.c_str();}
01654 void setRightComment(const char * val) {rightComment = val;}
01655 const char * getTrailingComment() const {return trailingComment.c_str();}
01656 void setTrailingComment(const char * val) {trailingComment = val;}
01657
01658 virtual ForLoopNode *getNextForLoopNodeSibling() const;
01659 virtual LoopVarNode *getFirstLoopVarChild() const;
01660 virtual ConnectionNode *getFirstConnectionChild() const;
01662 };
01663
01679 class LoopVarNode : public NEDElement
01680 {
01681 private:
01682 std::string paramName;
01683 std::string fromValue;
01684 std::string toValue;
01685 std::string bannerComment;
01686 std::string rightComment;
01687 public:
01690 LoopVarNode() {applyDefaults();}
01691 LoopVarNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01692 virtual ~LoopVarNode() {}
01694
01697 virtual const char *getTagName() const {return "loop-var";}
01698 virtual int getTagCode() const {return NED_LOOP_VAR;}
01699 virtual int getNumAttributes() const;
01700 virtual const char *getAttributeName(int k) const;
01701 virtual const char *getAttribute(int k) const;
01702 virtual void setAttribute(int k, const char *val);
01703 virtual const char *getAttributeDefault(int k) const;
01705
01708 const char * getParamName() const {return paramName.c_str();}
01709 void setParamName(const char * val) {paramName = val;}
01710 const char * getFromValue() const {return fromValue.c_str();}
01711 void setFromValue(const char * val) {fromValue = val;}
01712 const char * getToValue() const {return toValue.c_str();}
01713 void setToValue(const char * val) {toValue = val;}
01714 const char * getBannerComment() const {return bannerComment.c_str();}
01715 void setBannerComment(const char * val) {bannerComment = val;}
01716 const char * getRightComment() const {return rightComment.c_str();}
01717 void setRightComment(const char * val) {rightComment = val;}
01718
01719 virtual LoopVarNode *getNextLoopVarNodeSibling() const;
01720 virtual ExpressionNode *getFirstExpressionChild() const;
01722 };
01723
01737 class DisplayStringNode : public NEDElement
01738 {
01739 private:
01740 std::string value;
01741 std::string bannerComment;
01742 std::string rightComment;
01743 public:
01746 DisplayStringNode() {applyDefaults();}
01747 DisplayStringNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01748 virtual ~DisplayStringNode() {}
01750
01753 virtual const char *getTagName() const {return "display-string";}
01754 virtual int getTagCode() const {return NED_DISPLAY_STRING;}
01755 virtual int getNumAttributes() const;
01756 virtual const char *getAttributeName(int k) const;
01757 virtual const char *getAttribute(int k) const;
01758 virtual void setAttribute(int k, const char *val);
01759 virtual const char *getAttributeDefault(int k) const;
01761
01764 const char * getValue() const {return value.c_str();}
01765 void setValue(const char * val) {value = val;}
01766 const char * getBannerComment() const {return bannerComment.c_str();}
01767 void setBannerComment(const char * val) {bannerComment = val;}
01768 const char * getRightComment() const {return rightComment.c_str();}
01769 void setRightComment(const char * val) {rightComment = val;}
01770
01771 virtual DisplayStringNode *getNextDisplayStringNodeSibling() const;
01773 };
01774
01786 class ExpressionNode : public NEDElement
01787 {
01788 private:
01789 std::string target;
01790 public:
01793 ExpressionNode() {applyDefaults();}
01794 ExpressionNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01795 virtual ~ExpressionNode() {}
01797
01800 virtual const char *getTagName() const {return "expression";}
01801 virtual int getTagCode() const {return NED_EXPRESSION;}
01802 virtual int getNumAttributes() const;
01803 virtual const char *getAttributeName(int k) const;
01804 virtual const char *getAttribute(int k) const;
01805 virtual void setAttribute(int k, const char *val);
01806 virtual const char *getAttributeDefault(int k) const;
01808
01811 const char * getTarget() const {return target.c_str();}
01812 void setTarget(const char * val) {target = val;}
01813
01814 virtual ExpressionNode *getNextExpressionNodeSibling() const;
01815 virtual OperatorNode *getFirstOperatorChild() const;
01816 virtual FunctionNode *getFirstFunctionChild() const;
01817 virtual ParamRefNode *getFirstParamRefChild() const;
01818 virtual IdentNode *getFirstIdentChild() const;
01819 virtual ConstNode *getFirstConstChild() const;
01821 };
01822
01834 class OperatorNode : public NEDElement
01835 {
01836 private:
01837 std::string name;
01838 public:
01841 OperatorNode() {applyDefaults();}
01842 OperatorNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01843 virtual ~OperatorNode() {}
01845
01848 virtual const char *getTagName() const {return "operator";}
01849 virtual int getTagCode() const {return NED_OPERATOR;}
01850 virtual int getNumAttributes() const;
01851 virtual const char *getAttributeName(int k) const;
01852 virtual const char *getAttribute(int k) const;
01853 virtual void setAttribute(int k, const char *val);
01854 virtual const char *getAttributeDefault(int k) const;
01856
01859 const char * getName() const {return name.c_str();}
01860 void setName(const char * val) {name = val;}
01861
01862 virtual OperatorNode *getNextOperatorNodeSibling() const;
01863 virtual OperatorNode *getFirstOperatorChild() const;
01864 virtual FunctionNode *getFirstFunctionChild() const;
01865 virtual ParamRefNode *getFirstParamRefChild() const;
01866 virtual IdentNode *getFirstIdentChild() const;
01867 virtual ConstNode *getFirstConstChild() const;
01869 };
01870
01882 class FunctionNode : public NEDElement
01883 {
01884 private:
01885 std::string name;
01886 public:
01889 FunctionNode() {applyDefaults();}
01890 FunctionNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01891 virtual ~FunctionNode() {}
01893
01896 virtual const char *getTagName() const {return "function";}
01897 virtual int getTagCode() const {return NED_FUNCTION;}
01898 virtual int getNumAttributes() const;
01899 virtual const char *getAttributeName(int k) const;
01900 virtual const char *getAttribute(int k) const;
01901 virtual void setAttribute(int k, const char *val);
01902 virtual const char *getAttributeDefault(int k) const;
01904
01907 const char * getName() const {return name.c_str();}
01908 void setName(const char * val) {name = val;}
01909
01910 virtual FunctionNode *getNextFunctionNodeSibling() const;
01911 virtual OperatorNode *getFirstOperatorChild() const;
01912 virtual FunctionNode *getFirstFunctionChild() const;
01913 virtual ParamRefNode *getFirstParamRefChild() const;
01914 virtual IdentNode *getFirstIdentChild() const;
01915 virtual ConstNode *getFirstConstChild() const;
01917 };
01918
01935 class ParamRefNode : public NEDElement
01936 {
01937 private:
01938 std::string module;
01939 std::string moduleIndex;
01940 std::string paramName;
01941 std::string paramIndex;
01942 bool isRef;
01943 bool isAncestor;
01944 public:
01947 ParamRefNode() {applyDefaults();}
01948 ParamRefNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
01949 virtual ~ParamRefNode() {}
01951
01954 virtual const char *getTagName() const {return "param-ref";}
01955 virtual int getTagCode() const {return NED_PARAM_REF;}
01956 virtual int getNumAttributes() const;
01957 virtual const char *getAttributeName(int k) const;
01958 virtual const char *getAttribute(int k) const;
01959 virtual void setAttribute(int k, const char *val);
01960 virtual const char *getAttributeDefault(int k) const;
01962
01965 const char * getModule() const {return module.c_str();}
01966 void setModule(const char * val) {module = val;}
01967 const char * getModuleIndex() const {return moduleIndex.c_str();}
01968 void setModuleIndex(const char * val) {moduleIndex = val;}
01969 const char * getParamName() const {return paramName.c_str();}
01970 void setParamName(const char * val) {paramName = val;}
01971 const char * getParamIndex() const {return paramIndex.c_str();}
01972 void setParamIndex(const char * val) {paramIndex = val;}
01973 bool getIsRef() const {return isRef;}
01974 void setIsRef(bool val) {isRef = val;}
01975 bool getIsAncestor() const {return isAncestor;}
01976 void setIsAncestor(bool val) {isAncestor = val;}
01977
01978 virtual ParamRefNode *getNextParamRefNodeSibling() const;
01979 virtual ExpressionNode *getFirstExpressionChild() const;
01981 };
01982
01994 class IdentNode : public NEDElement
01995 {
01996 private:
01997 std::string name;
01998 public:
02001 IdentNode() {applyDefaults();}
02002 IdentNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02003 virtual ~IdentNode() {}
02005
02008 virtual const char *getTagName() const {return "ident";}
02009 virtual int getTagCode() const {return NED_IDENT;}
02010 virtual int getNumAttributes() const;
02011 virtual const char *getAttributeName(int k) const;
02012 virtual const char *getAttribute(int k) const;
02013 virtual void setAttribute(int k, const char *val);
02014 virtual const char *getAttributeDefault(int k) const;
02016
02019 const char * getName() const {return name.c_str();}
02020 void setName(const char * val) {name = val;}
02021
02022 virtual IdentNode *getNextIdentNodeSibling() const;
02024 };
02025
02039 class ConstNode : public NEDElement
02040 {
02041 private:
02042 int type;
02043 std::string text;
02044 std::string value;
02045 public:
02048 ConstNode() {applyDefaults();}
02049 ConstNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02050 virtual ~ConstNode() {}
02052
02055 virtual const char *getTagName() const {return "const";}
02056 virtual int getTagCode() const {return NED_CONST;}
02057 virtual int getNumAttributes() const;
02058 virtual const char *getAttributeName(int k) const;
02059 virtual const char *getAttribute(int k) const;
02060 virtual void setAttribute(int k, const char *val);
02061 virtual const char *getAttributeDefault(int k) const;
02063
02066 int getType() const {return type;}
02067 void setType(int val) {type = val;}
02068 const char * getText() const {return text.c_str();}
02069 void setText(const char * val) {text = val;}
02070 const char * getValue() const {return value.c_str();}
02071 void setValue(const char * val) {value = val;}
02072
02073 virtual ConstNode *getNextConstNodeSibling() const;
02075 };
02076
02091 class CplusplusNode : public NEDElement
02092 {
02093 private:
02094 std::string body;
02095 std::string bannerComment;
02096 std::string rightComment;
02097 std::string trailingComment;
02098 public:
02101 CplusplusNode() {applyDefaults();}
02102 CplusplusNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02103 virtual ~CplusplusNode() {}
02105
02108 virtual const char *getTagName() const {return "cplusplus";}
02109 virtual int getTagCode() const {return NED_CPLUSPLUS;}
02110 virtual int getNumAttributes() const;
02111 virtual const char *getAttributeName(int k) const;
02112 virtual const char *getAttribute(int k) const;
02113 virtual void setAttribute(int k, const char *val);
02114 virtual const char *getAttributeDefault(int k) const;
02116
02119 const char * getBody() const {return body.c_str();}
02120 void setBody(const char * val) {body = val;}
02121 const char * getBannerComment() const {return bannerComment.c_str();}
02122 void setBannerComment(const char * val) {bannerComment = val;}
02123 const char * getRightComment() const {return rightComment.c_str();}
02124 void setRightComment(const char * val) {rightComment = val;}
02125 const char * getTrailingComment() const {return trailingComment.c_str();}
02126 void setTrailingComment(const char * val) {trailingComment = val;}
02127
02128 virtual CplusplusNode *getNextCplusplusNodeSibling() const;
02130 };
02131
02146 class StructDeclNode : public NEDElement
02147 {
02148 private:
02149 std::string name;
02150 std::string bannerComment;
02151 std::string rightComment;
02152 std::string trailingComment;
02153 public:
02156 StructDeclNode() {applyDefaults();}
02157 StructDeclNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02158 virtual ~StructDeclNode() {}
02160
02163 virtual const char *getTagName() const {return "struct-decl";}
02164 virtual int getTagCode() const {return NED_STRUCT_DECL;}
02165 virtual int getNumAttributes() const;
02166 virtual const char *getAttributeName(int k) const;
02167 virtual const char *getAttribute(int k) const;
02168 virtual void setAttribute(int k, const char *val);
02169 virtual const char *getAttributeDefault(int k) const;
02171
02174 const char * getName() const {return name.c_str();}
02175 void setName(const char * val) {name = val;}
02176 const char * getBannerComment() const {return bannerComment.c_str();}
02177 void setBannerComment(const char * val) {bannerComment = val;}
02178 const char * getRightComment() const {return rightComment.c_str();}
02179 void setRightComment(const char * val) {rightComment = val;}
02180 const char * getTrailingComment() const {return trailingComment.c_str();}
02181 void setTrailingComment(const char * val) {trailingComment = val;}
02182
02183 virtual StructDeclNode *getNextStructDeclNodeSibling() const;
02185 };
02186
02202 class ClassDeclNode : public NEDElement
02203 {
02204 private:
02205 std::string name;
02206 bool isCobject;
02207 std::string bannerComment;
02208 std::string rightComment;
02209 std::string trailingComment;
02210 public:
02213 ClassDeclNode() {applyDefaults();}
02214 ClassDeclNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02215 virtual ~ClassDeclNode() {}
02217
02220 virtual const char *getTagName() const {return "class-decl";}
02221 virtual int getTagCode() const {return NED_CLASS_DECL;}
02222 virtual int getNumAttributes() const;
02223 virtual const char *getAttributeName(int k) const;
02224 virtual const char *getAttribute(int k) const;
02225 virtual void setAttribute(int k, const char *val);
02226 virtual const char *getAttributeDefault(int k) const;
02228
02231 const char * getName() const {return name.c_str();}
02232 void setName(const char * val) {name = val;}
02233 bool getIsCobject() const {return isCobject;}
02234 void setIsCobject(bool val) {isCobject = val;}
02235 const char * getBannerComment() const {return bannerComment.c_str();}
02236 void setBannerComment(const char * val) {bannerComment = val;}
02237 const char * getRightComment() const {return rightComment.c_str();}
02238 void setRightComment(const char * val) {rightComment = val;}
02239 const char * getTrailingComment() const {return trailingComment.c_str();}
02240 void setTrailingComment(const char * val) {trailingComment = val;}
02241
02242 virtual ClassDeclNode *getNextClassDeclNodeSibling() const;
02244 };
02245
02260 class EnumDeclNode : public NEDElement
02261 {
02262 private:
02263 std::string name;
02264 std::string bannerComment;
02265 std::string rightComment;
02266 std::string trailingComment;
02267 public:
02270 EnumDeclNode() {applyDefaults();}
02271 EnumDeclNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02272 virtual ~EnumDeclNode() {}
02274
02277 virtual const char *getTagName() const {return "enum-decl";}
02278 virtual int getTagCode() const {return NED_ENUM_DECL;}
02279 virtual int getNumAttributes() const;
02280 virtual const char *getAttributeName(int k) const;
02281 virtual const char *getAttribute(int k) const;
02282 virtual void setAttribute(int k, const char *val);
02283 virtual const char *getAttributeDefault(int k) const;
02285
02288 const char * getName() const {return name.c_str();}
02289 void setName(const char * val) {name = val;}
02290 const char * getBannerComment() const {return bannerComment.c_str();}
02291 void setBannerComment(const char * val) {bannerComment = val;}
02292 const char * getRightComment() const {return rightComment.c_str();}
02293 void setRightComment(const char * val) {rightComment = val;}
02294 const char * getTrailingComment() const {return trailingComment.c_str();}
02295 void setTrailingComment(const char * val) {trailingComment = val;}
02296
02297 virtual EnumDeclNode *getNextEnumDeclNodeSibling() const;
02299 };
02300
02317 class EnumNode : public NEDElement
02318 {
02319 private:
02320 std::string name;
02321 std::string extendsName;
02322 std::string sourceCode;
02323 std::string bannerComment;
02324 std::string rightComment;
02325 std::string trailingComment;
02326 public:
02329 EnumNode() {applyDefaults();}
02330 EnumNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02331 virtual ~EnumNode() {}
02333
02336 virtual const char *getTagName() const {return "enum";}
02337 virtual int getTagCode() const {return NED_ENUM;}
02338 virtual int getNumAttributes() const;
02339 virtual const char *getAttributeName(int k) const;
02340 virtual const char *getAttribute(int k) const;
02341 virtual void setAttribute(int k, const char *val);
02342 virtual const char *getAttributeDefault(int k) const;
02344
02347 const char * getName() const {return name.c_str();}
02348 void setName(const char * val) {name = val;}
02349 const char * getExtendsName() const {return extendsName.c_str();}
02350 void setExtendsName(const char * val) {extendsName = val;}
02351 const char * getSourceCode() const {return sourceCode.c_str();}
02352 void setSourceCode(const char * val) {sourceCode = val;}
02353 const char * getBannerComment() const {return bannerComment.c_str();}
02354 void setBannerComment(const char * val) {bannerComment = val;}
02355 const char * getRightComment() const {return rightComment.c_str();}
02356 void setRightComment(const char * val) {rightComment = val;}
02357 const char * getTrailingComment() const {return trailingComment.c_str();}
02358 void setTrailingComment(const char * val) {trailingComment = val;}
02359
02360 virtual EnumNode *getNextEnumNodeSibling() const;
02361 virtual EnumFieldsNode *getFirstEnumFieldsChild() const;
02363 };
02364
02377 class EnumFieldsNode : public NEDElement
02378 {
02379 private:
02380 std::string bannerComment;
02381 std::string rightComment;
02382 public:
02385 EnumFieldsNode() {applyDefaults();}
02386 EnumFieldsNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02387 virtual ~EnumFieldsNode() {}
02389
02392 virtual const char *getTagName() const {return "enum-fields";}
02393 virtual int getTagCode() const {return NED_ENUM_FIELDS;}
02394 virtual int getNumAttributes() const;
02395 virtual const char *getAttributeName(int k) const;
02396 virtual const char *getAttribute(int k) const;
02397 virtual void setAttribute(int k, const char *val);
02398 virtual const char *getAttributeDefault(int k) const;
02400
02403 const char * getBannerComment() const {return bannerComment.c_str();}
02404 void setBannerComment(const char * val) {bannerComment = val;}
02405 const char * getRightComment() const {return rightComment.c_str();}
02406 void setRightComment(const char * val) {rightComment = val;}
02407
02408 virtual EnumFieldsNode *getNextEnumFieldsNodeSibling() const;
02409 virtual EnumFieldNode *getFirstEnumFieldChild() const;
02411 };
02412
02427 class EnumFieldNode : public NEDElement
02428 {
02429 private:
02430 std::string name;
02431 std::string value;
02432 std::string bannerComment;
02433 std::string rightComment;
02434 public:
02437 EnumFieldNode() {applyDefaults();}
02438 EnumFieldNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02439 virtual ~EnumFieldNode() {}
02441
02444 virtual const char *getTagName() const {return "enum-field";}
02445 virtual int getTagCode() const {return NED_ENUM_FIELD;}
02446 virtual int getNumAttributes() const;
02447 virtual const char *getAttributeName(int k) const;
02448 virtual const char *getAttribute(int k) const;
02449 virtual void setAttribute(int k, const char *val);
02450 virtual const char *getAttributeDefault(int k) const;
02452
02455 const char * getName() const {return name.c_str();}
02456 void setName(const char * val) {name = val;}
02457 const char * getValue() const {return value.c_str();}
02458 void setValue(const char * val) {value = val;}
02459 const char * getBannerComment() const {return bannerComment.c_str();}
02460 void setBannerComment(const char * val) {bannerComment = val;}
02461 const char * getRightComment() const {return rightComment.c_str();}
02462 void setRightComment(const char * val) {rightComment = val;}
02463
02464 virtual EnumFieldNode *getNextEnumFieldNodeSibling() const;
02466 };
02467
02484 class MessageNode : public NEDElement
02485 {
02486 private:
02487 std::string name;
02488 std::string extendsName;
02489 std::string sourceCode;
02490 std::string bannerComment;
02491 std::string rightComment;
02492 std::string trailingComment;
02493 public:
02496 MessageNode() {applyDefaults();}
02497 MessageNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02498 virtual ~MessageNode() {}
02500
02503 virtual const char *getTagName() const {return "message";}
02504 virtual int getTagCode() const {return NED_MESSAGE;}
02505 virtual int getNumAttributes() const;
02506 virtual const char *getAttributeName(int k) const;
02507 virtual const char *getAttribute(int k) const;
02508 virtual void setAttribute(int k, const char *val);
02509 virtual const char *getAttributeDefault(int k) const;
02511
02514 const char * getName() const {return name.c_str();}
02515 void setName(const char * val) {name = val;}
02516 const char * getExtendsName() const {return extendsName.c_str();}
02517 void setExtendsName(const char * val) {extendsName = val;}
02518 const char * getSourceCode() const {return sourceCode.c_str();}
02519 void setSourceCode(const char * val) {sourceCode = val;}
02520 const char * getBannerComment() const {return bannerComment.c_str();}
02521 void setBannerComment(const char * val) {bannerComment = val;}
02522 const char * getRightComment() const {return rightComment.c_str();}
02523 void setRightComment(const char * val) {rightComment = val;}
02524 const char * getTrailingComment() const {return trailingComment.c_str();}
02525 void setTrailingComment(const char * val) {trailingComment = val;}
02526
02527 virtual MessageNode *getNextMessageNodeSibling() const;
02528 virtual PropertiesNode *getFirstPropertiesChild() const;
02529 virtual FieldsNode *getFirstFieldsChild() const;
02531 };
02532
02549 class ClassNode : public NEDElement
02550 {
02551 private:
02552 std::string name;
02553 std::string extendsName;
02554 std::string sourceCode;
02555 std::string bannerComment;
02556 std::string rightComment;
02557 std::string trailingComment;
02558 public:
02561 ClassNode() {applyDefaults();}
02562 ClassNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02563 virtual ~ClassNode() {}
02565
02568 virtual const char *getTagName() const {return "class";}
02569 virtual int getTagCode() const {return NED_CLASS;}
02570 virtual int getNumAttributes() const;
02571 virtual const char *getAttributeName(int k) const;
02572 virtual const char *getAttribute(int k) const;
02573 virtual void setAttribute(int k, const char *val);
02574 virtual const char *getAttributeDefault(int k) const;
02576
02579 const char * getName() const {return name.c_str();}
02580 void setName(const char * val) {name = val;}
02581 const char * getExtendsName() const {return extendsName.c_str();}
02582 void setExtendsName(const char * val) {extendsName = val;}
02583 const char * getSourceCode() const {return sourceCode.c_str();}
02584 void setSourceCode(const char * val) {sourceCode = val;}
02585 const char * getBannerComment() const {return bannerComment.c_str();}
02586 void setBannerComment(const char * val) {bannerComment = val;}
02587 const char * getRightComment() const {return rightComment.c_str();}
02588 void setRightComment(const char * val) {rightComment = val;}
02589 const char * getTrailingComment() const {return trailingComment.c_str();}
02590 void setTrailingComment(const char * val) {trailingComment = val;}
02591
02592 virtual ClassNode *getNextClassNodeSibling() const;
02593 virtual PropertiesNode *getFirstPropertiesChild() const;
02594 virtual FieldsNode *getFirstFieldsChild() const;
02596 };
02597
02614 class StructNode : public NEDElement
02615 {
02616 private:
02617 std::string name;
02618 std::string extendsName;
02619 std::string sourceCode;
02620 std::string bannerComment;
02621 std::string rightComment;
02622 std::string trailingComment;
02623 public:
02626 StructNode() {applyDefaults();}
02627 StructNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02628 virtual ~StructNode() {}
02630
02633 virtual const char *getTagName() const {return "struct";}
02634 virtual int getTagCode() const {return NED_STRUCT;}
02635 virtual int getNumAttributes() const;
02636 virtual const char *getAttributeName(int k) const;
02637 virtual const char *getAttribute(int k) const;
02638 virtual void setAttribute(int k, const char *val);
02639 virtual const char *getAttributeDefault(int k) const;
02641
02644 const char * getName() const {return name.c_str();}
02645 void setName(const char * val) {name = val;}
02646 const char * getExtendsName() const {return extendsName.c_str();}
02647 void setExtendsName(const char * val) {extendsName = val;}
02648 const char * getSourceCode() const {return sourceCode.c_str();}
02649 void setSourceCode(const char * val) {sourceCode = val;}
02650 const char * getBannerComment() const {return bannerComment.c_str();}
02651 void setBannerComment(const char * val) {bannerComment = val;}
02652 const char * getRightComment() const {return rightComment.c_str();}
02653 void setRightComment(const char * val) {rightComment = val;}
02654 const char * getTrailingComment() const {return trailingComment.c_str();}
02655 void setTrailingComment(const char * val) {trailingComment = val;}
02656
02657 virtual StructNode *getNextStructNodeSibling() const;
02658 virtual PropertiesNode *getFirstPropertiesChild() const;
02659 virtual FieldsNode *getFirstFieldsChild() const;
02661 };
02662
02675 class FieldsNode : public NEDElement
02676 {
02677 private:
02678 std::string bannerComment;
02679 std::string rightComment;
02680 public:
02683 FieldsNode() {applyDefaults();}
02684 FieldsNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02685 virtual ~FieldsNode() {}
02687
02690 virtual const char *getTagName() const {return "fields";}
02691 virtual int getTagCode() const {return NED_FIELDS;}
02692 virtual int getNumAttributes() const;
02693 virtual const char *getAttributeName(int k) const;
02694 virtual const char *getAttribute(int k) const;
02695 virtual void setAttribute(int k, const char *val);
02696 virtual const char *getAttributeDefault(int k) const;
02698
02701 const char * getBannerComment() const {return bannerComment.c_str();}
02702 void setBannerComment(const char * val) {bannerComment = val;}
02703 const char * getRightComment() const {return rightComment.c_str();}
02704 void setRightComment(const char * val) {rightComment = val;}
02705
02706 virtual FieldsNode *getNextFieldsNodeSibling() const;
02707 virtual FieldNode *getFirstFieldChild() const;
02709 };
02710
02730 class FieldNode : public NEDElement
02731 {
02732 private:
02733 std::string name;
02734 std::string dataType;
02735 bool isAbstract;
02736 bool isVector;
02737 std::string vectorSize;
02738 std::string enumName;
02739 std::string defaultValue;
02740 std::string bannerComment;
02741 std::string rightComment;
02742 public:
02745 FieldNode() {applyDefaults();}
02746 FieldNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02747 virtual ~FieldNode() {}
02749
02752 virtual const char *getTagName() const {return "field";}
02753 virtual int getTagCode() const {return NED_FIELD;}
02754 virtual int getNumAttributes() const;
02755 virtual const char *getAttributeName(int k) const;
02756 virtual const char *getAttribute(int k) const;
02757 virtual void setAttribute(int k, const char *val);
02758 virtual const char *getAttributeDefault(int k) const;
02760
02763 const char * getName() const {return name.c_str();}
02764 void setName(const char * val) {name = val;}
02765 const char * getDataType() const {return dataType.c_str();}
02766 void setDataType(const char * val) {dataType = val;}
02767 bool getIsAbstract() const {return isAbstract;}
02768 void setIsAbstract(bool val) {isAbstract = val;}
02769 bool getIsVector() const {return isVector;}
02770 void setIsVector(bool val) {isVector = val;}
02771 const char * getVectorSize() const {return vectorSize.c_str();}
02772 void setVectorSize(const char * val) {vectorSize = val;}
02773 const char * getEnumName() const {return enumName.c_str();}
02774 void setEnumName(const char * val) {enumName = val;}
02775 const char * getDefaultValue() const {return defaultValue.c_str();}
02776 void setDefaultValue(const char * val) {defaultValue = val;}
02777 const char * getBannerComment() const {return bannerComment.c_str();}
02778 void setBannerComment(const char * val) {bannerComment = val;}
02779 const char * getRightComment() const {return rightComment.c_str();}
02780 void setRightComment(const char * val) {rightComment = val;}
02781
02782 virtual FieldNode *getNextFieldNodeSibling() const;
02784 };
02785
02798 class PropertiesNode : public NEDElement
02799 {
02800 private:
02801 std::string bannerComment;
02802 std::string rightComment;
02803 public:
02806 PropertiesNode() {applyDefaults();}
02807 PropertiesNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02808 virtual ~PropertiesNode() {}
02810
02813 virtual const char *getTagName() const {return "properties";}
02814 virtual int getTagCode() const {return NED_PROPERTIES;}
02815 virtual int getNumAttributes() const;
02816 virtual const char *getAttributeName(int k) const;
02817 virtual const char *getAttribute(int k) const;
02818 virtual void setAttribute(int k, const char *val);
02819 virtual const char *getAttributeDefault(int k) const;
02821
02824 const char * getBannerComment() const {return bannerComment.c_str();}
02825 void setBannerComment(const char * val) {bannerComment = val;}
02826 const char * getRightComment() const {return rightComment.c_str();}
02827 void setRightComment(const char * val) {rightComment = val;}
02828
02829 virtual PropertiesNode *getNextPropertiesNodeSibling() const;
02830 virtual PropertyNode *getFirstPropertyChild() const;
02832 };
02833
02848 class PropertyNode : public NEDElement
02849 {
02850 private:
02851 std::string name;
02852 std::string value;
02853 std::string bannerComment;
02854 std::string rightComment;
02855 public:
02858 PropertyNode() {applyDefaults();}
02859 PropertyNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02860 virtual ~PropertyNode() {}
02862
02865 virtual const char *getTagName() const {return "property";}
02866 virtual int getTagCode() const {return NED_PROPERTY;}
02867 virtual int getNumAttributes() const;
02868 virtual const char *getAttributeName(int k) const;
02869 virtual const char *getAttribute(int k) const;
02870 virtual void setAttribute(int k, const char *val);
02871 virtual const char *getAttributeDefault(int k) const;
02873
02876 const char * getName() const {return name.c_str();}
02877 void setName(const char * val) {name = val;}
02878 const char * getValue() const {return value.c_str();}
02879 void setValue(const char * val) {value = val;}
02880 const char * getBannerComment() const {return bannerComment.c_str();}
02881 void setBannerComment(const char * val) {bannerComment = val;}
02882 const char * getRightComment() const {return rightComment.c_str();}
02883 void setRightComment(const char * val) {rightComment = val;}
02884
02885 virtual PropertyNode *getNextPropertyNodeSibling() const;
02887 };
02888
02900 class UnknownNode : public NEDElement
02901 {
02902 private:
02903 std::string element;
02904 public:
02907 UnknownNode() {applyDefaults();}
02908 UnknownNode(NEDElement *parent) : NEDElement(parent) {applyDefaults();}
02909 virtual ~UnknownNode() {}
02911
02914 virtual const char *getTagName() const {return "unknown";}
02915 virtual int getTagCode() const {return NED_UNKNOWN;}
02916 virtual int getNumAttributes() const;
02917 virtual const char *getAttributeName(int k) const;
02918 virtual const char *getAttribute(int k) const;
02919 virtual void setAttribute(int k, const char *val);
02920 virtual const char *getAttributeDefault(int k) const;
02922
02925 const char * getElement() const {return element.c_str();}
02926 void setElement(const char * val) {element = val;}
02927
02928 virtual UnknownNode *getNextUnknownNodeSibling() const;
02930 };
02931
02937 class NEDElementFactory
02938 {
02939 protected:
02940 static NEDElementFactory *f;
02941 public:
02943 static NEDElementFactory *getInstance();
02945 virtual NEDElement *createNodeWithTag(const char *tagname);
02947 virtual NEDElement *createNodeWithTag(int tagcode);
02948 };
02949
02950 #endif
02951