:default ::= action => [name,values]
lexeme default = latm => 1
:start ::= line

line ::= name_group sep parmgroup
name_group ::= tag | tag whitespace names

sep ::= whitespace
sep ::=
whitespace ~ [\s]+

tag ::= tag_name
tag_name ~ <plain tag> | <annotation tag>
<plain tag> ~ [\w]+
<annotation tag> ~ '[' <plain tag> ']'

names ::= name+
name ~ [\w]+

parmgroup ::= paren_group
parmgroup ::=
paren_group ::= '(' parm_list ')'
parm_list ::= parm* separator => <comma>
parm ::= words | words '=' words
words ::= name+

<comma> ~ [,]
Marpa version 2.084.
Test case:
tag name (parm)
[
  'line',
  [
    'name_group',
    [
      'tag',
      'tag'
    ],
    ' ',
    [
      'names',
      'name'
    ]
  ],
  [
    'sep',
    ' '
  ],
  [
    'parmgroup',
    [
      'paren_group',
      '(',
      [
        'parm_list',
        [
          'parm',
          [
            'words',
            'parm'
          ]
        ]
      ],
      ')'
    ]
  ]
];