/**
* Get the next token from input
*/
- private void getNextToken() {
- try {
- fToken = fScanner.getNextToken();
- if (Scanner.DEBUG) {
- int currentEndPosition = fScanner.getCurrentTokenEndPosition();
- int currentStartPosition = fScanner.getCurrentTokenStartPosition();
- System.out.print(currentStartPosition + "," + currentEndPosition + ": ");
- System.out.println(fScanner.toStringAction(fToken));
- }
- return;
- } catch (InvalidInputException e) {
- // ignore errors
- // e.printStackTrace();
+ private void getNextToken() throws InvalidInputException {
+ // try {
+ fToken = fScanner.getNextToken();
+ if (Scanner.DEBUG) {
+ int currentEndPosition = fScanner.getCurrentTokenEndPosition();
+ int currentStartPosition = fScanner.getCurrentTokenStartPosition();
+ System.out.print(currentStartPosition + "," + currentEndPosition + ": ");
+ System.out.println(fScanner.toStringAction(fToken));
}
- fToken = TokenNameERROR;
+ return;
+ // } catch (InvalidInputException e) {
+ // // ignore errors
+ // // e.printStackTrace();
+ // }
+ // fToken = TokenNameERROR;
}
private void parseDeclarations(char[] parent, StringBuffer buf, boolean goBack) {
getNextToken();
}
}
+ } catch (InvalidInputException e) {
+ // ignore errors
} catch (SyntaxError e) {
// TODO Auto-generated catch block
e.printStackTrace();
fScanner.setSource(charArray);
fScanner.setPHPMode(false);
fToken = TokenNameEOF;
- getNextToken();
try {
+ getNextToken();
while (fToken != TokenNameEOF) { // && fToken != TokenNameERROR) {
phpdocOffset = -1;
hasModifiers = false;
getNextToken();
}
}
+ } catch (InvalidInputException e) {
+ // ignore errors
} catch (SyntaxError e) {
// TODO Auto-generated catch block
e.printStackTrace();
addIdentifiers(treeMap, file);
return treeMap;
}
+
public TreeMap getIdentifiers(String startClazz) {
TreeMap treeMap = new TreeMap(new StringComparator());
addIdentifiers(treeMap, startClazz);
return treeMap;
}
-
+
public void addIdentifiers(TreeMap treeMap, IFile file) {
String line = (String) fFileMap.get(file.getProjectRelativePath().toString());
if (line != null) {
PHPIdentifierLocation ident;
ArrayList allClassNames = new ArrayList();
addLine(treeMap, null, line, allClassNames);
- int i=0;
- while (i<allClassNames.size()) {
+ int i = 0;
+ while (i < allClassNames.size()) {
String clazz = (String) allClassNames.get(i++);
addClassName(treeMap, clazz, allClassNames);
}
PHPIdentifierLocation ident;
ArrayList allClassNames = new ArrayList();
addClassName(treeMap, startClazz, allClassNames);
- int i=0;
- while (i<allClassNames.size()) {
+ int i = 0;
+ while (i < allClassNames.size()) {
String clazz = (String) allClassNames.get(i++);
addClassName(treeMap, clazz, allClassNames);
}
String line;
PHPIdentifierLocation ident;
List list = getLocations(clazz);
- if (list==null) {
+ if (list == null) {
return false;
}
boolean result = false;
Contributors:
Igor Malinin - initial contribution
- $Id: PHPPartitionScanner.java,v 1.25 2004-09-02 18:32:34 jsurfer Exp $
+ $Id: PHPPartitionScanner.java,v 1.26 2005-05-05 14:06:38 axelcl Exp $
**********************************************************************/
package net.sourceforge.phpeclipse.phpeditor.php;
return getToken(token);
case '"': // double quoted string
// read until end of double quoted string
- readUntilEscaped('"');
+ if (!readUntilEscapedDQ()) {
+ state = STATE_DEFAULT;
+ return getToken(token);
+ }
break;
case '\'': // single quoted string
// read until end of single quoted string
- readUntilEscaped('\'');
+ if (!readUntilEscapedSQ()) {
+ state = STATE_DEFAULT;
+ return getToken(token);
+ }
break;
case '/': // comment start?
ch = read();
}
}
- private void readUntilEscaped(char ch) {
+ private boolean readUntilEscapedDQ() {
+ // search last double quoted character
if (position >= end) {
- return;
+ return false;
}
try {
+ char ch;
while (true) {
- if (document.getChar(position++) == ch) {
- if (position < 2 || document.getChar(position - 2) != '\\') {
- break;
- }
+ ch = document.getChar(position++);
+ if (ch == '\\') {
+ ch = document.getChar(position++); // ignore escaped character
+ } else if (ch == '"') {
+ return true;
+ }
+ }
+ } catch (BadLocationException e) {
+ --position;
+ }
+ return false;
+ }
+
+ private boolean readUntilEscapedSQ() {
+ // search last single quoted character
+ if (position >= end) {
+ return false;
+ }
+ try {
+ char ch;
+ while (true) {
+ ch = document.getChar(position++);
+ if (ch == '\\') {
+ ch = document.getChar(position++); // ignore escaped character
+ } else if (ch == '\'') {
+ return true;
}
}
} catch (BadLocationException e) {
--position;
- return;
}
+ return false;
}
private void readSingleLine() {