Match single, multiple, or streaming concatenations, or empty queues.
(vl-parse-any-sort-of-concatenation-aux &key (tokstream 'tokstream) (config 'config)) → (mv errmsg? value new-tokstream)
Both Verilog-2005 and SystemVerilog-2012 agree on the syntax for concatenations and multiple concatenations:
concatenation ::= '{' expression { ',' expression } '}' multiple_concatenation ::= '{' expression concatenation '}'
By itself this is slightly tricky to parse: we don't know which production
we're matching until we have read the initial
SystemVerilog-2012 complicates this by adding streaming concatenations:
streaming_concatenation ::= '{' stream_operator [slice_size] stream_concatenation '}' stream_operator ::= '>>' | '<<'
Fortunately, streaming concatenations are easy to identify because they
always start with one of these
SystemVerilog also adds empty queues which are easy to identify:
empty_queue ::= '{' '}'