mirror of https://github.com/zachjs/sv2v.git
support for basic event triggers
This commit is contained in:
parent
a803284be8
commit
ec06b2b97a
|
|
@ -156,6 +156,7 @@ traverseNestedStmtsM mapper = fullMapper
|
||||||
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 f exprs) = return $ Subroutine f exprs
|
cs (Subroutine f exprs) = return $ Subroutine f exprs
|
||||||
|
cs (Trigger x) = return $ Trigger x
|
||||||
cs (Null) = return Null
|
cs (Null) = return Null
|
||||||
|
|
||||||
traverseStmtLHSsM :: Monad m => MapperM m LHS -> MapperM m Stmt
|
traverseStmtLHSsM :: Monad m => MapperM m LHS -> MapperM m Stmt
|
||||||
|
|
@ -292,6 +293,7 @@ traverseExprsM mapper = moduleItemMapper
|
||||||
mapM maybeExprMapper exprs >>= return . Subroutine f
|
mapM maybeExprMapper exprs >>= return . Subroutine f
|
||||||
flatStmtMapper (Return expr) =
|
flatStmtMapper (Return expr) =
|
||||||
exprMapper expr >>= return . Return
|
exprMapper expr >>= return . Return
|
||||||
|
flatStmtMapper (Trigger x) = return $ Trigger x
|
||||||
flatStmtMapper (Null) = return Null
|
flatStmtMapper (Null) = return Null
|
||||||
|
|
||||||
portBindingMapper (p, me) =
|
portBindingMapper (p, me) =
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,7 @@ data Stmt
|
||||||
| Timing Timing Stmt
|
| Timing Timing Stmt
|
||||||
| Return Expr
|
| Return Expr
|
||||||
| Subroutine Identifier [Maybe Expr]
|
| Subroutine Identifier [Maybe Expr]
|
||||||
|
| Trigger Identifier
|
||||||
| Null
|
| Null
|
||||||
deriving Eq
|
deriving Eq
|
||||||
|
|
||||||
|
|
@ -67,6 +68,7 @@ instance Show Stmt where
|
||||||
show (If a b c ) = printf "if (%s) %s\nelse %s" (show a) (show b) (show c)
|
show (If a b c ) = printf "if (%s) %s\nelse %s" (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 (Null ) = ";"
|
show (Null ) = ";"
|
||||||
|
|
||||||
data CaseKW
|
data CaseKW
|
||||||
|
|
|
||||||
|
|
@ -541,6 +541,7 @@ StmtNonAsgn :: { Stmt }
|
||||||
| "repeat" "(" Expr ")" Stmt { RepeatL $3 $5 }
|
| "repeat" "(" Expr ")" Stmt { RepeatL $3 $5 }
|
||||||
| "do" Stmt "while" "(" Expr ")" ";" { DoWhile $5 $2 }
|
| "do" Stmt "while" "(" Expr ")" ";" { DoWhile $5 $2 }
|
||||||
| "forever" Stmt { Forever $2 }
|
| "forever" Stmt { Forever $2 }
|
||||||
|
| "->" Identifier ";" { Trigger $2 }
|
||||||
|
|
||||||
DeclsAndStmts :: { ([Decl], [Stmt]) }
|
DeclsAndStmts :: { ([Decl], [Stmt]) }
|
||||||
: DeclOrStmt DeclsAndStmts { combineDeclsAndStmts $1 $2 }
|
: DeclOrStmt DeclsAndStmts { combineDeclsAndStmts $1 $2 }
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue