# NEDSemanticValidator Class Reference
[Validation]

`#include <nedsemanticvalidator.h>`

Inheritance diagram for NEDSemanticValidator:

List of all members.

## Detailed Description

Performs semantic validation.

Should be called after tree passed DTD validation and basic validation.

## Public Member Functions

| NEDSemanticValidator (bool parsedExpr, NEDSymbolTable *symbtab)
virtual | ~NEDSemanticValidator ()
Validator methods
virtual void | validateElement (NedFilesNode *node)
virtual void | validateElement (NedFileNode *node)
virtual void | validateElement (ImportNode *node)
virtual void | validateElement (ImportedFileNode *node)
virtual void | validateElement (ChannelNode *node)
virtual void | validateElement (ChannelAttrNode *node)
virtual void | validateElement (NetworkNode *node)
virtual void | validateElement (SimpleModuleNode *node)
virtual void | validateElement (CompoundModuleNode *node)
virtual void | validateElement (ParamsNode *node)
virtual void | validateElement (ParamNode *node)
virtual void | validateElement (GatesNode *node)
virtual void | validateElement (GateNode *node)
virtual void | validateElement (MachinesNode *node)
virtual void | validateElement (MachineNode *node)
virtual void | validateElement (SubmodulesNode *node)
virtual void | validateElement (SubmoduleNode *node)
virtual void | validateElement (SubstparamsNode *node)
virtual void | validateElement (SubstparamNode *node)
virtual void | validateElement (GatesizesNode *node)
virtual void | validateElement (GatesizeNode *node)
virtual void | validateElement (SubstmachinesNode *node)
virtual void | validateElement (SubstmachineNode *node)
virtual void | validateElement (ConnectionsNode *node)
virtual void | validateElement (ConnectionNode *node)
virtual void | validateElement (ConnAttrNode *node)
virtual void | validateElement (ForLoopNode *node)
virtual void | validateElement (LoopVarNode *node)
virtual void | validateElement (DisplayStringNode *node)
virtual void | validateElement (ExpressionNode *node)
virtual void | validateElement (OperatorNode *node)
virtual void | validateElement (FunctionNode *node)
virtual void | validateElement (ParamRefNode *node)
virtual void | validateElement (IdentNode *node)
virtual void | validateElement (ConstNode *node)
virtual void | validateElement (CplusplusNode *node)
virtual void | validateElement (StructDeclNode *node)
virtual void | validateElement (ClassDeclNode *node)
virtual void | validateElement (MessageDeclNode *node)
virtual void | validateElement (EnumDeclNode *node)
virtual void | validateElement (EnumNode *node)
virtual void | validateElement (EnumFieldsNode *node)
virtual void | validateElement (EnumFieldNode *node)
virtual void | validateElement (MessageNode *node)
virtual void | validateElement (ClassNode *node)
virtual void | validateElement (StructNode *node)
virtual void | validateElement (FieldsNode *node)
virtual void | validateElement (FieldNode *node)
virtual void | validateElement (PropertiesNode *node)
virtual void | validateElement (PropertyNode *node)
virtual void | validateElement (UnknownNode *node)

## Protected Member Functions

NEDElement * | findChildWithTagAndAttribute (NEDElement *node, int tag, const char *attr, const char *value)
void | checkGate (GateNode *gate, bool hasGateIndex, bool isInput, NEDElement *conn, bool isSrcGate)
void | validateConnGate (const char *submodName, bool hasSubmodIndex, const char *gateName, bool hasGateIndex, NEDElement *parent, NEDElement *conn, bool isSrc)

## Protected Attributes

bool | parsedExpressions
NEDSymbolTable * | symboltable
NEDElement * | moduletypedecl

## Constructor & Destructor Documentation

NEDSemanticValidator::NEDSemanticValidator | ( | bool | parsedExpr,
|  | NEDSymbolTable * | symbtab
| ) |

| Constructor.

virtual NEDSemanticValidator::~NEDSemanticValidator | ( |  | ) | `[virtual]`

| Destructor.

## Member Function Documentation

void NEDSemanticValidator::checkGate | ( | GateNode * | gate,
|  | bool | hasGateIndex,
|  | bool | isInput,
|  | NEDElement * | conn,
|  | bool | isSrcGate
| ) | `[protected]`

NEDElement* NEDSemanticValidator::findChildWithTagAndAttribute | ( | NEDElement * | node,
|  | int | tag,
|  | const char * | attr,
|  | const char * | value
| ) | `[protected]`

void NEDSemanticValidator::validateConnGate | ( | const char * | submodName,
|  | bool | hasSubmodIndex,
|  | const char * | gateName,
|  | bool | hasGateIndex,
|  | NEDElement * | parent,
|  | NEDElement * | conn,
|  | bool | isSrc
| ) | `[protected]`

virtual void NEDSemanticValidator::validateElement | ( | UnknownNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | PropertyNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | PropertiesNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | FieldNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | FieldsNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | StructNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | ClassNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | MessageNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | EnumFieldNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | EnumFieldsNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | EnumNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | EnumDeclNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | MessageDeclNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | ClassDeclNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | StructDeclNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | CplusplusNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | ConstNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | IdentNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | ParamRefNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | FunctionNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | OperatorNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | ExpressionNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | DisplayStringNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | LoopVarNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | ForLoopNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | ConnAttrNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | ConnectionNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | ConnectionsNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | SubstmachineNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | SubstmachinesNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | GatesizeNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | GatesizesNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | SubstparamNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | SubstparamsNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | SubmoduleNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | SubmodulesNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | MachineNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | MachinesNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | GateNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | GatesNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | ParamNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | ParamsNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | CompoundModuleNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | SimpleModuleNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | NetworkNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | ChannelAttrNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | ChannelNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | ImportedFileNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | ImportNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | NedFileNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

virtual void NEDSemanticValidator::validateElement | ( | NedFilesNode * | node | ) | `[virtual]`

| Implements NEDValidatorBase.

## Member Data Documentation

NEDElement* NEDSemanticValidator::moduletypedecl`[protected]`

bool NEDSemanticValidator::parsedExpressions`[protected]`

NEDSymbolTable* NEDSemanticValidator::symboltable`[protected]`

The documentation for this class was generated from the following file:

- nedsemanticvalidator.h