Ignore:
Timestamp:
11/02/10 10:22:17 (14 years ago)
Author:
zeiss
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/de.ugoe.cs.swe.bnftools.ebnf.ui/src/de/ugoe/cs/swe/bnftools/ui/formatter/EbnfFormatterVisitor.java

    r22 r23  
    33import java.util.ArrayList; 
    44 
    5 import org.eclipse.emf.common.util.EList; 
    65import org.eclipse.emf.ecore.EObject; 
    76import org.eclipse.xtext.parsetree.AbstractNode; 
    87import org.eclipse.xtext.parsetree.CompositeNode; 
    98import org.eclipse.xtext.parsetree.LeafNode; 
    10 import org.eclipse.xtext.parsetree.NodeAdapter; 
    119import org.eclipse.xtext.parsetree.NodeUtil; 
    1210 
     
    4038        private int bufferPosition = 0; 
    4139        private int bufferPositionOriginalText = 0; 
    42         private int commentPosition = 0; 
    4340        private int allCommentsPosition = 0; 
    4441        private ArrayList<LeafNode> allComments = new ArrayList<LeafNode>(); 
    45         private ArrayList<String> collectedComments = new ArrayList<String>(); 
    4642         
    4743        private boolean lastWasSectionHeading=false; 
    4844        private CompositeNode parserEtsiBnfNode; 
    4945        private String originalText; 
    50         private String originalTextNoWhitespaces; 
    5146        private int bufferPositionFormattedText; 
    5247        private String formattedText; 
    5348        private String bufNoWhitespaces; 
     49        private String originalTextNoWhitespaces; 
    5450         
    5551        public EbnfFormatterVisitor(EObject rootNode, FormatterConfig config) { 
     
    9086        } 
    9187 
    92 //      private ArrayList<String> collectComments(CompositeNode node) { 
    93 //              collectedComments.clear(); 
    94 ////            System.out.println(node); 
    95 ////            System.out.println(node.serialize()); 
    96 ////            searchSubTree(node); 
    97 //              return collectedComments; 
    98 //      } 
    99          
    10088        private boolean isSingleLineComment(String str) { 
    10189                if (str.startsWith("//")) 
     
    183171                                        LeafNode currentComment = allComments.get(allCommentsPosition);  
    184172                                        if (currentComment.getTotalOffset() == bufferPositionOriginalText) { 
    185                                                  
    186                                                  
    187173                                                if (isMultiLineComment(currentComment.getText())) { 
    188174                                                        result.append(currentComment.getText()); 
    189175                                                        result.append("\n"); 
    190                                                 } else { 
     176                                                } else if (isSingleLineComment(currentComment.getText())) { 
    191177                                                        String lastWhiteSpaces = scanBackWhitespaces(result.toString(), result.toString().length()-1); 
    192178                                                        result.delete(result.toString().length() - lastWhiteSpaces.length(), result.toString().length()); 
     
    209195                 
    210196        } 
    211          
    212         private void appendComments(EObject node) { 
    213 //              String currentBuf = buf.toString().replaceAll("[ \t\n\r]", ""); 
    214 //              while (bufferPosition < currentBuf.length()) { 
    215 //                      skipWhitespacesOriginalText(); 
    216 //                      System.out.print(currentBuf.charAt(bufferPosition)); 
    217 //                      System.out.print(originalText.charAt(bufferPositionOriginalText)); 
    218 //                      bufferPositionOriginalText++; 
    219 //                      bufferPosition++; 
    220 //              } 
    221                  
    222 // 
    223 //              ArrayList<String> comments = collectComments(parseTreeNode); 
    224 //              for (int i=0; i < comments.size(); i++) { 
    225 //                      if (isSingleLineComment(comments.get(i))) { 
    226 //                              buf.append(" "); 
    227 //                              buf.append(comments.get(i).trim()); 
    228 //                              if (i+1 < comments.size()) 
    229 //                                      buf.append("\n"); 
    230 //                      } else if (isMultiLineComment(comments.get(i))) { 
    231 //                              buf.append("\n"); 
    232 //                              buf.append(comments.get(i)); 
    233 //                              if (i+1 < comments.size()) 
    234 //                                      buf.append("\n"); 
    235 //                      } 
    236 //              } 
    237                  
    238         } 
     197 
    239198         
    240199        // ----------------------------------------------------------------------------- 
     
    252211                buf.append(";"); 
    253212 
    254                 appendComments(node); 
    255                  
    256213                buf.append("\n\n"); 
    257214        } 
     
    334291        protected void visitBefore(Import node) { 
    335292                buf.append("import \"" + node.getImportURI() + "\";"); 
    336                 appendComments(node); 
    337293                buf.append("\n"); 
    338                  
    339294        } 
    340295 
     
    407362                 
    408363                buf.append(node.getSectionHeader()); 
    409                  
    410                 appendComments(node); 
    411364        } 
    412365 
Note: See TracChangeset for help on using the changeset viewer.