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

fixed imports

Location:
v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/src/de/ugoe/cs/swe/bnftools
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/src/de/ugoe/cs/swe/bnftools/EBNF.xtext

    r61 r65  
    5353        ('label:' label=ID)? ';' 
    5454; 
     55 
     56//Import: 'import' importedNamespace=FqnWithWildCard; 
     57//FqnWithWildCard: Fqn('.*')? ';'; 
     58//Fqn:ID('.'ID)*; 
     59 
    5560 
    5661Rule: 
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/src/de/ugoe/cs/swe/bnftools/GenerateEBNF.mwe2

    r61 r65  
    7373                // Xtend-based API for validation 
    7474                fragment = validation.ValidatorFragment auto-inject { 
    75                 //    composedCheck = "org.eclipse.xtext.validation.ImportUriValidator" 
    76                 //    composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator" 
     75                    composedCheck = "org.eclipse.xtext.validation.ImportUriValidator" 
     76                    composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator" 
    7777                } 
    7878     
    7979                // old scoping and exporting API 
    80                 // fragment = scoping.ImportURIScopingFragment auto-inject {} 
    81                 // fragment = exporting.SimpleNamesFragment auto-inject {} 
     80                fragment = scoping.ImportURIScopingFragment auto-inject {} 
     81                fragment = exporting.SimpleNamesFragment auto-inject {} 
    8282     
    8383                // scoping and exporting API 
    84                 fragment = scoping.ImportNamespacesScopingFragment auto-inject {} 
    85                 fragment = exporting.QualifiedNamesFragment auto-inject {} 
    86                 fragment = builder.BuilderIntegrationFragment auto-inject {} 
     84//              fragment = scoping.ImportNamespacesScopingFragment auto-inject {} 
     85//              fragment = exporting.QualifiedNamesFragment auto-inject {} 
     86//              fragment = builder.BuilderIntegrationFragment auto-inject {} 
    8787     
    8888                // generator API 
     
    115115     
    116116                // provides the necessary bindings for java types integration 
    117                 fragment = types.TypesGeneratorFragment auto-inject {} 
     117//              fragment = types.TypesGeneratorFragment auto-inject {} 
    118118     
    119119                // generates the required bindings only if the grammar inherits from Xbase 
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/src/de/ugoe/cs/swe/bnftools/formatting/EbnfFormatter.xtend

    r63 r65  
    99import org.eclipse.xtext.formatting.impl.AbstractDeclarativeFormatter 
    1010import org.eclipse.xtext.formatting.impl.FormattingConfig 
     11import org.eclipse.emf.ecore.EObject 
     12import de.ugoe.cs.swe.bnftools.ebnf.Rule 
     13import de.ugoe.cs.swe.bnftools.ebnf.DefinitionList 
    1114 
    1215/** 
     
    2932                c.setLinewrap(0, 1, 1).after(ML_COMMENTRule) 
    3033 
    31                  
    3234                var EbnfGrammarAccess f = getGrammarAccess as EbnfGrammarAccess; 
    3335                c.setLinewrap.before(f.ruleRule); 
    3436                c.setLinewrap.before(f.importRule); 
    3537                c.setNoSpace.after(f.ruleAccess.rulenumberINTTerminalRuleCall_0_0_0) 
    36 //              //c.setLinewrap.after(f.); 
     38 
     39                 
    3740//              for (Keyword bar : f.findKeywords("|")) { 
     41// 
    3842//                      c.setSpace("\n\t\t").before(bar); 
    3943//              } 
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/src/de/ugoe/cs/swe/bnftools/generator/EbnfGenerator.xtend

    r63 r65  
    1919import de.ugoe.cs.swe.bnftools.ebnf.RuleReference 
    2020import de.ugoe.cs.swe.bnftools.ebnf.StringRule 
     21import java.io.File 
    2122 
    2223/** 
     
    3031                for (e : resource.allContents.toIterable.filter(EtsiBnf)) { 
    3132                        if (e.bnfEntry.size!=0) { 
    32                                 fsa.generateFile(e.name + ".fo", e.compile) 
     33                                 fsa.generateFile(e.name + ".fo", e.compile) 
    3334                        } 
    3435                } 
     
    5051                <fo:page-sequence  master-reference="A4"> 
    5152                        <fo:flow flow-name="xsl-region-body" font-family="verdana"> 
     53                                 
     54                                <fo:block span="all"  text-align="center" text-indent="1em" font-family="Arial" font-size="20pt" font-weight="bold" background-color="#EEEEEE" line-height="20mm">«bnf.name»</fo:block> 
     55                                                 
    5256                                «FOR bnfentry:bnf.bnfEntry» 
    5357                                        «bnfentry.compile» 
     
    6367        ''' 
    6468         
    65         def compile(Rule rule)'''<fo:block><fo:inline id="«rule.name»"  color="purple">«IF rule.rulenumber!=0»«rule.rulenumber».\t«ENDIF»«rule.name»</fo:inline>        ::=     «rule.definitionList.compile»</block>''' 
     69        def compile(Rule rule)'''<fo:block><fo:inline id="«rule.name»"  color="purple">«IF rule.rulenumber!=0»«rule.rulenumber».        «ENDIF»«rule.name»</fo:inline>  ::=     «rule.definitionList.compile»</fo:block>''' 
    6670         
    6771        def compile(DefinitionList dList)'''«FOR sDef:dList.singleDefinition»«sDef.compile»«IF !sDef.equals(dList.singleDefinition.last)» | «ENDIF»«ENDFOR»''' 
     
    8084        «IF atom.atomRuleReference!= null»«atom.atomRuleReference.compile»«ENDIF»«IF atom.atomStringRule!= null»«atom.atomStringRule.compile»«ENDIF»''' 
    8185         
    82         def compile(RuleReference rRef)'''<fo:basic-link internal-destination="«rRef.ruleref.name»" text-decoration="underline" color="blue">«rRef.ruleref.name»</fo:basic-link>''' 
     86        def compile(RuleReference rRef)'''<fo:basic-link internal-destination="«rRef.ruleref.name»" text-decoration="underline" color="blue">«rRef.ruleref.name»</fo:basic-link>        ''' 
    8387         
    84         def compile(StringRule sRule)'''«IF sRule.colon!=null»«sRule.colon»«ENDIF»«IF sRule.literal!=null»«sRule.literal»«ENDIF»''' 
     88        def compile(StringRule sRule)'''«IF sRule.colon!=null»«sRule.colon»«ENDIF»«IF sRule.literal!=null»«sRule.literal»       «ENDIF»''' 
    8589         
    8690         
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf/src/de/ugoe/cs/swe/bnftools/scoping/EbnfScopeProvider.xtend

    r61 r65  
    33 */ 
    44package de.ugoe.cs.swe.bnftools.scoping 
     5 
     6//import org.eclipse.xtext.naming.IQualifiedNameConverter 
     7//import com.google.inject.Inject 
     8//import org.eclipse.xtext.scoping.impl.ImportUriGlobalScopeProvider 
    59 
    610/** 
     
    1317class EbnfScopeProvider extends org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider { 
    1418 
     19 
    1520} 
  • 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.