comparison org.eclipse.jface.text/src/org/eclipse/jface/text/rules/WordPatternRule.d @ 16:dbfb303e8fb0

first complete successful compile (win-only)
author Frank Benoit <benoit@tionex.de>
date Wed, 18 Mar 2009 08:56:47 +0100
parents bc29606a740c
children
comparison
equal deleted inserted replaced
15:c4b1a29263fc 16:dbfb303e8fb0
100 * 100 *
101 * @param scanner the scanner to be used 101 * @param scanner the scanner to be used
102 * @return <code>true</code> if the word ends on the given end sequence 102 * @return <code>true</code> if the word ends on the given end sequence
103 */ 103 */
104 protected bool endSequenceDetected(ICharacterScanner scanner) { 104 protected bool endSequenceDetected(ICharacterScanner scanner) {
105 fBuffer.truncate(0); 105 fBuffer.setLength(0);
106 int c= scanner.read(); 106 int c= scanner.read();
107 while (fDetector.isWordPart(cast(dchar) c)) { 107 while (fDetector.isWordPart(cast(dchar) c)) {
108 fBuffer.append(cast(char) c); 108 fBuffer.append(cast(char) c);
109 c= scanner.read(); 109 c= scanner.read();
110 } 110 }
111 scanner.unread(); 111 scanner.unread();
112 112
113 if (fBuffer.length() >= fEndSequence.length) { 113 if (fBuffer.length() >= fEndSequence.length) {
114 for (int i=fEndSequence.length - 1, j= fBuffer.length() - 1; i >= 0; i--, j--) { 114 for (int i=fEndSequence.length - 1, j= fBuffer.length() - 1; i >= 0; i--, j--) {
115 if (fEndSequence[i] !is fBuffer.slice()[j]) { 115 if (fEndSequence[i] !is fBuffer.charAt(j)) {
116 unreadBuffer(scanner); 116 unreadBuffer(scanner);
117 return false; 117 return false;
118 } 118 }
119 } 119 }
120 return true; 120 return true;
130 * read in as part of the start sequence expect the first one. 130 * read in as part of the start sequence expect the first one.
131 * 131 *
132 * @param scanner the scanner to be used 132 * @param scanner the scanner to be used
133 */ 133 */
134 protected void unreadBuffer(ICharacterScanner scanner) { 134 protected void unreadBuffer(ICharacterScanner scanner) {
135 fBuffer.select(0, 0 ); 135 fBuffer.insert(0, fStartSequence);
136 fBuffer.replace(fStartSequence);
137 for (int i= fBuffer.length() - 1; i > 0; i--) 136 for (int i= fBuffer.length() - 1; i > 0; i--)
138 scanner.unread(); 137 scanner.unread();
139 } 138 }
140 } 139 }