Ignore:
Timestamp:
05/07/14 16:02:46 (10 years ago)
Author:
hkaulbersch
Message:

fixed imports

File:
1 edited

Legend:

Unmodified
Added
Removed
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/src/de/ugoe/cs/swe/bnftools/validation/EbnfValidator.xtend

    r63 r65  
    1414import de.ugoe.cs.swe.bnftools.ebnf.DefinitionList 
    1515import de.ugoe.cs.swe.bnftools.ebnf.SingleDefinition 
     16import java.util.ArrayList 
     17 
    1618//import java.util.HashMap 
    1719//import java.util.Set 
    1820//import java.util.HashSet 
    19  
    2021//import org.eclipse.xtext.validation.Check 
    2122/** 
     
    3233        public static final String equalAlternativeDescription = "The rule contains equal alternatives"; 
    3334        public static final String duplicateRulesDescription = "The rule is a duplicate"; 
     35 
    3436        //public  static final String duplicateSubRulesDescription = "A part the of rule is a duplicate"; 
    3537        public static final String nonUniqueNameDescription = "The rule has the same Name as the Rule in Line "; 
     
    4951 
    5052                if (references.size() == 1 && rule.rulenumber != 1) { 
    51                         warning(ruleReferencedOneDescription, EbnfPackage$Literals::RULE__NAME,ruleReferencedOneDescription,rule.name); 
     53                        warning(ruleReferencedOneDescription, EbnfPackage$Literals::RULE__NAME, ruleReferencedOneDescription, 
     54                                rule.name); 
    5255                } 
    5356        } 
     
    7578 
    7679                // run through all Rules 
    77                 for (currentRule : allRules) { 
    78                         if (currentRule != rule) { 
    79                                 var ICompositeNode currentRuleDefinitionList = NodeModelUtils.findActualNodeFor( 
    80                                         currentRule.getDefinitionList()); 
    81                                 var String currentRuleRightHandSideText = currentRuleDefinitionList.text.trim().replaceAll("[ \t\n\r]", 
    82                                         ""); 
    83  
    84                                 if (currentRuleRightHandSideText.equals(rightHandSideText)) { 
    85                                         var String description = duplicateRulesDescription + " with rule \"" + currentRule.getName() + 
    86                                                 "\" (Line " + NodeModelUtils.findActualNodeFor(currentRule).getStartLine() + ")"; 
    87                                         warning(description, EbnfPackage$Literals::RULE__NAME); 
    88                                 } 
    89                         } 
    90                 } 
     80                                                for (currentRule : allRules) { 
     81                                                        if (currentRule != rule) { 
     82                                                                var ICompositeNode currentRuleDefinitionList = NodeModelUtils.findActualNodeFor( 
     83                                                                        currentRule.getDefinitionList()); 
     84                                                                var String currentRuleRightHandSideText = currentRuleDefinitionList.text.trim().replaceAll("[ \t\n\r]", 
     85                                                                        ""); 
     86                                 
     87                                                                if (currentRuleRightHandSideText.equals(rightHandSideText)) { 
     88                                                                        var String description = duplicateRulesDescription + " with rule \"" + currentRule.getName() + 
     89                                                                                "\" (Line " + NodeModelUtils.findActualNodeFor(currentRule).getStartLine() + ")"; 
     90                                                                        warning(description, EbnfPackage$Literals::RULE__NAME); 
     91                                                                } 
     92                                                        } 
     93                                                } 
     94                 
     95//              //get all Single Definitions as Trimmed Strings 
     96//              var List<String> singleDefsAsString = new ArrayList<String>(); 
     97// 
     98//              for (SingleDefinition s : (rule.definitionList).singleDefinition) { 
     99//                      singleDefsAsString.add(NodeModelUtils.findActualNodeFor(s).text.trim().replaceAll("[ \t\n\r]", "")); 
     100//              } 
     101// 
     102//              // for every rule get the single definitions as Strings 
     103//              var int j = 0; 
     104//              while (j<allRules.size) { 
     105//                      var currentRule=allRules.get(j); 
     106//                      if (currentRule != rule) { 
     107//                              var List<String> singleDefsAsString1 = new ArrayList<String>(); 
     108// 
     109//                              for (SingleDefinition s : ( currentRule.definitionList).singleDefinition) { 
     110//                                      singleDefsAsString1.add(NodeModelUtils.findActualNodeFor(s).text.trim().replaceAll("[ \t\n\r]", "")); 
     111//                              } 
     112// 
     113//                              //for every String SingleDefinition find a corresponding ind the current rule  
     114//                              if (singleDefsAsString.size == singleDefsAsString1.size) { 
     115//                                      var List<String> singleDefsAsStringCpy = singleDefsAsString.clone; 
     116//                                      var boolean equal = true; 
     117//                                      while (equal) { 
     118//                                              var String momentaryString = singleDefsAsStringCpy.get(0); 
     119//                                              var int i = 0; 
     120//                                              var boolean found = false; 
     121//                                              while (i < singleDefsAsString1.size && !found) { 
     122//                                                      if (singleDefsAsString1.get(i).equals(momentaryString)) { 
     123//                                                              singleDefsAsStringCpy.remove(0); 
     124//                                                              singleDefsAsString1.remove(i); 
     125//                                                              found = true 
     126//                                                      } 
     127//                                                      i++; 
     128//                                              } 
     129//                                              if (!found) { 
     130//                                                      equal = false; 
     131//                                              } 
     132//                                              if (singleDefsAsStringCpy.empty) { 
     133//                                                      var String description = duplicateRulesDescription + " with rule \"" + currentRule.getName() + 
     134//                                                              "\" (Line " + NodeModelUtils.findActualNodeFor(currentRule).getStartLine() + ")"; 
     135//                                                      warning(description, EbnfPackage$Literals::RULE__NAME) 
     136//                                              } 
     137//                                      } 
     138//                              } 
     139// 
     140//                      } 
     141//                      j++; 
     142//              } 
    91143        } 
    92144 
     
    122174 
    123175                if ((references.size() == 0) && (rule.getRulenumber() != 1)) 
    124                         warning(unusedRuleDescription, EbnfPackage$Literals::RULE__NAME,unusedRuleDescription,rule.name); 
     176                        warning(unusedRuleDescription, EbnfPackage$Literals::RULE__NAME, unusedRuleDescription, rule.name); 
    125177        } 
    126178 
     
    144196 
    145197                                        if (d1.equals(d2)) 
    146                                                 warning(equalAlternativeDescription, EbnfPackage$Literals::RULE__NAME,equalAlternativeDescription); 
     198                                                warning(equalAlternativeDescription, EbnfPackage$Literals::RULE__NAME, 
     199                                                        equalAlternativeDescription, rule.name); 
    147200                                } 
    148201                        } 
     
    162215                var List<RuleReference> references = EbnfAnalysisUtils.findReferences(rule); 
    163216 
    164                 if (EbnfAnalysisUtils.isPassthroughRule(rule)) { 
     217                if (EbnfAnalysisUtils.isPassthroughRule(rule) && rule.rulenumber != 1) { 
    165218                        if (references.size() == 0) { 
    166219                                warning(unreferencedPassthroughRuleDescription, EbnfPackage$Literals::RULE__NAME); 
    167220                        } else { 
    168                                 warning(passthroughRuleDescription, EbnfPackage$Literals::RULE__NAME,passthroughRuleDescription); 
     221                                warning(passthroughRuleDescription, EbnfPackage$Literals::RULE__NAME, passthroughRuleDescription, 
     222                                        rule.name); 
    169223                        } 
    170224                } 
    171225        } 
    172226 
    173  
    174         // ---------------------------------------------------------------------------------------------------- 
    175         /* Checks if a subrule is used more then once, e.g.: 
     227// ---------------------------------------------------------------------------------------------------- 
     228/* Checks if a subrule is used more then once, e.g.: 
    176229         * a ::= (a b) e 
    177230         * b ::= (a b) d 
Note: See TracChangeset for help on using the changeset viewer.