=  Cls

== 

  {test-cfg
    {sort on}
    {rewrite off}
    {cfg-file
      {file-name "name-1" }
      {file-type "txt" }
    }
    {cfg-file
      {file-name "name-2" }
      {file-type "gif" }
    }
    {header-file
      {name "name-4" }
      {type "doc" }
    }
    {header-file
      {name "name-3" }
      {type "jpg" }
    }
  }

==  

Cls-   Cls-.      /
 .       ,  
    .      
 .

Cls-   ,    
.    :
- .   <tt>||</tt>     ;
- .   <tt>|#</tt>   <tt>#|</tt>.

        .

        .
       .

    ,     
 .    :
* :tok_space ().     
    .   :  (" "),
    ("\n"),   ("\r"),  
  ("\t").    C++ ,  ClsRuby     
   ;
* :tok_nonspace ( ).  
  ,   ;
* :tok_string ().  , 
    .

  :tok_nonspace  :tok_string   ,    
 .       
    .

        
 :
- tag   "test-cfg";
- :tok_space   "\n\t";
- tag   "sort";
- :tok_space   " ";
- :tok_nonspace   "on";
- tag   "rewrite";
- :tok_space   " ";
- :tok_nonspace   "off";
- tag   "cfg-file";
- :tok_space   "\n\t\t";
- tag   "file-name";
- :tok_space   " ";
- :tok_string   "name-1";
- :tok_space   " ";
- :tok_space   "\n\t\t"
- tag   "file-type";
- :tok_space   " ";
- :tok_string   "txt";
- :tok_space   " ";
- :tok_space   "\n\t";
-  ..

<b></b>.       
  .

== Escape-

 {, }, |, \\, "  . 
      :tok_nonspace  :tok_string.
      
    . :
- \\{;
- \\};
- \\|;
- \\\\;
- \\".

 ,        :tok_string 
    escape-.

<b></b>.  ClsRuby  C++  cls_2   
 CURL (      2001- )   , 
  :tok_string    escape-
   \\  ",     :tok_string  
 . ..  ClsRuby , , 
:
  {some_tag "{}|" }
   ,  cls_2      :
  {some_tag "\{\}\|" }
    cls_2 ClsRuby   
,          (
 escap-      
:tok_string).

       
 ,      :
- .      \\b  \\B,  
      .  , \\b01000001;
- .      \\o  \\O, 
       .  , \\o017;
- .      \\x  \\X,
        .  , \\xfb.

    escape-:
- \\n --  ;
- \\r --  ;
- \\t --  .

==    

    Cls     
 .

       escape-
(,     ).  
    --    
   .  ,  :
  {a "b"}
      :
  \x7b\x61\x20\x22\x62\x22\x7d

         
   . ,  :
  {a
    ||   .
    {href "reference"}}
       <tt>a</tt> 
    :tok_space  
<tt>"\n  ||   .\n  "</tt>.

= 

        .

  ,       . :

  {logging_params
    {use_stderr}
    {flush_each_line}
  }

    - ,      
:

  {connection_params
    {ip <nonspace>}
    {reconnect_timeout <uint>}
    {user <str>}
    {password <str>}
  }

    {ip}       :tok_nonspace.
 {reconnect_timeout} --     :tok_nonspace,  
     .  {user}  {password} 
      :tok_string.

  -   - ,  
    :

  {connection_params
    {ip <nonspace>}
    {reconnect_timeout <uint:1..600>}
    {mode <str:(guest|admin|user)>}
  }

.. {reconnect_timeout}       1  600, 
{mode}      : guest, admin  user.

   -    (, 
     ),      
 ( ),     . :
  {start_at <TimeXmlSchema>}
,  {start_at}  ,   
   ClsRuby::TimeXmlSchemaScalarParser.

    -   ,  
/     :
  {logging_params
    [{use_stderr}]
    [{file [<str>]}]
  }
..  {use_stderr}  {file}       
  .  ,  {file}  
     :tok_string.

 - /    ,   
 /
*(   )  +(   ):
  {service
    {ips <nonspace>+ }
    {message
      {field {name <str>} {type <nonspace>}}*
    }*
  }
..  {ips}      (    
   ),   {message}  {message {field}} 
       .

==    

        --  
   . ,    ,  
    /.


# vim:ts=2:sts=2:sw=2:expandtab:ft=txt:tw=78

