###############################################################################
# Copyright (c) 2000, 2019 IBM Corporation and others.
#
# This program and the accompanying materials
# are made available under the terms of the Eclipse Public License 2.0
# which accompanies this distribution, and is available at
# https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
#
# Contributors:
#     IBM Corporation - initial API and implementation
# Jesper Steen Moller - 427089: [1.8] Change value in Variables view with lambda or method reference
###############################################################################

ASTInstructionCompiler_Assert_statement_cannot_be_used_in_an_evaluation_expression_3=Assert statement cannot be used in an evaluation expression
ASTInstructionCompiler_Unrecognized_assignment_operator____4=Unrecognized assignment operator :

ASTInstructionCompiler_Catch_clause_cannot_be_used_in_an_evaluation_expression_6=Catch clause cannot be used in an evaluation expression
ASTInstructionCompiler_Anonymous_type_declaration_cannot_be_used_in_an_evaluation_expression_7=Anonymous type declaration cannot be used in an evaluation expression
ASTInstructionCompiler_Constructor_of_a_local_type_cannot_be_used_in_an_evaluation_expression_8=Constructor of a local type cannot be used in an evaluation expression
ASTInstructionCompiler_this_constructor_invocation_cannot_be_used_in_an_evaluation_expression_9=this constructor invocation cannot be used in an evaluation expression
ASTInstructionCompiler_Error_in_type_declaration_statement= Error in declaration statement.
ASTInstructionCompiler_Unrecognized_infix_operator____13=Unrecognized infix operator :

ASTInstructionCompiler_unrecognized_postfix_operator____15=unrecognized postfix operator :
ASTInstructionCompiler_unrecognized_prefix_operator____16=unrecognized prefix operator :

ASTInstructionCompiler_super_constructor_invocation_cannot_be_used_in_an_evaluation_expression_19=super constructor invocation cannot be used in an evaluation expression
ASTInstructionCompiler_Try_statement_cannot_be_used_in_an_evaluation_expression_23=Try statement cannot be used in an evaluation expression
ASTInstructionCompiler_Type_declaration_cannot_be_used_in_an_evaluation_expression_24=Type declaration cannot be used in an evaluation expression
ASTInstructionCompiler_Type_declaration_statement_cannot_be_used_in_an_evaluation_expression_25=Type declaration statement cannot be used in an evaluation expression
ASTInstructionCompiler_Local_type_array_instance_creation_cannot_be_used_in_an_evaluation_expression_29=Local type array instance creation cannot be used in an evaluation expression
ASTInstructionCompiler_Constructor_which_contains_a_local_type_as_parameter_cannot_be_used_in_an_evaluation_expression_30=Constructor which contains a local type as parameter cannot be used in an evaluation expression
ASTInstructionCompiler_Qualified_local_type_field_access_cannot_be_used_in_an_evaluation_expression_31=Qualified local type field access cannot be used in an evaluation expression
ASTInstructionCompiler_Method_which_contains_a_local_type_as_parameter_cannot_be_used_in_an_evaluation_expression_32=Method which contains a local type as parameter cannot be used in an evaluation expression
ASTInstructionCompiler_Must_explicitly_qualify_the_allocation_with_an_instance_of_the_enclosing_type_33=Must explicitly qualify the allocation with an instance of the enclosing type
ASTEvaluationEngine_Evaluations_must_contain_either_an_expression_or_a_block_of_well_formed_statements_1=Evaluations must contain either an expression or a block of well-formed statements

InterpreterVariable_setValue_String__not_supported_for_interpreter_variable_1=setValue(String) not supported for interpreter variable
InterpreterVariable_verifyValue_IValue__not_supported_for_interpreter_variable_2=verifyValue(IValue) not supported for interpreter variable
InterpreterVariable_verifyValue_String__not_supported_for_interpreter_variable_3=verifyValue(String) not supported for interpreter variable

ASTEvaluationEngine_AST_evaluation_engine_cannot_evaluate_expression=The AST evaluation engine cannot evaluate this expression.
ASTEvaluationEngine_An_unknown_error_occurred_during_evaluation=An unknown error occurred during evaluation
ASTEvaluationEngine_Cannot_perform_nested_evaluations=Cannot perform nested evaluations.

ASTInstructionCompiler_3=Unable to resolve type binding for: {0}
ASTInstructionCompiler_0=Enum declaration cannot be used in an evaluation expression
ASTInstructionCompiler_1=Unable to resolve type binding of constructor: {0}
ASTInstructionCompiler_2=Unable to resolve type binding of declaring type of: {0}
ASTInstructionCompiler_4=The ASTInstruction compiler failed to store instruction at counter: {0}
ASTInstructionCompiler_5=Unable to resolve binding for: {0}
ASTEvaluationEngine_1=Unable to retrieve type for java.lang.Object
ArrayRuntimeContext_0=Unable to retrieve type for java.lang.Object

ASTInstructionCompiler_Lambda_expressions_cannot_be_used_in_an_evaluation_expression=Lambda expressions cannot be used in an evaluation expression
ASTInstructionCompiler_Reference_expressions_cannot_be_used_in_an_evaluation_expression=Reference expressions cannot be used in an evaluation expression
ASTInstructionCompiler_Switch_expressions_cannot_be_used_in_an_evaluation_expression=Switch expressions cannot be used in an evaluation expression
ASTInstructionCompiler_Functional_expressions_cannot_be_evaluated_inside_local_and_or_anonymous_classes=Functional expressions cannot be evaluated inside local and or anonymous classes