/*******************************************************************************
* Copyright (c) 2006, 2010 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
*********************************************************************************/

// This file was generated by LPG

package org.eclipse.cdt.internal.core.lrparser.xlc.c;

public interface XlcCParsersym {
	public final static int TK_auto = 32, TK_break = 50, TK_case = 51, TK_char = 39, TK_const = 27, TK_continue = 52,
			TK_default = 53, TK_do = 54, TK_double = 55, TK_else = 105, TK_enum = 68, TK_extern = 33, TK_float = 40,
			TK_for = 56, TK_goto = 57, TK_if = 58, TK_inline = 34, TK_int = 41, TK_long = 42, TK_register = 35,
			TK_restrict = 29, TK_return = 59, TK_short = 43, TK_signed = 44, TK_sizeof = 20, TK_static = 30,
			TK_struct = 69, TK_switch = 60, TK_typedef = 36, TK_union = 70, TK_unsigned = 45, TK_void = 61,
			TK_volatile = 28, TK_while = 48, TK__Bool = 62, TK__Complex = 63, TK__Imaginary = 64, TK_integer = 21,
			TK_floating = 22, TK_charconst = 23, TK_stringlit = 19, TK_identifier = 2, TK_Completion = 11,
			TK_EndOfCompletion = 6, TK_Invalid = 106, TK_LeftBracket = 37, TK_LeftParen = 1, TK_LeftBrace = 18,
			TK_Dot = 75, TK_Arrow = 90, TK_PlusPlus = 16, TK_MinusMinus = 17, TK_And = 15, TK_Star = 10, TK_Plus = 13,
			TK_Minus = 14, TK_Tilde = 24, TK_Bang = 25, TK_Slash = 76, TK_Percent = 77, TK_RightShift = 72,
			TK_LeftShift = 73, TK_LT = 78, TK_GT = 79, TK_LE = 80, TK_GE = 81, TK_EQ = 84, TK_NE = 85, TK_Caret = 86,
			TK_Or = 87, TK_AndAnd = 88, TK_OrOr = 91, TK_Question = 92, TK_Colon = 49, TK_DotDotDot = 89,
			TK_Assign = 74, TK_StarAssign = 93, TK_SlashAssign = 94, TK_PercentAssign = 95, TK_PlusAssign = 96,
			TK_MinusAssign = 97, TK_RightShiftAssign = 98, TK_LeftShiftAssign = 99, TK_AndAssign = 100,
			TK_CaretAssign = 101, TK_OrAssign = 102, TK_Comma = 46, TK_RightBracket = 103, TK_RightParen = 47,
			TK_RightBrace = 71, TK_SemiColon = 31, TK_typeof = 12, TK___alignof__ = 26, TK___attribute__ = 8,
			TK___declspec = 9, TK_MAX = 82, TK_MIN = 83, TK_asm = 7, TK_vector = 5, TK_pixel = 3, TK_bool = 4,
			TK__Decimal32 = 65, TK__Decimal64 = 66, TK__Decimal128 = 67, TK___static_assert = 107, TK_ERROR_TOKEN = 38,
			TK_EOF_TOKEN = 104;

	public final static String orderedTerminalSymbols[] = { "", "LeftParen", "identifier", "pixel", "bool", "vector",
			"EndOfCompletion", "asm", "__attribute__", "__declspec", "Star", "Completion", "typeof", "Plus", "Minus",
			"And", "PlusPlus", "MinusMinus", "LeftBrace", "stringlit", "sizeof", "integer", "floating", "charconst",
			"Tilde", "Bang", "__alignof__", "const", "volatile", "restrict", "static", "SemiColon", "auto", "extern",
			"inline", "register", "typedef", "LeftBracket", "ERROR_TOKEN", "char", "float", "int", "long", "short",
			"signed", "unsigned", "Comma", "RightParen", "while", "Colon", "break", "case", "continue", "default", "do",
			"double", "for", "goto", "if", "return", "switch", "void", "_Bool", "_Complex", "_Imaginary", "_Decimal32",
			"_Decimal64", "_Decimal128", "enum", "struct", "union", "RightBrace", "RightShift", "LeftShift", "Assign",
			"Dot", "Slash", "Percent", "LT", "GT", "LE", "GE", "MAX", "MIN", "EQ", "NE", "Caret", "Or", "AndAnd",
			"DotDotDot", "Arrow", "OrOr", "Question", "StarAssign", "SlashAssign", "PercentAssign", "PlusAssign",
			"MinusAssign", "RightShiftAssign", "LeftShiftAssign", "AndAssign", "CaretAssign", "OrAssign",
			"RightBracket", "EOF_TOKEN", "else", "Invalid", "__static_assert" };

	public final static boolean isValidForParser = true;
}
