mirror of https://github.com/zachjs/sv2v.git
support for multiple param/localparams in one declaration
This commit is contained in:
parent
39ee22574f
commit
ac95c5b0fd
|
|
@ -92,7 +92,7 @@ instance Show ModuleItem where
|
||||||
Parameter r n e -> printf "parameter %s%s = %s;" (showRange r) n (showExprConst e)
|
Parameter r n e -> printf "parameter %s%s = %s;" (showRange r) n (showExprConst e)
|
||||||
Localparam r n e -> printf "localparam %s%s = %s;" (showRange r) n (showExprConst e)
|
Localparam r n e -> printf "localparam %s%s = %s;" (showRange r) n (showExprConst e)
|
||||||
PortDecl d r x -> printf "%s %s%s;" (show d) (showRange r) x
|
PortDecl d r x -> printf "%s %s%s;" (show d) (showRange r) x
|
||||||
LocalNet t x v -> (show t) ++ " " ++ x ++ assignment ++ ";"
|
LocalNet t x v -> printf "%s%s%s;" (show t) x assignment
|
||||||
where
|
where
|
||||||
assignment =
|
assignment =
|
||||||
if v == Nothing
|
if v == Nothing
|
||||||
|
|
|
||||||
|
|
@ -211,8 +211,8 @@ MaybeTypeOrRange :: { Either Type (Maybe Range) }
|
||||||
| "wire" MaybeRange { Left $ Wire $2 }
|
| "wire" MaybeRange { Left $ Wire $2 }
|
||||||
|
|
||||||
ModuleItem :: { [ModuleItem] }
|
ModuleItem :: { [ModuleItem] }
|
||||||
: "parameter" MaybeRange Identifier "=" Expr ";" { [Parameter $2 $3 $5] }
|
: "parameter" MaybeRange DeclAsgns ";" { map (uncurry $ Parameter $2) $3 }
|
||||||
| "localparam" MaybeRange Identifier "=" Expr ";" { [Localparam $2 $3 $5] }
|
| "localparam" MaybeRange DeclAsgns ";" { map (uncurry $ Localparam $2) $3 }
|
||||||
| PortDecl(";") { $1 }
|
| PortDecl(";") { $1 }
|
||||||
| "reg" MaybeRange WireDeclarations ";" { map (uncurry $ LocalNet $ Reg $2) $3 }
|
| "reg" MaybeRange WireDeclarations ";" { map (uncurry $ LocalNet $ Reg $2) $3 }
|
||||||
| "wire" MaybeRange WireDeclarations ";" { map (uncurry $ LocalNet $ Wire $2) $3 }
|
| "wire" MaybeRange WireDeclarations ";" { map (uncurry $ LocalNet $ Wire $2) $3 }
|
||||||
|
|
@ -225,6 +225,13 @@ ModuleItem :: { [ModuleItem] }
|
||||||
| "always" "@*" Stmt { [Always (Just SenseStar) $3] }
|
| "always" "@*" Stmt { [Always (Just SenseStar) $3] }
|
||||||
| Identifier ParameterBindings Identifier Bindings ";" { [Instance $1 $2 $3 $4] }
|
| Identifier ParameterBindings Identifier Bindings ";" { [Instance $1 $2 $3 $4] }
|
||||||
|
|
||||||
|
DeclAsgns :: { [(Identifier, Expr)] }
|
||||||
|
: DeclAsgn { [$1] }
|
||||||
|
| DeclAsgn "," DeclAsgns { $1 : $3 }
|
||||||
|
|
||||||
|
DeclAsgn :: { (Identifier, Expr) }
|
||||||
|
: Identifier "=" Expr { ($1, $3) }
|
||||||
|
|
||||||
RegDeclarations :: { [(Identifier, Maybe Range)] }
|
RegDeclarations :: { [(Identifier, Maybe Range)] }
|
||||||
: Identifier MaybeRange { [($1, $2)] }
|
: Identifier MaybeRange { [($1, $2)] }
|
||||||
| RegDeclarations "," Identifier MaybeRange { $1 ++ [($3, $4)] }
|
| RegDeclarations "," Identifier MaybeRange { $1 ++ [($3, $4)] }
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue