mirror of https://github.com/zachjs/sv2v.git
support explicitly typed struct patterns
This commit is contained in:
parent
836536c362
commit
56c597e35e
|
|
@ -292,6 +292,9 @@ convertExpr (struct @ (Struct _ fields [])) (Pattern itemsOrig) =
|
||||||
Just value = numberToInteger n
|
Just value = numberToInteger n
|
||||||
Right (Number n) = item
|
Right (Number n) = item
|
||||||
|
|
||||||
|
convertExpr _ (Cast (Left t) expr@Pattern{}) =
|
||||||
|
Cast (Left t) $ convertExpr t expr
|
||||||
|
|
||||||
convertExpr (Implicit _ []) expr = expr
|
convertExpr (Implicit _ []) expr = expr
|
||||||
convertExpr (Implicit sg rs) expr =
|
convertExpr (Implicit sg rs) expr =
|
||||||
convertExpr (IntegerVector TBit sg rs) expr
|
convertExpr (IntegerVector TBit sg rs) expr
|
||||||
|
|
|
||||||
|
|
@ -1266,6 +1266,7 @@ Expr :: { Expr }
|
||||||
| Expr "?" Expr ":" Expr { Mux $1 $3 $5 }
|
| Expr "?" Expr ":" Expr { Mux $1 $3 $5 }
|
||||||
| Expr "." Identifier { Dot $1 $3 }
|
| Expr "." Identifier { Dot $1 $3 }
|
||||||
| "'" "{" PatternItems "}" { Pattern $3 }
|
| "'" "{" PatternItems "}" { Pattern $3 }
|
||||||
|
| Expr "'" "{" PatternItems "}"{ Cast (Right $1) (Pattern $4) }
|
||||||
| CastingType "'" "(" Expr ")" { Cast (Left $1) $4 }
|
| CastingType "'" "(" Expr ")" { Cast (Left $1) $4 }
|
||||||
| Expr "'" "(" Expr ")" { Cast (Right $1) $4 }
|
| Expr "'" "(" Expr ")" { Cast (Right $1) $4 }
|
||||||
| "{" StreamOp StreamSize Concat "}" { Stream $2 $3 $4 }
|
| "{" StreamOp StreamSize Concat "}" { Stream $2 $3 $4 }
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
module top;
|
||||||
|
typedef struct packed {
|
||||||
|
integer x;
|
||||||
|
byte y;
|
||||||
|
} S;
|
||||||
|
typedef struct packed {
|
||||||
|
byte x;
|
||||||
|
shortint y;
|
||||||
|
S z;
|
||||||
|
} T;
|
||||||
|
initial $display("%b", T'{ x: 1, y: 2, z: '{ x: 3, y: 4 } });
|
||||||
|
endmodule
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
module top;
|
||||||
|
initial $display("%b", { 8'd1, 16'd2, 32'd3, 8'd4 } );
|
||||||
|
endmodule
|
||||||
Loading…
Reference in New Issue