Vl-stream
A streaming concatenation (pack or unpack) operation, e.g.,
{<< 16 {a,b,c}}.
This is a product type, introduced by deftagsum in support of vl-expr.
Fields
- dir — vl-leftright-p
- The kind of stream operator: :left for << or
:right for >>.
- size — vl-slicesize
- The slice size or an indication that there is no slice size.
For instance, the 16 in {<< 16 {a,b,c}}.
- parts — vl-streamexprlist
- The stream_expressions that make up the stream_concatenation,
i.e., a, b, and c for {<< 16 {a,b,c}}. These
aren't just ordinary expressions since they can have with
clauses.
- atts — vl-atts
- Any (* foo = bar, baz *) style attributes.
Subtopics
- Vl-arrayrange
- Representation of an array range for use in with operators in
streaming packing/unpacking expressions.
- Vl-streamexpr
- A part of the stream in a streaming operator. For instance,
in {<< 16 {a, b with [0 +: size]}}, the streamexprs are
a and b with [0 +: size].
- Vl-slicesize
- The slice size (or an indicator that there is no size) for a
streaming expression.
- Make-vl-stream
- Basic constructor macro for vl-stream structures.
- Vl-stream->parts
- Get the parts field from a vl-stream.
- Vl-stream->size
- Get the size field from a vl-stream.
- Vl-stream->dir
- Get the dir field from a vl-stream.
- Vl-stream->atts
- Get the atts field from a vl-stream.
- Change-vl-stream
- Modifying constructor for vl-stream structures.
- Vl-leftright-p
- The direction for streaming operators: :left for << or
:right for >>.