Ignore:
Timestamp:
05/26/14 11:48:28 (10 years ago)
Author:
hkaulbersch
Message:

added the functions to generate a .pdf from .fo.
Still Not accessible.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • v2/trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/src/de/ugoe/cs/swe/bnftools/ui/quickfix/EbnfQuickfixProvider.xtend

    r66 r69  
    4242        //***************************************************************************************** 
    4343        //works but only in one file 
    44                 @Fix(EbnfValidator.ruleReferencedOneDescription) 
    45                 def void fixInlineRuleReferencedOnce(Issue issue, IssueResolutionAcceptor acceptor) { 
    46                         acceptor.accept( 
    47                                 issue, 
    48                                 "Inline the rule", 
    49                                 "Delete the rule and replace its single reference by the rule's right side", 
    50                                 "upcase.png" 
    51                         ) [ element, context | 
    52                                 var Rule rule = element as Rule; 
    53                                 var IXtextDocument xtextDocument = context.getXtextDocument(); 
    54                                 var ICompositeNode node = NodeModelUtils.findActualNodeFor(rule); 
    55                                 var String nodeText = node.text; 
    56                                 var int textLength = nodeText.length - 2; 
    57                                 var int offset = node.textRegion.offset; 
    58                                 //rename references 
    59                                 var ICompositeNode dList = NodeModelUtils.findActualNodeFor(rule.definitionList); 
    60                                 var String refText = "(" + dList.text + ")"; 
    61                                 var int refLength = rule.name.length; 
    62                                 var List<RuleReference> references = EbnfAnalysisUtils.findReferences(rule); 
    63                                 //********************************* 
    64                                 //is the reference in the rule itself? 
    65                                 var boolean foundRule = false; 
    66                                 var EObject r = references.get(0) as EObject; 
    67                                 var Rule containingRule = null; 
    68                                 while (!foundRule) { 
    69                                         r = r.eContainer; 
    70                                         if (r instanceof Rule) { 
    71                                                 containingRule = r as Rule; 
    72                                                 foundRule = true; 
    73                                         } 
    74                                 } 
    75                                 if (!rule.equals(containingRule)) { 
    76          
    77                                                                         for (ruleRef : references) { 
    78                                                                                 var ICompositeNode refNode = NodeModelUtils.findActualNodeFor(ruleRef); 
    79                                                                                 var int refOffset = refNode.textRegion.offset; 
    80                                          
    81                                                                                 xtextDocument.replace(refOffset, refLength, refText); 
    82                                                                                 if (refOffset < offset) { 
    83                                                                                         offset += refText.length - refLength; 
    84                                                                                 } 
    85                                                                         } 
    86                                                                          
    87                                 // delete rule 
    88                                 } 
    89                                  
    90                                 xtextDocument.replace(offset, textLength, ""); 
    91                         ] 
    92          
    93                 } 
     44//              @Fix(EbnfValidator.ruleReferencedOneDescription) 
     45//              def void fixInlineRuleReferencedOnce(Issue issue, IssueResolutionAcceptor acceptor) { 
     46//                      acceptor.accept( 
     47//                              issue, 
     48//                              "Inline the rule", 
     49//                              "Delete the rule and replace its single reference by the rule's right side", 
     50//                              "upcase.png" 
     51//                      ) [ element, context | 
     52//                              var Rule rule = element as Rule; 
     53//                              var IXtextDocument xtextDocument = context.getXtextDocument(); 
     54//                              var ICompositeNode node = NodeModelUtils.findActualNodeFor(rule); 
     55//                              var String nodeText = node.text; 
     56//                              var int textLength = nodeText.length - 2; 
     57//                              var int offset = node.textRegion.offset; 
     58//                              //rename references 
     59//                              var ICompositeNode dList = NodeModelUtils.findActualNodeFor(rule.definitionList); 
     60//                              var String refText = "(" + dList.text + ")"; 
     61//                              var int refLength = rule.name.length; 
     62//                              var List<RuleReference> references = EbnfAnalysisUtils.findReferences(rule); 
     63//                              //********************************* 
     64//                              //is the reference in the rule itself? 
     65//                              var boolean foundRule = false; 
     66//                              var EObject r = references.get(0) as EObject; 
     67//                              var Rule containingRule = null; 
     68//                              while (!foundRule) { 
     69//                                      r = r.eContainer; 
     70//                                      if (r instanceof Rule) { 
     71//                                              containingRule = r as Rule; 
     72//                                              foundRule = true; 
     73//                                      } 
     74//                              } 
     75//                              if (!rule.equals(containingRule)) { 
     76//       
     77//                                                                      for (ruleRef : references) { 
     78//                                                                              var ICompositeNode refNode = NodeModelUtils.findActualNodeFor(ruleRef); 
     79//                                                                              var int refOffset = refNode.textRegion.offset; 
     80//                                       
     81//                                                                              xtextDocument.replace(refOffset, refLength, refText); 
     82//                                                                              if (refOffset < offset) { 
     83//                                                                                      offset += refText.length - refLength; 
     84//                                                                              } 
     85//                                                                      } 
     86//                                                                       
     87//                              // delete rule 
     88//                              } 
     89//                               
     90//                              xtextDocument.replace(offset, textLength, ""); 
     91//                      ] 
     92//       
     93//              } 
    9494         
    9595//      // this is not working by unknown reasons  
    9696//      @Fix(EbnfValidator.ruleReferencedOneDescription) 
    9797//      def void fixInlineRuleReferencedOnce(Issue issue, IssueResolutionAcceptor acceptor) { 
     98//              System.out.println("test"); 
    9899//              acceptor.accept( 
    99100//                      issue, 
     
    105106//                      var DefinitionList dlist = rule.definitionList; 
    106107//                      var List<Rule> rules=EbnfAnalysisUtils.getAllRules(rule.eContainer().eContainer() as EtsiBnf); 
    107 //                      var SingleDefinition sDef = rules.get(1).definitionList.singleDefinition.get(1); 
     108//                      var SingleDefinition sDef = rules.get(0).definitionList.singleDefinition.get(0); 
     109//                       
     110//                      System.out.println(dlist.singleDefinition); 
    108111//                      dlist.singleDefinition.add(sDef); 
     112//                      System.out.println(dlist.singleDefinition); 
     113//                       
    109114//                      rule.name="bla"; 
    110 //              ] 
    111 // 
     115//                      ] 
     116 
    112117//      } 
    113118 
Note: See TracChangeset for help on using the changeset viewer.