mirror of https://github.com/zachjs/sv2v.git
pass through named events
This commit is contained in:
parent
e2570303d0
commit
c6eedb9f26
|
|
@ -251,7 +251,7 @@ traverseSinglyNestedStmtsM fullMapper = cs
|
||||||
cs (Timing event stmt) = fullMapper stmt >>= return . Timing event
|
cs (Timing event stmt) = fullMapper stmt >>= return . Timing event
|
||||||
cs (Return expr) = return $ Return expr
|
cs (Return expr) = return $ Return expr
|
||||||
cs (Subroutine ps f exprs) = return $ Subroutine ps f exprs
|
cs (Subroutine ps f exprs) = return $ Subroutine ps f exprs
|
||||||
cs (Trigger x) = return $ Trigger x
|
cs (Trigger blocks x) = return $ Trigger blocks x
|
||||||
cs (Assertion a) =
|
cs (Assertion a) =
|
||||||
traverseAssertionStmtsM fullMapper a >>= return . Assertion
|
traverseAssertionStmtsM fullMapper a >>= return . Assertion
|
||||||
cs (Null) = return Null
|
cs (Null) = return Null
|
||||||
|
|
@ -703,7 +703,7 @@ traverseStmtExprsM exprMapper = flatStmtMapper
|
||||||
return $ Subroutine ps f (Args l' p')
|
return $ Subroutine ps f (Args l' p')
|
||||||
flatStmtMapper (Return expr) =
|
flatStmtMapper (Return expr) =
|
||||||
exprMapper expr >>= return . Return
|
exprMapper expr >>= return . Return
|
||||||
flatStmtMapper (Trigger x) = return $ Trigger x
|
flatStmtMapper (Trigger blocks x) = return $ Trigger blocks x
|
||||||
flatStmtMapper (Assertion a) = do
|
flatStmtMapper (Assertion a) = do
|
||||||
a' <- traverseAssertionStmtsM stmtMapper a
|
a' <- traverseAssertionStmtsM stmtMapper a
|
||||||
a'' <- traverseAssertionExprsM exprMapper a'
|
a'' <- traverseAssertionExprsM exprMapper a'
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,7 @@ data Stmt
|
||||||
| Timing Timing Stmt
|
| Timing Timing Stmt
|
||||||
| Return Expr
|
| Return Expr
|
||||||
| Subroutine (Maybe Identifier) Identifier Args
|
| Subroutine (Maybe Identifier) Identifier Args
|
||||||
| Trigger Identifier
|
| Trigger Bool Identifier
|
||||||
| Assertion Assertion
|
| Assertion Assertion
|
||||||
| Null
|
| Null
|
||||||
deriving Eq
|
deriving Eq
|
||||||
|
|
@ -94,7 +94,7 @@ instance Show Stmt where
|
||||||
show (If u a b c ) = printf "%sif (%s) %s\nelse %s" (maybe "" showPad u) (show a) (show b) (show c)
|
show (If u a b c ) = printf "%sif (%s) %s\nelse %s" (maybe "" showPad u) (show a) (show b) (show c)
|
||||||
show (Return e ) = printf "return %s;" (show e)
|
show (Return e ) = printf "return %s;" (show e)
|
||||||
show (Timing t s ) = printf "%s %s" (show t) (show s)
|
show (Timing t s ) = printf "%s %s" (show t) (show s)
|
||||||
show (Trigger x ) = printf "-> %s;" x
|
show (Trigger b x) = printf "->%s %s;" (if b then "" else ">") x
|
||||||
show (Assertion a) = show a
|
show (Assertion a) = show a
|
||||||
show (Null ) = ";"
|
show (Null ) = ";"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -148,6 +148,7 @@ data NonIntegerType
|
||||||
| TReal
|
| TReal
|
||||||
| TRealtime
|
| TRealtime
|
||||||
| TString
|
| TString
|
||||||
|
| TEvent
|
||||||
deriving (Eq, Ord)
|
deriving (Eq, Ord)
|
||||||
|
|
||||||
instance Show NetType where
|
instance Show NetType where
|
||||||
|
|
@ -179,6 +180,7 @@ instance Show NonIntegerType where
|
||||||
show TReal = "real"
|
show TReal = "real"
|
||||||
show TRealtime = "realtime"
|
show TRealtime = "realtime"
|
||||||
show TString = "string"
|
show TString = "string"
|
||||||
|
show TEvent = "event"
|
||||||
|
|
||||||
data Packing
|
data Packing
|
||||||
= Unpacked
|
= Unpacked
|
||||||
|
|
|
||||||
|
|
@ -486,6 +486,7 @@ NonIntegerType :: { NonIntegerType }
|
||||||
| "real" { TReal }
|
| "real" { TReal }
|
||||||
| "realtime" { TRealtime }
|
| "realtime" { TRealtime }
|
||||||
| "string" { TString }
|
| "string" { TString }
|
||||||
|
| "event" { TEvent }
|
||||||
|
|
||||||
EnumItems :: { [(Identifier, Maybe Expr)] }
|
EnumItems :: { [(Identifier, Maybe Expr)] }
|
||||||
: VariablePortIdentifiers { $1 }
|
: VariablePortIdentifiers { $1 }
|
||||||
|
|
@ -915,7 +916,8 @@ StmtNonBlock :: { Stmt }
|
||||||
| "do" Stmt "while" "(" Expr ")" ";" { DoWhile $5 $2 }
|
| "do" Stmt "while" "(" Expr ")" ";" { DoWhile $5 $2 }
|
||||||
| "forever" Stmt { Forever $2 }
|
| "forever" Stmt { Forever $2 }
|
||||||
| "foreach" "(" Identifier IdxVars ")" Stmt { Foreach $3 $4 $6 }
|
| "foreach" "(" Identifier IdxVars ")" Stmt { Foreach $3 $4 $6 }
|
||||||
| "->" Identifier ";" { Trigger $2 }
|
| "->" Identifier ";" { Trigger True $2 }
|
||||||
|
| "->>" Identifier ";" { Trigger False $2 }
|
||||||
| AttributeInstance Stmt { StmtAttr $1 $2 }
|
| AttributeInstance Stmt { StmtAttr $1 $2 }
|
||||||
| ProceduralAssertionStatement { Assertion $1 }
|
| ProceduralAssertionStatement { Assertion $1 }
|
||||||
| IncOrDecOperator LHS ";" { AsgnBlk (AsgnOp $1) $2 (Number "1") }
|
| IncOrDecOperator LHS ";" { AsgnBlk (AsgnOp $1) $2 (Number "1") }
|
||||||
|
|
@ -1000,6 +1002,7 @@ EventControl :: { Sense }
|
||||||
: "@" "(" Senses ")" { $3 }
|
: "@" "(" Senses ")" { $3 }
|
||||||
| "@" "(*)" { SenseStar }
|
| "@" "(*)" { SenseStar }
|
||||||
| "@*" { SenseStar }
|
| "@*" { SenseStar }
|
||||||
|
| "@" Identifier { Sense $ LHSIdent $2 }
|
||||||
Senses :: { Sense }
|
Senses :: { Sense }
|
||||||
: Sense { $1 }
|
: Sense { $1 }
|
||||||
| Senses "or" Sense { SenseOr $1 $3 }
|
| Senses "or" Sense { SenseOr $1 $3 }
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue