rcs: comma-v grammar

 
 3.1.1 File format grammar
 -------------------------
 
 The meta syntax in this section uses the following conventions: ‘|’
 (U+7C) separates alternatives; ‘{’ (U+7B) and ‘}’ (U+7D) enclose
 optional phrases; ‘{’ and ‘}*’ (trailing U+2A) enclose phrases that can
 be repeated zero or more times; ‘{’ and ‘}+’ (trailing U+2B) enclose
 phrases that must appear at least once and can be repeated; terminal
 symbols are in ‘""’ (two U+22).
 
      rcstext   ::=  admin {delta}* desc {deltatext}*
 
      admin     ::=  "head"         {num} ";"
                     { "branch"     {num} ";" }
                     "access"       {id}* ";"
                     "symbols"      { sym ":" num }* ";"
                     "locks"        { id ":" num }* ";"
                     { "strict" ";" }
                     { "integrity " {intstring} ";" }
                     { "comment"    {string} ";" }
                     { "expand"     {string} ";" }
 
      delta     ::=  num
                     "date"       num ";"
                     "author"     id ";"
                     "state"      {id} ";"
                     "branches"   {num}* ";"
                     "next"       {num} ";"
                     { "commitid" sym ";" }
 
      desc      ::=  "desc"  string
 
      deltatext ::=  num
                     "log"   string
                     "text"  string
 
      num       ::=  { digit | "." }+
 
      digit     ::=  "0" through "9"
 
      id        ::=  { idchar | "." }+
 
      sym       ::=  {idchar}+
 
      idchar    ::=  any visible graphic character except special
 
      special   ::=  "$" | "," | "." | ":" | ";" | "@"
 
      string    ::=  "@" { any character, with @ doubled }* "@"
 
      word      ::=  id | num | string | ":"
 
      intchar   ::=  any character, except @
 
      thirdp    ::=  "^L" {intchar}*
 
      intstring ::= "@" {intchar}* {thirdp}* "@"