#include <stdio.h>
#include "xbyak/xbyak.h"

using namespace Xbyak;

class Sample : public CodeGenerator {
	void operator=(const Sample&);
public:
#include "nm.cpp"
};

#define _STR(x) #x
#define TEST(syntax) err = true; try { syntax; err = false; } catch (Xbyak::Error) { } catch (...) { } if (!err) printf("should be err:%s;\n", _STR(syntax))

class ErrorSample : public CodeGenerator {
	void operator=(const ErrorSample&);
public:
	void gen()
	{
		bool err;
		TEST(mov(ptr[eax],1));
		TEST(test(ptr[eax],1));
		TEST(adc(ptr[eax],1));
		TEST(setz(eax));
	}
};
int main()
{
	try {
		Sample s;
		s.gen();
	} catch (Xbyak::Error err) {
		printf("ERR:%s(%d)\n", Xbyak::ConvertErrorToString(err), err);
	} catch (...) {
		printf("unknown error\n");
	}
	ErrorSample es;
	es.gen();
}
