%{
#include <string.h>
#include "y.tab.h"
int line;
%}

DIGIT		[0-9]
ID		[a-zA-Z][-_0-9a-zA-ZäöüÄÖÜß']*
INT		[+-]?{DIGIT}+
_semicolon	";"
_stringstart	"\""

%s s1
%s s2
%%

\n			{ line++; }
[ \t]+			/* Erstmal verschlucken */
<<EOF>>			{ return 0; }

{_semicolon}[^\n]*	/* Erstmal verschlucken */


"In"			{ return IN; }
"Out"			{ return OUT; }
"Schwermaschinen"	{ return SMASCH; }
"Wasser"		{ return WATER;	}
"Polytextilien"         { return POLYTEX; }
"Luxusgueter"           { return LUXUS; }
"Exotika"               { return EXOS; }
"Pharmazeutika"		{ return PHARMA; }
"Agrarprodukte"         { return AGRAR; }
"Industriechemikalien"  { return CHEMIE; }
"Waffen"		{ return WAFFEN; }
"Edelmetalle"		{ return METALL; }	
"POP"			{ return POP; }
"IOP"			{ return IOP; }
"LRM"			{ return LRM; }
"HRM"			{ return HRM; }
{ID}			{ yylval.str = strdup((char *)yytext); return Bez; }
{INT}			{ yylval.num = atoi((char *)yytext); return Zahl; }

.			{ return yytext[0]; }
%%
