Search in sources :

Example 1 with If_Clauses

use of org.eclipse.titan.designer.AST.TTCN3.statements.If_Clauses in project titan.EclipsePlug-ins by eclipse.

the class IsBoundWithoutElse method process.

@Override
protected void process(final IVisitableNode node, final Problems problems) {
    if (!(node instanceof If_Statement)) {
        return;
    }
    final If_Statement ifs = (If_Statement) node;
    final StatementBlock elseClause = ifs.getStatementBlock();
    if (elseClause != null) {
        return;
    }
    // there is no else clause present
    final If_Clauses ifcs = ifs.getIfClauses();
    if (ifcs == null) {
        return;
    }
    final List<If_Clause> ifcL = ifcs.getClauses();
    if (ifcL == null || ifcL.isEmpty()) {
        return;
    }
    for (final If_Clause ifc : ifcL) {
        final IfConditionVisitor visitor = new IfConditionVisitor(problems);
        ifc.accept(visitor);
    }
}
Also used : If_Statement(org.eclipse.titan.designer.AST.TTCN3.statements.If_Statement) If_Clauses(org.eclipse.titan.designer.AST.TTCN3.statements.If_Clauses) StatementBlock(org.eclipse.titan.designer.AST.TTCN3.statements.StatementBlock) If_Clause(org.eclipse.titan.designer.AST.TTCN3.statements.If_Clause)

Example 2 with If_Clauses

use of org.eclipse.titan.designer.AST.TTCN3.statements.If_Clauses in project titan.EclipsePlug-ins by eclipse.

the class LogicInversion method process.

@Override
public void process(final IVisitableNode node, final Problems problems) {
    if (node instanceof If_Statement) {
        final If_Statement s = (If_Statement) node;
        if (s.getStatementBlock() == null) {
            return;
        }
        final If_Clauses ifClauses = s.getIfClauses();
        if (ifClauses == null) {
            return;
        }
        final List<If_Clause> clauses = ifClauses.getClauses();
        if (clauses.size() != 1) {
            return;
        }
        final Value expression = clauses.get(0).getExpression();
        if (expression != null && Value_type.EXPRESSION_VALUE.equals(expression.getValuetype()) && Operation_type.NOT_OPERATION.equals(((Expression_Value) expression).getOperationType())) {
            problems.report(s.getLocation(), ERROR_MESSAGE);
        }
    }
}
Also used : Value(org.eclipse.titan.designer.AST.Value) Expression_Value(org.eclipse.titan.designer.AST.TTCN3.values.Expression_Value) Expression_Value(org.eclipse.titan.designer.AST.TTCN3.values.Expression_Value) If_Statement(org.eclipse.titan.designer.AST.TTCN3.statements.If_Statement) If_Clauses(org.eclipse.titan.designer.AST.TTCN3.statements.If_Clauses) If_Clause(org.eclipse.titan.designer.AST.TTCN3.statements.If_Clause)

Example 3 with If_Clauses

use of org.eclipse.titan.designer.AST.TTCN3.statements.If_Clauses in project titan.EclipsePlug-ins by eclipse.

the class IfContext method process_internal.

protected void process_internal() {
    final If_Statement st = getNode();
    final If_Clauses ics = st.getIfClauses();
    final Context child = getChild();
    if (child != null && child.getNode().equals(ics)) {
        // the log statement is in one of the conditional clauses
        final List<If_Clause> icl = ics.getClauses();
        final Context clauseContext = child.getChild();
        if (clauseContext != null && icl.contains(clauseContext.getNode())) {
            final IVisitableNode ic = clauseContext.getNode();
            final ClauseVisitor vis = new ClauseVisitor();
            ic.accept(vis);
            final List<Reference> refs = vis.getResult();
            for (Reference ref : refs) {
                varNamesInConditions.add(ref.getDisplayName());
            }
        }
    } else {
        // the log statement is in the else block
        final List<Reference> refs = extractAllIdsFromClauses(ics);
        for (Reference ref : refs) {
            varNamesInConditions.add(ref.getDisplayName());
        }
    }
}
Also used : Reference(org.eclipse.titan.designer.AST.Reference) If_Statement(org.eclipse.titan.designer.AST.TTCN3.statements.If_Statement) If_Clauses(org.eclipse.titan.designer.AST.TTCN3.statements.If_Clauses) If_Clause(org.eclipse.titan.designer.AST.TTCN3.statements.If_Clause) IVisitableNode(org.eclipse.titan.designer.AST.IVisitableNode)

Example 4 with If_Clauses

use of org.eclipse.titan.designer.AST.TTCN3.statements.If_Clauses in project titan.EclipsePlug-ins by eclipse.

the class IfContext method extractAllIdsFromClauses.

private static List<Reference> extractAllIdsFromClauses(final If_Clauses ics) {
    final List<If_Clause> icl = ics.getClauses();
    final List<Reference> ret = new ArrayList<Reference>();
    for (If_Clause ic : icl) {
        final ClauseVisitor vis = new ClauseVisitor();
        ic.accept(vis);
        ret.addAll(vis.getResult());
    }
    return ret;
}
Also used : Reference(org.eclipse.titan.designer.AST.Reference) ArrayList(java.util.ArrayList) If_Clause(org.eclipse.titan.designer.AST.TTCN3.statements.If_Clause)

Aggregations

If_Clause (org.eclipse.titan.designer.AST.TTCN3.statements.If_Clause)4 If_Clauses (org.eclipse.titan.designer.AST.TTCN3.statements.If_Clauses)3 If_Statement (org.eclipse.titan.designer.AST.TTCN3.statements.If_Statement)3 Reference (org.eclipse.titan.designer.AST.Reference)2 ArrayList (java.util.ArrayList)1 IVisitableNode (org.eclipse.titan.designer.AST.IVisitableNode)1 StatementBlock (org.eclipse.titan.designer.AST.TTCN3.statements.StatementBlock)1 Expression_Value (org.eclipse.titan.designer.AST.TTCN3.values.Expression_Value)1 Value (org.eclipse.titan.designer.AST.Value)1