| /******************************************************************************* |
| * Copyright (c) 2010 xored software, Inc. |
| * |
| * This program and the accompanying materials are made available under the |
| * terms of the Eclipse Public License v. 2.0 which is available at |
| * http://www.eclipse.org/legal/epl-2.0. |
| * |
| * SPDX-License-Identifier: EPL-2.0 |
| * |
| * Contributors: |
| * xored software, Inc. - initial API and Implementation (Alex Panchenko) |
| *******************************************************************************/ |
| package org.eclipse.dltk.javascript.parser; |
| |
| import org.eclipse.dltk.compiler.problem.IProblem; |
| import org.eclipse.dltk.compiler.problem.IProblemIdentifier; |
| import org.eclipse.dltk.compiler.problem.IProblemIdentifierExtension2; |
| import org.eclipse.dltk.utils.EnumNLS; |
| import org.eclipse.osgi.util.NLS; |
| |
| public enum JavaScriptParserProblems implements IProblemIdentifier, |
| JSProblemIdentifier, IProblemIdentifierExtension2 { |
| |
| INTERNAL_ERROR, |
| LEXER_ERROR, |
| SYNTAX_ERROR, |
| RESERVED_KEYWORD, |
| |
| DUPLICATE_FUNCTION(JSParserProblemGroup.DUPLICATE_DECLARATION), |
| DUPLICATE_PARAMETER(JSParserProblemGroup.DUPLICATE_DECLARATION), |
| DUPLICATE_VAR(JSParserProblemGroup.DUPLICATE_DECLARATION), |
| DUPLICATE_CONST(JSParserProblemGroup.DUPLICATE_DECLARATION), |
| |
| FUNCTION_DUPLICATES_OTHER(JSParserProblemGroup.DUPLICATE_DECLARATION_OTHER_KIND), |
| VAR_DUPLICATES_OTHER(JSParserProblemGroup.DUPLICATE_DECLARATION_OTHER_KIND), |
| CONST_DUPLICATES_OTHER(JSParserProblemGroup.DUPLICATE_DECLARATION_OTHER_KIND), |
| |
| DOUBLE_SWITCH_DEFAULT, DUPLICATE_LABEL, UNDEFINED_LABEL, BAD_BREAK, |
| INVALID_RETURN, BAD_CONTINUE, CATCH_UNREACHABLE, |
| |
| TRAILING_COMMA_OBJECT_INITIALIZER; |
| |
| JavaScriptParserProblems() { |
| this(null); |
| } |
| |
| private final JSParserProblemGroup group; |
| |
| JavaScriptParserProblems(JSParserProblemGroup group) { |
| this.group = group; |
| } |
| |
| public IProblemIdentifier getPrimeIdentifier() { |
| return group; |
| } |
| |
| private String message; |
| |
| public String getMessage() { |
| return message; |
| } |
| |
| public String formatMessage(Object... args) { |
| return NLS.bind(message, args); |
| } |
| |
| static { |
| EnumNLS.initializeMessages(JavaScriptParserProblems.values(), "message"); |
| } |
| |
| public String contributor() { |
| return JavaScriptParserPlugin.PLUGIN_ID; |
| } |
| |
| /** |
| * Checks if the specified problem is a syntax error, so AST is not fully |
| * correct. |
| */ |
| public static boolean isSyntaxError(IProblem problem) { |
| return problem.getID() == LEXER_ERROR |
| || problem.getID() == SYNTAX_ERROR |
| || problem.getID() == INTERNAL_ERROR; |
| } |
| |
| } |