Main Page   Modules   Class Hierarchy   Compound List   File List   Compound Members  

nedsemanticvalidator.h

00001 //==========================================================================
00002 // nedsemanticvalidator.h - part of the OMNeT++ Discrete System Simulation System
00003 //
00004 // Contents:
00005 //   class NEDSemanticValidator
00006 //
00007 //==========================================================================
00008 
00009 /*--------------------------------------------------------------*
00010   Copyright (C) 2002-2003 Andras Varga
00011 
00012   This file is distributed WITHOUT ANY WARRANTY. See the file
00013   `license' for details on this and other legal matters.
00014 *--------------------------------------------------------------*/
00015 
00016 
00017 #ifndef __NEDSEMANTICVALIDATOR_H
00018 #define __NEDSEMANTICVALIDATOR_H
00019 
00020 #include <string.h>
00021 #include "nedvalidator.h"
00022 
00023 class NEDSymbolTable;
00024 
00030 class NEDSemanticValidator : public NEDValidatorBase
00031 {
00032   protected:
00033     bool parsedExpressions;
00034     NEDSymbolTable *symboltable;
00035 
00036     // temporary variables:
00037     NEDElement *moduletypedecl;
00038 
00039     NEDElement *findChildWithTagAndAttribute(NEDElement *node, int tag, const char *attr, const char *value);
00040 
00041   public:
00042     NEDSemanticValidator(bool parsedExpr, NEDSymbolTable *symbtab);
00043     virtual ~NEDSemanticValidator();
00044 
00045     virtual void validateElement(NedFilesNode *node);
00046     virtual void validateElement(NedFileNode *node);
00047     virtual void validateElement(ImportNode *node);
00048     virtual void validateElement(ImportedFileNode *node);
00049     virtual void validateElement(ChannelNode *node);
00050     virtual void validateElement(ChannelAttrNode *node);
00051     virtual void validateElement(NetworkNode *node);
00052     virtual void validateElement(SimpleModuleNode *node);
00053     virtual void validateElement(CompoundModuleNode *node);
00054     virtual void validateElement(ParamsNode *node);
00055     virtual void validateElement(ParamNode *node);
00056     virtual void validateElement(GatesNode *node);
00057     virtual void validateElement(GateNode *node);
00058     virtual void validateElement(MachinesNode *node);
00059     virtual void validateElement(MachineNode *node);
00060     virtual void validateElement(SubmodulesNode *node);
00061     virtual void validateElement(SubmoduleNode *node);
00062     virtual void validateElement(SubstparamsNode *node);
00063     virtual void validateElement(SubstparamNode *node);
00064     virtual void validateElement(GatesizesNode *node);
00065     virtual void validateElement(GatesizeNode *node);
00066     virtual void validateElement(SubstmachinesNode *node);
00067     virtual void validateElement(SubstmachineNode *node);
00068     virtual void validateElement(ConnectionsNode *node);
00069     virtual void validateElement(ConnectionNode *node);
00070     virtual void validateElement(ConnAttrNode *node);
00071     virtual void validateElement(ForLoopNode *node);
00072     virtual void validateElement(LoopVarNode *node);
00073     virtual void validateElement(DisplayStringNode *node);
00074     virtual void validateElement(ExpressionNode *node);
00075     virtual void validateElement(OperatorNode *node);
00076     virtual void validateElement(FunctionNode *node);
00077     virtual void validateElement(ParamRefNode *node);
00078     virtual void validateElement(IdentNode *node);
00079     virtual void validateElement(ConstNode *node);
00080     virtual void validateElement(CppincludeNode *node);
00081     virtual void validateElement(CppStructNode *node);
00082     virtual void validateElement(CppCobjectNode *node);
00083     virtual void validateElement(CppNoncobjectNode *node);
00084     virtual void validateElement(EnumNode *node);
00085     virtual void validateElement(EnumFieldsNode *node);
00086     virtual void validateElement(EnumFieldNode *node);
00087     virtual void validateElement(MessageNode *node);
00088     virtual void validateElement(ClassNode *node);
00089     virtual void validateElement(StructNode *node);
00090     virtual void validateElement(FieldsNode *node);
00091     virtual void validateElement(FieldNode *node);
00092     virtual void validateElement(PropertiesNode *node);
00093     virtual void validateElement(PropertyNode *node);
00094     virtual void validateElement(UnknownNode *node);
00095 };
00096 
00097 #endif
00098 

Generated at Mon Jun 16 23:37:40 2003 for OMNeT++NEDXML by doxygen1.2.8.1 written by Dimitri van Heesch, © 1997-2001