Parse-property
Functions for parsing SystemVerilog assertion sequence and property
expressions.
Note: see also vl/loader/parser/notes/properties.txt
for considerably discussion of how we want to parse sequences and properties,
and for a description of the modified grammar that we target.
Subtopics
- Vl-parse-property-list-of-arguments
- Heuristically match a property_list_of_arguments.
- Vl-parse-sequence-match-item
- Matches sequence_match_item.
- Vl-parse-property-actual-arg
- Match a single sequence_actual_arg.
- Vl-parse-scoped-or-hierarchical-identifier
- Matches ps_or_hierarchical_sequence_identifier or ps_or_hierarchical_tf_identifier.
- Vl-parse-cycledelayrange
- Matches cycle_delay_range.
- Vl-parse-sequence-abbrev
- Matches sequence_abbrev.
- Vl-parse-boolean-abbrev
- Matches boolean_abbrev.
- Vl-parse-1+-expression-or-dists-separated-by-commas
- Matches expression_or_dist { ',' expression_or_dist } .
- Vl-parse-property-acceptop
- Matches accept_on, reject_on, sync_accept_on, or sync_reject_on.
- Vl-parse-dist-item
- Matches dist_item.
- Vl-parse-sequence-match-item-list
- Matches { ',' sequence_match_item } , possibly empty.
- Vl-parse-property-spec
- Parse property_spec.
- Vl-parse-impl-prop-expr-op
- Matches |->, |=>, #-#, and #=#.
- Vl-parse-expression-or-dist
- Matches expression_or_dist ::= expression [ 'dist' '{' dist_list '}' ].
- Vl-parse-dist-list
- Matches dist_list ::= dist_item { ',' dist_item }.
- Vl-alternating-propexpr/op-list-p
- Temporary structure to support parsing left-associative sequence expressions.
- Vl-left-associate-alternating-propexpr/op-list
- Vl-left-associate-delay-se-tail
- Vl-delay-se-tail-p
- Temporary structure to support left-associative parsing of { cycle_delay_range repeat_se }.
- Vl-parse-1+-named-property-list-of-arguments
- Match the named list portion of property_list_of_arguments.
- Vl-parse-property-low-prec-unary
- Match a property expr beginning with a low precedence unary operator
-- i.e. those with lower precedence than impl operators such as |->
- Vl-parse-within-sequence-expr-aux
- Parse within_se ::= thout_se { 'within' thout_se } into a vl-alternating-propexpr/op-list-p.
- Vl-parse-throughout-sequence-expr
- Parse thout_se ::= expression_or_dist 'throughout' thout_se | delay_se.
- Vl-parse-or-property-expr-aux
- Parse or_pe ::= and_pe { 'or' and_pe } into a vl-alternating-propexpr/op-list-p.
- Vl-parse-intersect-sequence-expr-aux
- Parse isect_se ::= within_se { 'intersect' within_se } into a vl-alternating-propexpr/op-list-p.
- Vl-parse-intersect-sequence-expr
- Parse isect_se ::= within_se { 'intersect' within_se }, left associative.
- Vl-parse-delay-sequence-expr
- Matches delay_se ::= [cycle_range] firstmatch_se { cycle_delay_range firstmatch_se }.
- Vl-parse-assign-sequence-expr
- Matches '(' property_expr { ',' sequence_match_item } ' [sequence_abbrev] ')
- Vl-parse-and-property-expr-aux
- Parse and_pe ::= not_pe { 'and' not_pe } into a vl-alternating-propexpr/op-list-p.
- Vl-parse-1+-property-case-items
- Match property_case_item { property_case_item }.
- Vl-parse-within-sequence-expr
- Parse within_se ::= thout_se { 'within' thout_se }, left associative.
- Vl-parse-or-property-expr
- Match or_pe ::= and_pe { 'or' and_pe }. Left associative.
- Vl-parse-instance-property-expr
- Matches property_instance [sequence_abbrev].
- Vl-parse-iff-property-expr
- Match iff_pe ::= or_pe { 'iff' or_pe }. Right associative.
- Vl-parse-delay-sequence-expr-tail
- Match { cycle_delay_range firstmatch_se } constructs, may be empty.
- Vl-parse-and-property-expr
- Match and_pe ::= not_pe { 'and' not_pe }. Left associative.
- Vl-parse-until-property-expr
- Match until_pe.
- Vl-parse-strength-property-expr
- Match strength_pe.
- Vl-parse-repeat-sequence-expr
- Matches repeat_se.
- Vl-parse-property-expr
- Match property_expr.
- Vl-parse-property-case-item
- Match property_case_item.
- Vl-parse-not-property-expr
- Match not_pe.
- Vl-parse-impl-property-expr
- Match impl_pe.
- Vl-parse-firstmatch-sequence-expr
- Match firstmatch_se.