mirror of https://github.com/zachjs/sv2v.git
combine handling of concatenation LHSs
This commit is contained in:
parent
df2524ea21
commit
a863321dd7
|
|
@ -642,7 +642,8 @@ DeclToken :: { DeclToken }
|
|||
| PartSelectP { uncurry (DTRange $ fst $1) (snd $1) }
|
||||
| IdentifierP { uncurry DTIdent $1 }
|
||||
| DirectionP { uncurry DTDir $1 }
|
||||
| LHSConcatP { uncurry DTConcat $1 }
|
||||
| LHSConcatP { uncurry DTLHSBase $1 }
|
||||
| LHSStreamP { uncurry DTLHSBase $1 }
|
||||
| PartialTypeP { uncurry DTType $1 }
|
||||
| NetTypeP Strength { uncurry DTNet $1 $2 }
|
||||
| PortBindingsP { uncurry DTPorts $1 }
|
||||
|
|
@ -650,8 +651,6 @@ DeclToken :: { DeclToken }
|
|||
| "[" Expr "]" { DTBit (tokenPosition $1) $2 }
|
||||
| "." Identifier { DTDot (tokenPosition $1) $2 }
|
||||
| "automatic" { DTLifetime (tokenPosition $1) Automatic }
|
||||
| "{" StreamOp StreamSize Concat "}" { DTStream (tokenPosition $1) $2 $3 (map toLHS $4) }
|
||||
| "{" StreamOp Concat "}" { DTStream (tokenPosition $1) $2 (RawNum 1) (map toLHS $3) }
|
||||
| "type" "(" Expr ")" { uncurry DTType $ makeTypeOf $1 $3 }
|
||||
| IncOrDecOperatorP { DTAsgn (fst $1) (AsgnOp $ snd $1) Nothing (RawNum 1) }
|
||||
| IdentifierP "::" Identifier { uncurry DTPSIdent $1 $3 }
|
||||
|
|
@ -990,12 +989,15 @@ LHS :: { LHS }
|
|||
| LHS PartSelectP { uncurry (LHSRange $1) (snd $2) }
|
||||
| LHS "[" Expr "]" { LHSBit $1 $3 }
|
||||
| LHS "." Identifier { LHSDot $1 $3 }
|
||||
| LHSConcatP { LHSConcat $ snd $1 }
|
||||
| "{" StreamOp StreamSize Concat "}" { LHSStream $2 $3 (map toLHS $4) }
|
||||
| "{" StreamOp Concat "}" { LHSStream $2 (RawNum 1) (map toLHS $3) }
|
||||
| LHSConcatP { snd $1 }
|
||||
| LHSStreamP { snd $1 }
|
||||
|
||||
LHSConcatP :: { (Position, [LHS]) }
|
||||
: "{" LHSs "}" { withPos $1 $2 }
|
||||
LHSStreamP :: { (Position, LHS) }
|
||||
: "{" StreamOp StreamSize Concat "}" { withPos $1 $ LHSStream $2 $3 (map toLHS $4) }
|
||||
| "{" StreamOp Concat "}" { withPos $1 $ LHSStream $2 (RawNum 1) (map toLHS $3) }
|
||||
|
||||
LHSConcatP :: { (Position, LHS) }
|
||||
: "{" LHSs "}" { withPos $1 $ LHSConcat $2 }
|
||||
LHSs :: { [LHS] }
|
||||
: LHS { [$1] }
|
||||
| LHSs "," LHS { $1 ++ [$3] }
|
||||
|
|
|
|||
|
|
@ -66,8 +66,7 @@ data DeclToken
|
|||
| DTParams Position [ParamBinding]
|
||||
| DTPorts Position [PortBinding]
|
||||
| DTBit Position Expr
|
||||
| DTConcat Position [LHS]
|
||||
| DTStream Position StreamOp Expr [LHS]
|
||||
| DTLHSBase Position LHS
|
||||
| DTDot Position Identifier
|
||||
| DTSigning Position Signing
|
||||
| DTLifetime Position Lifetime
|
||||
|
|
@ -357,9 +356,8 @@ takeLHS tokens = takeLHSStep (takeLHSStart tok) toks
|
|||
where tok : toks = tokens
|
||||
|
||||
takeLHSStart :: DeclToken -> LHS
|
||||
takeLHSStart (DTConcat _ lhss) = LHSConcat lhss
|
||||
takeLHSStart (DTStream _ o e lhss) = LHSStream o e lhss
|
||||
takeLHSStart (DTIdent _ x ) = LHSIdent x
|
||||
takeLHSStart (DTLHSBase _ lhs) = lhs
|
||||
takeLHSStart (DTIdent _ x) = LHSIdent x
|
||||
takeLHSStart tok = parseError tok "expected primary token or type"
|
||||
|
||||
takeLHSStep :: LHS -> [DeclToken] -> (LHS, [DeclToken])
|
||||
|
|
@ -580,8 +578,7 @@ tokPos (DTNet p _ _) = p
|
|||
tokPos (DTParams p _) = p
|
||||
tokPos (DTPorts p _) = p
|
||||
tokPos (DTBit p _) = p
|
||||
tokPos (DTConcat p _) = p
|
||||
tokPos (DTStream p _ _ _) = p
|
||||
tokPos (DTLHSBase p _) = p
|
||||
tokPos (DTDot p _) = p
|
||||
tokPos (DTSigning p _) = p
|
||||
tokPos (DTLifetime p _) = p
|
||||
|
|
|
|||
Loading…
Reference in New Issue