class Compile
{
	clearNewLines = 0;
//	indenting = -1;	//no indenting
	rewriteFile = 1; //do not append result to the end of file, but rewriteIt
	class Pass_1
	{
		print_1 = "class FSM\n{\n";
		indent_2 = 8;
		print_name = "fsmName = ""%(fsmname)"";\n";
		print_2 = "class States\n{\n";
		indent_state = 16;
		class State
		{
			print_1 = "class %(statename)\n{\n";
			indent_2 = 24;
			print_2 = "name = ""%(statename)"";\n";
			print_2a = "itemno = %(itemno);\n";
			print_3 = "init = %qtquoted(stateinit);\n";
			print_precnd = "precondition = %qtquoted(statePreCondition);\n";
			print_4 = "class Links\n{\n";
			indent_links = 32;
			class Links
			{
					print_1 = "class %(linkname)\n{\n";
					indent_2 = 40;
					print_2a = "itemno = %(itemno);\n";
					print_2 = "priority = %(priority);\n";
	 				print_3 = "to=""%(to)"";\n";
					print_precnd = "precondition = %qtquoted(condPreCondition);\n";
					print_4 = "condition=%qtquoted(condition);\n";
					print_5 = "action=%qtquoted(action);\n";
					indent_6 = 32;
					print_6 = "};\n";
			}
			indent_5 = 24;
			print_5 = "};\n";
			indent_6 = 16;
			print_6 = "};\n";
		}
		indent_3 = 8;
		print_3 = "};\n";
		print_4 = "initState=""%(initStateName)"";\n";
		print_5 = "finalStates[] =\n{\n";
		indent_fin = 16;
		class FinalStates
		{
			print_1 = """%(finalStateName)"",\n";
		}
		indent_6 = 8;
		print_6 = "};\n";
		indent_7 = 0;
		print_7 = "};\n";
	};
};

class Decompile
{
	process = 1;	 //0 for not processing Decompile info
	FSMLeft	= "/*";
	FSMRight = "*/";
	class FSMPrefix
	{
		default = "";
	};
	class FSMPrefix2
	{
		default = "";
		head = "*/";
	};
	class FSMSufix
	{
		default = "";
		compile = "\n";
		state = "\n";
		head = "\n/*\n";
		link = "\n";
	};
	class FSMSufix2
	{
		default = "";
		compile = "";
		state = "\n";
		head = "\n";
		link = "\n";
	};
};
