%{
    #include "y.tab.h"
%}

%option noyywrap

%%
"void"                      return VOID;
"int"                       return INT;
"uint"                      return UINT;
"float"                     return FLOAT;
"double"                    return DOUBLE;
"string"                    return STRING;
"bool"                      return BOOL;
"MemoryAddress"             return MEMORYADDRESS;
"struct"                    return STRUCT;
"interface"                 return INTERFACE;
"return"                    return RETURN;
"static"                    return STATIC;
"Reference"                 return REFERENCE;
"alloc"                     return ALLOC;
"if"                        return IF;
"else"                      return ELSE;
"in"                        return IN;
"for"                       return FOR;
[0-9]+                      return NUMBER;
[a-zA-Z][a-zA-Z0-9]*        return ID;
\".*\"                      return STRING_LITERAL;
"+"                         return PLUS;
"-"                         return MINUS;
"*"                         return STAR;
"/"                         return SLASH;
"%"                         return PERCENT;
"<"                         return LESS_THAN;
">"                         return GREATER_THAN;
"="                         return EQUAL;
"!"                         return BANG;
"|"                         return BAR;
"&"                         return AMPERSAND;
"."                         return POINT;
","                         return COMMA;
";"                         return SEMICOLON;
":"                         return COLON;
"?"                         return QUESTION;
"@"                         return AT;
"("                         return LEFT_PAREN;
")"                         return RIGHT_PAREN;
"["                         return LEFT_BRACKET;
"]"                         return RIGHT_BRACKET;
"{"                         return LEFT_BRACE;
"}"                         return RIGHT_BRACE;
"//"                        return COMMENT;
" "                         ;
"\n"                        ;
[ \t]                       ;
%%