Contributors:
Igor Malinin - initial contribution
- $Id: PHPPartitionScanner.java,v 1.29 2005-05-15 23:24:41 axelcl Exp $
+ $Id: PHPPartitionScanner.java,v 1.30 2005-09-30 18:10:36 axelcl Exp $
**********************************************************************/
package net.sourceforge.phpeclipse.phpeditor.php;
import org.eclipse.jface.text.rules.Token;
/**
- *
- *
+ *
+ *
* @author Igor Malinin
*/
public class PHPPartitionScanner implements IPartitionTokenScanner {
private IDocument document;
- private int begin;
+// private int begin;
private int end;
private int position;
- private int state;
+// private int state;
private Map tokens = new HashMap();
switch (read()) {
case ICharacterScanner.EOF:
- state = STATE_DEFAULT;
+// state = STATE_DEFAULT;
return getToken(null);
case '<':
switch (read()) {
case ICharacterScanner.EOF:
- state = STATE_DEFAULT;
+// state = STATE_DEFAULT;
return getToken(null);
case '?': // <?
loop: while (true) {
switch (read()) {
case ICharacterScanner.EOF:
- state = STATE_DEFAULT;
+// state = STATE_DEFAULT;
return getToken(null);
case '<':
switch (read()) {
case ICharacterScanner.EOF:
- state = STATE_DEFAULT;
+// state = STATE_DEFAULT;
return getToken(null);
case '?':
unread();
- state = STATE_DEFAULT;
+// state = STATE_DEFAULT;
return getToken(null);
}
}
while (true) {
switch (ch) {
case ICharacterScanner.EOF:
- state = STATE_DEFAULT;
+// state = STATE_DEFAULT;
return getToken(token);
case '"': // double quoted string
// read until end of double quoted string
if (!readUntilEscapedDQ()) {
- state = STATE_DEFAULT;
+// state = STATE_DEFAULT;
return getToken(token);
}
break;
case '\'': // single quoted string
// read until end of single quoted string
if (!readUntilEscapedSQ()) {
- state = STATE_DEFAULT;
+// state = STATE_DEFAULT;
return getToken(token);
}
break;
case '/':
// read until end of line
if (!readSingleLine()) {
- state = STATE_DEFAULT;
+// state = STATE_DEFAULT;
return getToken(token);
}
break;
case '*':
// read until end of comment
if (!readMultiLineComment()) {
- state = STATE_DEFAULT;
+// state = STATE_DEFAULT;
return getToken(token);
}
break;
case '#': // line comment
// read until end of line
if (!readSingleLine()) {
- state = STATE_DEFAULT;
+// state = STATE_DEFAULT;
return getToken(token);
}
break;
switch (ch) {
case ICharacterScanner.EOF:
case '>':
- state = STATE_DEFAULT;
+// state = STATE_DEFAULT;
return getToken(token);
case '?':
// e.printStackTrace();
// }
// }
-
+
if (type == null) {
return Token.UNDEFINED;
}
}
return false;
}
-
+
private boolean readUntilEscapedSQ() {
// search last single quoted character
- try {
+ try {
char ch;
while (true) {
if (position >= end) {
return false;
}
- ch = document.getChar(position++);
+ ch = document.getChar(position++);
if (ch == '\\') {
if (position >= end) {
return false;
if (position >= end) {
return false;
}
- } while (document.getChar(position++) != '\n');
+ } while (document.getChar(position++) != '\n');
return true;
} catch (BadLocationException e) {
--position;
*/
public void setRange(IDocument document, int offset, int length) {
this.document = document;
- this.begin = offset;
+// this.begin = offset;
this.end = offset + length;
this.offset = offset;
* @see org.eclipse.jface.text.rules.IPartitionTokenScanner
*/
public void setPartialRange(IDocument document, int offset, int length, String contentType, int partitionOffset) {
- state = STATE_DEFAULT;
+// state = STATE_DEFAULT;
if (partitionOffset > -1) {
int delta = offset - partitionOffset;
if (delta > 0) {