/**
 * This file automatically has been generated by ULS and
 *  contains an implementation of lexical analyzer
 *  for parsing the programming language 'sample2'.
 *
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
#pragma once

#include <uls/UlsLex.h>

namespace AAA {
	namespace BBB {
		class Sample2Lex : public uls::crux::UlsLex {
		  public:
			static const int             NONE = -7;
			static const int             LINK = -6;
			static const int             TMPL = -5;
			static const int          LINENUM = -4;
			static const int          EndFile = -1;
			static const int             AUTO = 4;
			static const int            BREAK = 5;
			static const int             CASE = 6;
			static const int             CHAR = 7;

			static const int             CNST = 8;
			static const int         CONTINUE = 9;

			static const int          DEFAULT = 10;
			static const int               DO = 11;
			static const int           DOUBLE = 12;
			static const int             ELSE = 13;
			static const int             ENUM = 14;
			static const int           EXTERN = 15;
			static const int            FLOAT = 16;
			static const int              FOR = 17;
			static const int             GOTO = 18;
			static const int               IF = 19;

			static const int              INT = 20;
			static const int             LONG = 21;
			static const int         REGISTER = 22;
			static const int           RETURN = 23;
			static const int            SHORT = 24;
			static const int           SIGNED = 25;
			static const int           SIZEOF = 26;
			static const int           STATIC = 27;
			static const int           STRUCT = 28;
			static const int           SWITCH = 29;

			static const int          TYPEDEF = 30;
			static const int            UNION = 31;
			static const int         UNSIGNED = 32;
			static const int           DQUOTE = 34;
			static const int           SQUOTE = 39;
			static const int           VOID_T = 48;
			static const int         VOLATILE = 49;

			static const int            WHILE = 50;
			static const int          POINTER = 64;
			static const int             INCR = 65;
			static const int             DECR = 66;
			static const int              LEQ = 67;
			static const int              GEQ = 68;
			static const int              EQL = 69;

			static const int              NEQ = 70;
			static const int              AND = 71;
			static const int               OR = 72;
			static const int         ADD_ASGN = 73;
			static const int         SUB_ASGN = 74;
			static const int         MUL_ASGN = 75;
			static const int         DIV_ASGN = 76;
			static const int         MOD_ASGN = 77;
			static const int      BITAND_ASGN = 78;
			static const int       BITOR_ASGN = 79;

			static const int      BITXOR_ASGN = 80;
			static const int      LSHIFT_ASGN = 81;
			static const int      RSHIFT_ASGN = 82;
			static const int              EOI = 128;
			static const int              ERR = 129;

			static const int               ID = 130;
			static const int            IDENT = 130;
			static const int         ID_ALIAS = 130;
			static const int              NUM = 131;
			static const int       NUM_ALIAS1 = 131;
			static const int       num_alias2 = 131;

			Sample2Lex();
		};
	}
}
