Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] Patch fixes an ASM file open/create problem.

This patch fixes the following problem:
Not possible to create or open .S (assembler file).
Try causes UnsupportedOperationException.
The problem appeared  after replacing of deprecate class RuleBasedScanner to
RuleBasedPartitionScanner.



Index: AsmPartitionScanner.java
===================================================================
RCS file:
/home/tools/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/editor/asm/As
mPartitionScanner.java,v
retrieving revision 1.2
diff -u -r1.2 AsmPartitionScanner.java
--- AsmPartitionScanner.java 21 Aug 2002 00:44:37 -0000 1.2
+++ AsmPartitionScanner.java 26 Aug 2002 22:01:52 -0000
@@ -8,12 +8,12 @@
 import java.util.ArrayList;
 import java.util.List;

-import org.eclipse.jface.text.rules.IRule;
+import org.eclipse.jface.text.rules.ICharacterScanner;
+import org.eclipse.jface.text.rules.IPredicateRule;
 import org.eclipse.jface.text.rules.IToken;
 import org.eclipse.jface.text.rules.IWordDetector;
 import org.eclipse.jface.text.rules.MultiLineRule;
 import org.eclipse.jface.text.rules.RuleBasedPartitionScanner;
-import org.eclipse.jface.text.rules.RuleBasedScanner;
 import org.eclipse.jface.text.rules.Token;
 import org.eclipse.jface.text.rules.WordRule;

@@ -79,8 +79,7 @@


   // Add special case word rule.
-  WordRule wordRule= new WordRule(new EmptyCommentDetector());
-  wordRule.addWord("/**/", comment);
+  EmptyCommentRule wordRule= new EmptyCommentRule(comment);
   rules.add(wordRule);


@@ -88,8 +87,36 @@
   rules.add(new MultiLineRule("/*", "*/", comment));


-  IRule[] result= new IRule[rules.size()];
+  IPredicateRule[] result= new IPredicateRule[rules.size()];
   rules.toArray(result);
-  setRules(result);
+  setPredicateRules(result);
  }
+
+ static class EmptyCommentRule extends WordRule implements IPredicateRule {
+
+  private IToken fSuccessToken;
+  /**
+   * Constructor for EmptyCommentRule.
+   * @param defaultToken
+   */
+  public EmptyCommentRule(IToken successToken) {
+   super(new EmptyCommentDetector());
+   fSuccessToken= successToken;
+   addWord("/**/", fSuccessToken); //$NON-NLS-1$
+  }
+
+  /*
+   * @see IPredicateRule#evaluate(ICharacterScanner, boolean)
+   */
+  public IToken evaluate(ICharacterScanner scanner, boolean resume) {
+   return evaluate(scanner);
+  }
+
+  /*
+   * @see IPredicateRule#getSuccessToken()
+   */
+  public IToken getSuccessToken() {
+   return fSuccessToken;
+  }
+ };
 }




Back to the top