Changeset 40


Ignore:
Timestamp:
05/08/11 21:11:57 (13 years ago)
Author:
phdmakk
Message:

+ fixed log statement processing issues (failure to combine subsequent log statement and failure to process log statements containing variable or other references)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/t3q/src/org/etsi/t3q/visitor/QualityChecker.java

    r38 r40  
    18621862                                subsequentLogStatementNodes.add(subsequentLogStatementNode); 
    18631863                                subsequentLogStatementNode = getSubsequentLogStatement(subsequentLogStatementNode); 
    1864                         }  
     1864                        } 
    18651865                } 
    18661866                checkLogFormat(node, logStatementText, endLine); 
     
    18711871        private LocationAST getSubsequentLogStatement(LocationAST logStatementNode) { 
    18721872                LocationAST subsequentLogStatementNode = null; 
    1873                 LocationAST nextStatement = logStatementNode.getNthParent(3) 
    1874                                 .getNextSibling(); 
     1873                LocationAST nextStatement = LocationAST.resolveParentsUntilType(logStatementNode, new int[]{TTCN3ParserTokenTypes.FunctionStatement, TTCN3ParserTokenTypes.ControlStatementOrDef}).getNextSibling(); 
    18751874 
    18761875                if ((nextStatement != null) && (nextStatement.getType() == TTCN3ParserTokenTypes.SemiColon)) { 
     
    18801879                        if (nextStatement.getType() == TTCN3ParserTokenTypes.FunctionStatement ||  
    18811880                                        nextStatement.getType() == TTCN3ParserTokenTypes.ControlStatementOrDef) { 
    1882                                 LocationAST thirdChild = nextStatement 
    1883                                                 .getNthChild(3); 
    1884                                 if (thirdChild != null 
    1885                                                 && thirdChild.getType() == TTCN3ParserTokenTypes.LogStatement) { 
    1886                                         subsequentLogStatementNode = thirdChild; 
     1881                                LocationAST logStatement = nextStatement 
     1882                                                .getNthChild(2); 
     1883                                if (logStatement != null 
     1884                                                && logStatement.getType() == TTCN3ParserTokenTypes.LogStatement) { 
     1885                                        subsequentLogStatementNode = logStatement; 
    18871886                                } 
    18881887                        } 
     
    19051904                                //TODO: attempt to perform resolution 
    19061905                                logStatementText += ""; 
     1906                                //TODO: consider fixing the parser, this is an ugly workaround 
     1907                                LinkedList<LocationAST> cStringNodes = ASTUtil.findTypeNodes(logItem, TTCN3ParserTokenTypes.CharStringValue); 
     1908                                for (LocationAST cStringNode : cStringNodes){ 
     1909                                        logStatementText+=cStringNode.getFirstChild().getText(); 
     1910                                } 
    19071911                        } 
    19081912                        logItem = logItem.getNextSibling(); 
Note: See TracChangeset for help on using the changeset viewer.