/**********************************************************************
 * Copyright (c) 2010 IBM Corporation.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/

package org.eclipse.ptp.pldt.common.messages;

import org.eclipse.osgi.util.NLS;

public class Messages extends NLS {
	private static final String BUNDLE_NAME = "org.eclipse.ptp.pldt.common.messages.messages"; //$NON-NLS-1$
	public static String Artifact_artifact;
	public static String Artifact_constant;
	public static String Artifact_function_call;
	public static String Artifact_none;
	public static String Artifact_pragma;
	
	public static String SimpleTableMarkerView_0;
	public static String SimpleTableMarkerView_1;
	public static String SimpleTableMarkerView_2;
	public static String SimpleTableMarkerView_91;
	public static String SimpleTableMarkerView_92;
	public static String SimpleTableMarkerView_93;
	public static String SimpleTableMarkerView_94;
	public static String SimpleTableMarkerView_95;
	public static String SimpleTableMarkerView_96;
	public static String SimpleTableMarkerView_constant;
	public static String SimpleTableMarkerView_description2;
	public static String SimpleTableMarkerView_error;
	public static String SimpleTableMarkerView_filename;
	public static String SimpleTableMarkerView_filename2;
	public static String SimpleTableMarkerView_function_call;
	public static String SimpleTableMarkerView_information;
	public static String SimpleTableMarkerView_lineno;
	public static String SimpleTableMarkerView_lineno2;
	public static String SimpleTableMarkerView_name2;
	public static String SimpleTableMarkerView_no_info_avail;
	public static String SimpleTableMarkerView_no;
	public static String SimpleTableMarkerView_none;
	public static String SimpleTableMarkerView_removeMarkers;
	public static String SimpleTableMarkerView_removeMarkersTooltip;
	public static String SimpleTableMarkerView_selected;
	public static String SimpleTableMarkerView_showInfo;
	public static String SimpleTableMarkerView_showInfoTooltip;
	public static String SimpleTreeTableMarkerView_1;
	public static String SimpleTreeTableMarkerView_2;
	public static String SimpleTreeTableMarkerView_3;
	public static String SimpleTreeTableMarkerView_83;
	public static String SimpleTreeTableMarkerView_84;
	public static String SimpleTreeTableMarkerView_85;
	public static String SimpleTreeTableMarkerView_86;
	public static String SimpleTreeTableMarkerView_87;
	public static String SimpleTreeTableMarkerView_88;
	public static String SimpleTreeTableMarkerView_constant;
	public static String SimpleTreeTableMarkerView_description;
	public static String SimpleTreeTableMarkerView_fileName;
	public static String SimpleTreeTableMarkerView_function_call;
	public static String SimpleTreeTableMarkerView_info;
	public static String SimpleTreeTableMarkerView_line_no;
	public static String SimpleTreeTableMarkerView_name;
	public static String SimpleTreeTableMarkerView_No;
	public static String SimpleTreeTableMarkerView_none;
	public static String SimpleTreeTableMarkerView_selected;
	public static String SimpleTreeTableMarkerView_show_info;
	public static String SimpleTreeTableMarkerView_show_info_tooltip;
	
	public static String generic_c_help_book;
	
	public static String PldtAstVisitor_20;
	public static String PldtAstVisitor_21;
	public static String PldtAstVisitor_22;
	public static String PldtAstVisitor_23;
	public static String PldtAstVisitor_24;
	public static String PldtAstVisitor_25;
	public static String PldtAstVisitor_26;
	public static String PldtAstVisitor_28;
	
	public static String AnalysisDropdownHandler_10;
	public static String AnalysisDropdownHandler_9;
	public static String RunAnalyseHandlerBase_15;
	public static String RunAnalyseHandlerBase_20;
	public static String RunAnalyseHandlerBase_21;
	public static String RunAnalyseHandlerBase_22;
	public static String RunAnalyseHandlerBase_23;
	public static String RunAnalyseHandlerBase_27;
	public static String RunAnalyseHandlerBase_28;
	public static String RunAnalyseHandlerBase_29;
	public static String RunAnalyseHandlerBase_42;
	public static String RunAnalyseHandlerBase_60;
	public static String RunAnalyseHandlerBase_61;
	public static String RunAnalyseHandlerBase_62;
	public static String RunAnalyseHandlerBase_analysis_complete;
	public static String RunAnalyseHandlerBase_artifacts_found;
	public static String RunAnalyseHandlerBase_cancelled_by_user;
	public static String RunAnalyseHandlerBase_dont_show_this_again;
	public static String RunAnalyseHandlerBase_incl_paths_in_pref_page;
	public static String RunAnalyseHandlerBase_include_paths_not_found;
	public static String RunAnalyseHandlerBase_no_files_selected;
	public static String RunAnalyseHandlerBase_on;
	public static String RunAnalyseHandlerBase_partial_analysis_complete;
	public static String RunAnalyseHandlerBase_please_first_specify;
	public static String RunAnalyseHandlerBase_please_select;
	public static String PLDTPreferencePage_ptp_par_lang_dev_tools;
	public static String PLDTPreferencePage_show_confirmation_q;
	static {
		// initialize resource bundle
		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
	}

	private Messages() {
	}
}
