40 ModelChecker::ModelChecker(
string name) : _has_parent(false), _class_name(), _class_prefix(0), _class_modification(false), _else_when(false)
52 if (x->isEncapsulated()) {
55 if (x->hasExtends()) {
93 if (x->hasElementComponentList()) {
108 if (x->hasCompositionList()) {
109 AST_CompositionElementListIterator it;
110 AST_CompositionElementList cl = x->compositionList();
118 if (x->hasExternalFunctionCall()) {
122 if (x->hasCompositionList()) {
125 if (x->hasExternalFunctionCall()) {
136 if (x->hasElements()) {
169 AST_Element_Component c = x->getAsComponent();
170 AST_DeclarationListIterator it;
172 AST_DeclarationList dl = c->nameList();
188 if (c->hasIndexes()) {
197 if (c->isConstant()) {
198 AST_DeclarationListIterator it;
199 AST_DeclarationList dl = c->nameList();
203 if (m->modificationType() ==
MODCLASS) {
204 AST_ArgumentListIterator it;
205 AST_Expression asgExp = m->getAsClass()->exp();
206 if (asgExp->expressionType() ==
EXPNULL) {
225 "Only function class definitions allowed inside Package class.");
230 AST_Class c = x->getAsClassWrapper()->getClass();
237 if (x->modificationType() ==
MODASSIGN) {
240 if (x->modificationType() ==
MODCLASS) {
247 if (x->modificationType() ==
MODCLASS) {
259 AST_ExpressionList el = left->getAsDerivative()->arguments();
260 if (el->size() > 1) {
269 AST_Expression_ComponentReference cr = e->getAsComponentReference();
270 if (cr->hasIndexes()) {
272 AST_ExpressionListIterator elit;
273 foreach (elit, ell) {
282 AST_Expression_Output eout = left->getAsOutput();
283 AST_ExpressionList el = eout->expressionList();
284 AST_ExpressionListIterator it;
304 AST_Equation_Equality ec = x->getAsEquality();
311 AST_Equation_For ef = x->getAsFor();
312 if (ef->forIndexList()->size() == 0) {
315 AST_ForIndexList fil = ef->forIndexList();
316 AST_ForIndexListIterator filit;
317 foreach (filit, fil) {
320 AST_EquationList eql = ef->equationList();
321 AST_EquationListIterator eq;
330 if (x->in_exp()->expressionType() !=
EXPRANGE) {
332 AST_Expression_Range er = x->in_exp()->getAsRange();
333 if (er->expressionList()->size() > 2) {
353 AST_Expression_ComponentReference cr = x->getAsComponentReference();
354 if (cr->names()->size() > 1) {
357 AST_ExpressionList el = cr->indexes()->front();
358 if (el->size() > 0) {
377 AST_Argument_Modification am = x->getAsModification();
388 AST_Expression exp = cond;
389 if (cond->expressionType() ==
EXPOUTPUT) {
392 if (exp->expressionType() !=
EXPBINOP) {
395 BinOpType bot = exp->getAsBinOp()->binopType();
413 AST_Statement_For ef = x->getAsFor();
414 if (ef->forIndexList()->size() == 0) {
417 AST_ForIndexList fil = ef->forIndexList();
418 AST_ForIndexListIterator filit;
419 foreach (filit, fil) {
422 AST_StatementList eql = ef->statements();
423 AST_StatementListIterator eq;
435 AST_Statement_When sw = x->getAsWhen();
439 AST_StatementList stl = sw->statements();
440 AST_StatementListIterator st;
444 if (sw->hasElsewhen()) {
446 AST_Statement_ElseList ell = sw->else_when();
447 AST_Statement_ElseListIterator elt;
452 if (sw->hasComment()) {
453 visit(sw->comment());
464 if (x->statementType() ==
STWHEN) {
465 if (x->getAsWhen()->hasElsewhen()) {
476 AST_StatementList stl = x->statements();
477 AST_StatementListIterator sti;
485 if (x->hasWithin()) {