Haskellator/atoms.txt

50 lines
3.1 KiB
Plaintext
Raw Normal View History

2024-11-25 22:33:18 +00:00
- [x] <id> ::= <public-id> | <autogen-id>
2024-12-06 03:27:26 +00:00
- [x] <public-id> ::= "\" <nonws>+
- [x] <autogen-id> ::= "$" <nonws>+
2024-11-25 22:33:18 +00:00
- [x] <value> ::= <decimal-digit>+ <binary-digit>*
- [x] <decimal-digit> ::= “0” | “1” | “2” | “3” | “4” | “5” | “6” | “7” | “8” | “9”
- [x] <binary-digit> ::= “0” | “1” | “x” | “z” | “m” | “-“
- [x] <integer> ::= “-“? <decimal-digit>+
- [x] <autoidx-stmt> ::= “autoidx” <integer> <eol>
2024-12-06 19:57:32 +00:00
- [ ] <file> ::= <autoidx-stmt>? <module>*
2024-11-25 22:33:18 +00:00
- [ ] <module> ::= <attr-stmt>* <module-stmt> <module-body> <module-end-stmt>
- [x] <module-stmt> ::= “module” <id> <eol>
2024-12-06 03:27:26 +00:00
- [ ] <module-body> ::= (<param-stmt> | <wire> | <memory> | <cell> | <process> )*
- [x] <param-stmt> ::= “parameter” <id> <constant>? <eol>
- [x] <constant> ::= <value> | <integer> | <string>
2024-11-25 22:33:18 +00:00
- [x] <module-end-stmt> ::= “end” <eol>
2024-12-06 03:27:26 +00:00
- [x] <attr-stmt> ::= “attribute” <id> <constant> <eol>
2024-12-06 19:57:32 +00:00
- [x] <sigspec> ::= <constant> | <wire-id> | <sigspec> “[” <integer> (“:” <integer>)? “]” | “{” <sigspec>* “}”
- [x] <conn-stmt> ::= “connect” <sigspec> <sigspec> <eol>
- [x] <wire> ::= <attr-stmt>* <wire-stmt>
- [x] <wire-stmt> ::= “wire” <wire-option>* <wire-id> <eol>
- [x] <wire-id> ::= <id>
- [x] <wire-option> ::= “width” <integer> | “offset” <integer> | “input” <integer> | “output” <integer> | “inout” <integer> | “upto” | “signed”
2024-12-06 22:24:58 +00:00
- [x] <memory> ::= <attr-stmt>* <memory-stmt>
- [x] <memory-stmt> ::= “memory” <memory-option>* <id> <eol>
- [x] <memory-option> ::= “width” <integer> | “size” <integer> | “offset” <integer>
2024-11-25 22:33:18 +00:00
- [ ] <cell> ::= <attr-stmt>* <cell-stmt> <cell-body-stmt>* <cell-end-stmt>
2024-12-06 03:27:26 +00:00
- [ ] <cell-stmt> ::= "cell" <cell-id> <cell-type> <eol>
- [x] <cell-id> ::= <id>
- [x] <cell-type> ::= <id>
2024-11-25 22:33:18 +00:00
- [ ] <cell-body-stmt> ::= “parameter” (“signed” | “real”)? <id> <constant> <eol> “connect” <id> <sigspec> <eol>
- [ ] <cell-end-stmt> ::= “end” <eol>
- [ ] <process> ::= <attr-stmt>* <proc-stmt> <process-body> <proc-end-stmt>
- [ ] <proc-stmt> ::= “process” <id> <eol>
- [ ] <process-body> ::= <assign-stmt>* <switch>? <assign-stmt>* <sync>*
- [ ] <assign-stmt> ::= “assign” <dest-sigspec> <src-sigspec> <eol>
- [ ] <dest-sigspec> ::= <sigspec>
- [ ] <src-sigspec> ::= <sigspec>
- [ ] <proc-end-stmt> ::= “end” <eol>
- [ ] <switch> ::= <switch-stmt> <case>* <switch-end-stmt>
- [ ] <switch-stmt> := <attr-stmt>* “switch” <sigspec> <eol>
- [ ] <case> ::= <attr-stmt>* <case-stmt> <case-body>
- [ ] <case-stmt> ::= “case” <compare>? <eol>
- [ ] <compare> ::= <sigspec> (“,” <sigspec>)*
- [ ] <case-body> ::= (<switch> | <assign-stmt>)*
- [ ] <switch-end-stmt> ::= “end” <eol>
- [ ] <sync> ::= <sync-stmt> <update-stmt>*
- [ ] <sync-stmt> ::= “sync” <sync-type> <sigspec> <eol> “sync” “global” <eol> “sync” “init” <eol> “sync” “always” <eol>
- [ ] <sync-type> ::= “low” | “high” | “posedge” | “negedge” | “edge”
- [ ] <update-stmt> ::= “update” <dest-sigspec> <src-sigspec> <eol>