#include "LexAnalyzer.h"

char *names[LexAnalyzer::l_end + 1] = {"identifier", "number", "+", "-", "*", "/", "%", "{", "}", "(", ")", 
	"[", "]", "if", "else", "while", "=", "$", "|" ,"&", ">", "<", "==", ";", "THE END!"};

int main()
{
	FILE *script = fopen("script.xz", "r");
	
	LexAnalyzer analyzer(script);
	LexAnalyzer::Lexem l;
	do
	{
		try
		{
			l = analyzer.GetNext();
		}
		catch (LexAnalyzer::ParserError error)
		{
			printf("Unexpected symbol: '%c' (%d, %d)\n", error.GetChar(), error.GetLine(), error.GetPos());
			return -1;
		}
		printf("%s ", names[l.type]);
		printf("Info: %s ", l.info.CStr());
		printf("Line: %d\n", l.line);
	} while (l.type != LexAnalyzer::l_end);

	return 0;
}