/**
 * This file automatically has been generated by ULS and
 *  contains an implementation of lexical analyzer
 *  for parsing the programming language 'gcc'.
 *
 * Permission is hereby granted, free of charge, to any person
 * obtaining a copy of this software and associated documentation
 * files (the "Software"), to deal in the Software without
 * restriction, including without limitation the rights to use,
 * copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the
 * Software is furnished to do so, subject to the following
 * conditions:
 * 
 * The above copyright notice and this permission notice shall be
 * included in all copies or substantial portions of the Software.
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 * OTHER DEALINGS IN THE SOFTWARE.
 */
#ifndef __GCC_LEX_H__
#define __GCC_LEX_H__

#include <uls/uls_conf.h>

#define          TOK_ERR  -8
#define         TOK_NONE  -7
#define         TOK_LINK  -6
#define         TOK_TMPL  -5
#define      TOK_LINENUM  -4
#define       TOK_NUMBER  -3
#define           TOK_ID  -2
#define          TOK_EOF  -1

#define          TOK_EOI  0

#define          TOK_EOL  3
#define         TOK_AUTO  4
#define        TOK_BREAK  5
#define         TOK_CASE  6
#define         TOK_CHAR  7
#define        TOK_CONST  8
#define     TOK_CONTINUE  9

#define      TOK_DEFAULT  10
#define           TOK_DO  11
#define       TOK_DOUBLE  12
#define         TOK_ELSE  13
#define         TOK_ENUM  14
#define       TOK_EXTERN  15
#define        TOK_FLOAT  16
#define          TOK_FOR  17
#define         TOK_GOTO  18
#define           TOK_IF  19

#define          TOK_INT  20
#define         TOK_LONG  21
#define     TOK_REGISTER  22
#define       TOK_RETURN  23
#define        TOK_SHORT  24
#define       TOK_SIGNED  25
#define       TOK_SIZEOF  26
#define       TOK_STATIC  27
#define       TOK_STRUCT  28
#define       TOK_SWITCH  29

#define      TOK_TYPEDEF  30
#define        TOK_UNION  31
#define     TOK_UNSIGNED  32
#define       TOK_DQUOTE  34
#define       TOK_SQUOTE  39
#define         TOK_VOID  48
#define     TOK_VOLATILE  49

#define        TOK_WHILE  50
#define      TOK_POINTER  64
#define         TOK_INCR  65
#define         TOK_DECR  66
#define          TOK_LEQ  67
#define          TOK_GEQ  68
#define          TOK_EQL  69

#define          TOK_NEQ  70
#define          TOK_AND  71
#define           TOK_OR  72
#define     TOK_ADD_ASGN  73
#define     TOK_SUB_ASGN  74
#define     TOK_MUL_ASGN  75
#define     TOK_DIV_ASGN  76
#define     TOK_MOD_ASGN  77
#define  TOK_BITAND_ASGN  78
#define   TOK_BITOR_ASGN  79

#define  TOK_BITXOR_ASGN  80
#define  TOK_LSHIFT_ASGN  81
#define  TOK_RSHIFT_ASGN  82
#define    TOK_EXTENSION  128
#define     TOK_RESTRICT  129

#define         TOK_BOOL  130
#define          TOK_ASM  131
#define       TOK_INLINE  132
#define      TOK_COMPLEX  133
#define    TOK_IMAGINARY  134
#define         TOK_REAL  135
#define    TOK_DECIMAL32  136
#define    TOK_DECIMAL64  137
#define   TOK_DECIMAL128  138
#define         TOK_FUNC  139

#define  TOK_PRETTY_FUNC  140
#define      TOK_ALIGNOF  141
#define       TOK_TYPEOF  142
#define         TOK_ATTR  143
#define TOK_BLTN_CHOOSE_EXPR  144
#define TOK_BLTN_OFFSETOF  145
#define TOK_BLTN_TYPES_COMPAT_P  146
#define  TOK_BLTN_VA_ARG  147
#define        TOK_LABEL  148
#define  TOK_PRIV_EXTERN  149

#define       TOK_THREAD  150
#define       TOK_WCOORD  256

extern int uls_init_gcc(uls_lex_ptr_t uls);
extern uls_lex_ptr_t uls_create_gcc(void);
extern int uls_destroy_gcc(uls_lex_ptr_t uls);

#endif

