diff --git a/php.editor/src/org/netbeans/modules/php/editor/parser/GSFPHPParser.java b/php.editor/src/org/netbeans/modules/php/editor/parser/GSFPHPParser.java --- a/php.editor/src/org/netbeans/modules/php/editor/parser/GSFPHPParser.java +++ b/php.editor/src/org/netbeans/modules/php/editor/parser/GSFPHPParser.java @@ -240,11 +240,11 @@ phpParserResult = sanitize(context, sanitizing, errorHandler); } if (isParsingWithoutSanitization(sanitizing)) { - phpParserResult.setErrors(errorHandler.displaySyntaxErrors(program)); + phpParserResult.setErrors(errorHandler.displayErrors()); } } else { // there was no rootElement phpParserResult = sanitize(context, sanitizing, errorHandler); - phpParserResult.setErrors(errorHandler.displayFatalError()); + phpParserResult.setErrors(errorHandler.displayErrors()); } return phpParserResult; diff --git a/php.editor/src/org/netbeans/modules/php/editor/parser/PHP5ErrorHandler.java b/php.editor/src/org/netbeans/modules/php/editor/parser/PHP5ErrorHandler.java --- a/php.editor/src/org/netbeans/modules/php/editor/parser/PHP5ErrorHandler.java +++ b/php.editor/src/org/netbeans/modules/php/editor/parser/PHP5ErrorHandler.java @@ -45,7 +45,6 @@ import java_cup.runtime.Symbol; import org.netbeans.modules.csl.api.Error; import org.netbeans.modules.csl.api.Severity; -import org.netbeans.modules.php.editor.parser.astnodes.Program; import org.openide.util.NbBundle; /** @@ -54,8 +53,7 @@ */ public interface PHP5ErrorHandler extends ParserErrorHandler { - List displayFatalError(); - List displaySyntaxErrors(Program program); + List displayErrors(); List getSyntaxErrors(); void disableHandling(); @@ -143,7 +141,7 @@ super(Bundle.MSG_FatalError(), context.getSnapshot().getSource().getFileObject(), 0, context.getBaseSource().length(), - Severity.ERROR, null); + Severity.FATAL, null); } @Override diff --git a/php.editor/src/org/netbeans/modules/php/editor/parser/PHP5ErrorHandlerImpl.java b/php.editor/src/org/netbeans/modules/php/editor/parser/PHP5ErrorHandlerImpl.java --- a/php.editor/src/org/netbeans/modules/php/editor/parser/PHP5ErrorHandlerImpl.java +++ b/php.editor/src/org/netbeans/modules/php/editor/parser/PHP5ErrorHandlerImpl.java @@ -43,7 +43,6 @@ package org.netbeans.modules.php.editor.parser; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; @@ -52,7 +51,6 @@ import org.netbeans.modules.php.api.util.StringUtils; import org.netbeans.modules.php.editor.parser.GSFPHPParser.Context; import org.netbeans.modules.php.editor.parser.astnodes.ASTNode; -import org.netbeans.modules.php.editor.parser.astnodes.Program; import org.openide.util.NbBundle; /** @@ -64,11 +62,13 @@ private final List syntaxErrors; private final Context context; private volatile boolean handleErrors = true; + private final List fatalErrors; public PHP5ErrorHandlerImpl(Context context) { super(); this.context = context; syntaxErrors = new ArrayList<>(); + fatalErrors = new ArrayList<>(); } @Override @@ -81,6 +81,8 @@ syntaxErrorType = SyntaxError.Type.FIRST_VALID_ERROR; } syntaxErrors.add(new SyntaxError(expectedtokens, current, previous, syntaxErrorType)); + } else if (type == Type.FATAL_PARSER_ERROR) { + fatalErrors.add(new FatalError(context)); } } } @@ -90,13 +92,7 @@ handleErrors = false; } - @Override - public List displayFatalError() { - return Arrays.asList((Error) new FatalError(context)); - } - - @Override - public List displaySyntaxErrors(Program program) { + private List prepareSyntaxErrors() { List errors = new ArrayList<>(); for (SyntaxError syntaxError : syntaxErrors) { errors.add(defaultSyntaxErrorHandling(syntaxError)); @@ -104,6 +100,14 @@ return errors; } + @Override + public List displayErrors() { + List errors = new ArrayList<>(); + errors.addAll(prepareSyntaxErrors()); + errors.addAll(fatalErrors); + return errors; + } + @NbBundle.Messages("SE_Expected=expected") private Error defaultSyntaxErrorHandling(SyntaxError syntaxError) { StringBuilder message = new StringBuilder(); diff --git a/php.editor/src/org/netbeans/modules/php/editor/parser/PHPParseResult.java b/php.editor/src/org/netbeans/modules/php/editor/parser/PHPParseResult.java --- a/php.editor/src/org/netbeans/modules/php/editor/parser/PHPParseResult.java +++ b/php.editor/src/org/netbeans/modules/php/editor/parser/PHPParseResult.java @@ -60,7 +60,7 @@ public class PHPParseResult extends ParserResult { private final Program root; - private List errors; + private List errors; private Model model; public PHPParseResult(Snapshot snapshot, Program rootNode) { @@ -109,7 +109,7 @@ // remove from parser cache (?) } - public void setErrors(List errors) { + public void setErrors(List errors) { this.errors = errors; }