class Compile
{
  clearNewLines = 1;
//  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 = 2;
    print_2 = "class States\n{\n";
    class State
    {
      indent_1 = 4;
      print_1 = "class %(statename)\n{\n";
      indent_2 = 6;
      print_2 = "name = ""%(statename)"";\n";
      print_3 = "init = ""%quoted(stateinit)"";\n";
      print_4 = "class Links\n{\n";
      class Links
      {
          indent_1 = 8;
          print_1 = "class %(linkname)\n{\n";
          indent_2 = 10;
          print_2 = "priority = %(priority);\n";
					print_3 = "to=""%(to)"";\n";
					print_4 = "condition=""%quoted(condition)"";\n";
					print_5 = "action=""%quoted(action)"";\n";
          indent_6 = 8;
          print_6 = "};\n";
      }
      indent_5 = 6;
      print_5 = "};\n";
      indent_6 = 4;
      print_6 = "};\n";
    }
    indent_3 = 2;
    print_3 = "};\n";
    print_4 = "initState=""%(initStateName)"";\n";
    print_5 = "finalStates[] =\n{\n";
    indent_fin = 4;
    class FinalStates
    {
      print_1 = """%(finalStateName)"",\n";
    }
    indent_6 = 2;
    print_6 = "};\n";
    indent_7 = 0;
    print_7 = "};\n";
  }
};

class Decompile
{
  process = 0;
  FSMLeft  = "/*";
  FSMRight = "*/";
  class FSMPrefix
  {
    default = "";
  };
  class FSMPrefix2
  {
    default = "";
  };
  class FSMSufix
  {
    default = "";
  };
  class FSMSufix2
  {
    default = "";
  };
};
