presumable finished implementing types for process...
This commit is contained in:
parent
405d6ecc55
commit
43ae657a5b
7
TODO.md
7
TODO.md
|
@ -18,19 +18,22 @@
|
||||||
readable and correctable validation errors
|
readable and correctable validation errors
|
||||||
- [ ] when writing simulator, must specify directions on cell ports
|
- [ ] when writing simulator, must specify directions on cell ports
|
||||||
- [ ] in the <process>, why are we allowed to have <assign-stmt> before
|
- [ ] in the <process>, why are we allowed to have <assign-stmt> before
|
||||||
and after the optional <switch> stmt?
|
and after the optional <switch> stmt? If the ordering here is
|
||||||
|
semantically significant, then modify AST to only have single
|
||||||
|
`[AssignStmt]` field and update parser behavior accordingly.
|
||||||
- [ ] inspect Chris's mini-RTLIL
|
- [ ] inspect Chris's mini-RTLIL
|
||||||
- [ ] add RST grammar file to repo
|
- [ ] add RST grammar file to repo
|
||||||
- [ ] name parsers so that that we know where failures occured
|
- [ ] name parsers so that that we know where failures occured
|
||||||
- [ ] may want to also derive equality statements
|
- [ ] may want to also derive equality statements
|
||||||
- [x] replace both `pEol *> pMaybeWs` and `pEol <* pMaybeWs`
|
- [x] replace both `pEol *> pMaybeWs` and `pEol <* pMaybeWs`
|
||||||
with `pEolAndAdvanceToNextNonWs`
|
with `pEolAndAdvanceToNextNonWs`
|
||||||
- [ ] Check inline sequencing of whitespace parsers in do blocks.
|
- [x] Check inline sequencing of whitespace parsers in do blocks.
|
||||||
Terminating instances of `pWs` should be preceeded by `<*`
|
Terminating instances of `pWs` should be preceeded by `<*`
|
||||||
|
|
||||||
# Parser Development
|
# Parser Development
|
||||||
- [x] Sync
|
- [x] Sync
|
||||||
- [ ] Process
|
- [ ] Process
|
||||||
|
- [ ] Rewrite `pWireStmt` and `pMemoryStmt` using do-notation...
|
||||||
- [ ] Module
|
- [ ] Module
|
||||||
|
|
||||||
# Parser Verification
|
# Parser Verification
|
||||||
|
|
|
@ -31,7 +31,8 @@ module RTLILParser.AST (
|
||||||
CellBodyStmt(..),
|
CellBodyStmt(..),
|
||||||
|
|
||||||
-- Processes
|
-- Processes
|
||||||
DestSigSpec(..), SrcSigSpec(..), AssignStmt(..),
|
Process(..), ProcStmt(..), ProcessBody(..), AssignStmt(..),
|
||||||
|
DestSigSpec(..), SrcSigSpec(..),
|
||||||
|
|
||||||
-- Switches
|
-- Switches
|
||||||
Switch(..), SwitchStmt(..), Case(..), CaseStmt(..), Compare(..),
|
Switch(..), SwitchStmt(..), Case(..), CaseStmt(..), Compare(..),
|
||||||
|
@ -39,6 +40,8 @@ module RTLILParser.AST (
|
||||||
|
|
||||||
-- Syncs
|
-- Syncs
|
||||||
Sync(..), SyncStmt(..), SyncType(..), UpdateStmt(..)
|
Sync(..), SyncStmt(..), SyncType(..), UpdateStmt(..)
|
||||||
|
|
||||||
|
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Text.Read (Lexeme(Ident))
|
import Text.Read (Lexeme(Ident))
|
||||||
|
@ -131,7 +134,15 @@ data CellBodyStmt = CellBodyParameter
|
||||||
deriving (Show)
|
deriving (Show)
|
||||||
|
|
||||||
-- Processes
|
-- Processes
|
||||||
-- data ProcessBody = ProcessBody [AssignStmt]
|
data Process = Process ProcStmt [AttrStmt] ProcessBody
|
||||||
|
deriving (Show)
|
||||||
|
data ProcStmt = ProcStmt Id deriving (Show)
|
||||||
|
data ProcessBody = ProcessBody
|
||||||
|
[AssignStmt]
|
||||||
|
Switch
|
||||||
|
[AssignStmt]
|
||||||
|
[Sync]
|
||||||
|
deriving (Show)
|
||||||
data AssignStmt = AssignStmt DestSigSpec SrcSigSpec
|
data AssignStmt = AssignStmt DestSigSpec SrcSigSpec
|
||||||
deriving (Show)
|
deriving (Show)
|
||||||
data DestSigSpec = DestSigSpec SigSpec deriving (Show)
|
data DestSigSpec = DestSigSpec SigSpec deriving (Show)
|
||||||
|
|
Loading…
Reference in a new issue