X-Git-Url: http://secure.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/phpparser/PHPParser.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/phpparser/PHPParser.java index 81d8579..010e977 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/phpparser/PHPParser.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/phpparser/PHPParser.java @@ -19,6 +19,7 @@ import net.sourceforge.phpeclipse.PHPeclipsePlugin; import net.sourceforge.phpeclipse.actions.PHPStartApacheAction; import net.sourceforge.phpeclipse.phpeditor.PHPString; import net.sourceforge.phpeclipse.phpeditor.php.PHPKeywords; + import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IMarker; import org.eclipse.core.runtime.CoreException; @@ -34,6 +35,7 @@ public class PHPParser extends PHPKeywords { public static final int ERROR = 2; public static final int WARNING = 1; public static final int INFO = 0; + private IFile fileToParse; private ArrayList phpList; @@ -196,6 +198,12 @@ public class PHPParser extends PHPKeywords { } } + /** + * This method will throw the SyntaxError. + * It will add the good lines and columns to the Error + * @param error the error message + * @throws SyntaxError the error raised + */ private void throwSyntaxError(String error) { if (str.length() < chIndx) { @@ -213,8 +221,13 @@ public class PHPParser extends PHPKeywords { throw new SyntaxError(rowCount, chIndx - columnCount + 1, str.substring(columnCount, eol), error); } + /** + * This method will throw the SyntaxError. + * It will add the good lines and columns to the Error + * @param error the error message + * @throws SyntaxError the error raised + */ private void throwSyntaxError(String error, int startRow) { - throw new SyntaxError(startRow, 0, " ", error); } @@ -761,23 +774,11 @@ public class PHPParser extends PHPKeywords { phpMode = true; phpFound = true; break; - } else if (ch2 == 'p') { + } else if (ch2 == 'p' || ch2 == 'P') { ch2 = str.charAt(chIndx++); - if (ch2 == 'h') { + if (ch2 == 'h' || ch2 == 'H') { ch2 = str.charAt(chIndx++); - if (ch2 == 'p') { - phpMode = true; - phpFound = true; - break; - } - chIndx--; - } - chIndx--; - } else if (ch2 == 'P') { - ch2 = str.charAt(chIndx++); - if (ch2 == 'H') { - ch2 = str.charAt(chIndx++); - if (ch2 == 'P') { + if (ch2 == 'p' || ch2 == 'P') { phpMode = true; phpFound = true; break; @@ -1275,11 +1276,13 @@ public class PHPParser extends PHPKeywords { // } } - + /** + * Get an identifier. + */ private void getIdentifier() { - StringBuffer ident = new StringBuffer(); - - ident.append(ch); + // StringBuffer ident = new StringBuffer(); + int startPosition = chIndx - 1; +// ident.append(ch); if (ch == '$') { getChar(); // attention recursive call: @@ -1291,13 +1294,18 @@ public class PHPParser extends PHPKeywords { } getChar(); + + //this will read the buffer until the next character is a forbidden character for identifier while ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z') || (ch >= '0' && ch <= '9') || (ch == '_')) { - ident.append(ch); + // ident.append(ch); getChar(); } - identifier = ident.toString(); - chIndx--; + int endPosition = chIndx--; + int length = (--endPosition) - startPosition; + identifier = str.substring(startPosition, endPosition); + // System.out.println(identifier); + // determine if this identitfer is a keyword // @todo improve this in future version Integer i = (Integer) keywordMap.get(identifier.toLowerCase()); @@ -1306,6 +1314,13 @@ public class PHPParser extends PHPKeywords { } } + /** + * Get a number. + * if it's a double the number will be stored in doubleNumber and the token will have the + * value {@link PHPParser#TT_DOUBLE_NUMBER}
+ * if it's a double the number will be stored in longNumber and the token will have the + * value {@link PHPParser#TT_INT_NUMBER} + */ private void getNumber() { StringBuffer inum = new StringBuffer(); char dFlag = ' '; @@ -3306,6 +3321,10 @@ public class PHPParser extends PHPKeywords { } } + /** + * It will look for a value (after a '=' for example) + * @throws CoreException + */ private void constant() throws CoreException { String ident; switch (token) {