Commit Graph

330 Commits

Author SHA1 Message Date
Zachary Snow b660cfbd4e allow tabs in preprocessor directives 2019-10-10 22:10:59 -04:00
Zachary Snow 167c65db11 pass through downstream compiler directives 2019-10-10 20:53:49 -04:00
Zachary Snow 6d79e0b491 updated number literals 2019-10-10 19:01:09 -04:00
Zachary Snow 149d16d8fc add support for `line directive 2019-10-10 19:00:49 -04:00
Zachary Snow e23d68a652 discard const keyword 2019-10-09 22:16:58 -04:00
Zachary Snow 910282fbf7 allow parens around senses 2019-10-09 22:16:57 -04:00
Zachary Snow d2976170f3 allow extraneous semicolons after package items 2019-10-09 22:16:38 -04:00
Zachary Snow 9880885412 Revert "allow escaped newline in macro arguments"
This reverts commit ba7fbd5506.
2019-10-09 00:36:23 -04:00
Zachary Snow 8ae89a7bd4 support and convert jumps: break, continue, and return 2019-10-08 23:50:26 -04:00
Zachary Snow 08c38e6193 support time literals as expressions 2019-10-06 21:21:58 -04:00
Zachary Snow 1a394cff9c support mintypmax expressions 2019-10-06 16:18:15 -04:00
Zachary Snow f0368714e1 support generate for without explicit block 2019-10-06 15:36:29 -04:00
Zachary Snow a1735ffef7 fix lexing identifiers and numbers across macro boundaries 2019-10-06 15:16:48 -04:00
Zachary Snow ba7fbd5506 allow escaped newline in macro arguments 2019-10-03 23:29:49 -04:00
Zachary Snow 9524f0028b support identifier delay values 2019-10-03 20:38:38 -04:00
Zachary Snow 77dd1011e3 support multiple assignments in one `assign` 2019-10-03 19:37:42 -04:00
Zachary Snow 89de289bec simplify numeric negation 2019-10-02 23:56:34 -04:00
Zachary Snow 2b84bdb7e2 support for type param without parameter keyword 2019-10-01 22:02:30 -04:00
Zachary Snow 3807ab6736 handle adding packed dimensions to byte, shortint, and longint 2019-10-01 00:03:07 -04:00
Zachary Snow ceb384f680 support multiline strings 2019-09-30 23:53:18 -04:00
Zachary Snow c6eedb9f26 pass through named events 2019-09-30 23:22:05 -04:00
Zachary Snow e2570303d0 reject negative repeat counts 2019-09-30 23:11:16 -04:00
Zachary Snow b7959c7aa2 support for statement labels and basic fork-join 2019-09-30 23:03:55 -04:00
Zachary Snow d57c967090 added partial support for implicitly sized arrays 2019-09-28 16:57:36 -04:00
Zachary Snow 454afa97a3 major array pack and flatten update (closes #48)
- dimensions flattening conversion only flattens packed dimensions
- conversion for packing arrays when necessary (preserves memories)
- added coverage for array with multiple packed dimensions
- test runner no longer forbids multi-dim accesses after conversion
- Decl and subordinate types derive Ord
2019-09-26 23:11:59 -04:00
Zachary Snow 087841a21f fix generate default case printing 2019-09-26 00:08:20 -04:00
Zachary Snow dcca974fbc support size casts with complex size expressions 2019-09-25 23:59:47 -04:00
Zachary Snow 1584f39045 allow typename resolution of non-vector types 2019-09-25 23:45:18 -04:00
Zachary Snow 111e04f86e remove extraneous explicit unsigned in params (resolves #47) 2019-09-25 19:42:31 -04:00
Zachary Snow 76663c78a0 fix typename decl asgn lookahead (resolves #49) 2019-09-25 19:34:42 -04:00
Zachary Snow c7f51209df remove extraneous explicit unsigned (resolves #45) 2019-09-24 23:35:06 -04:00
Zachary Snow 0262a3d3c4 struct conversion visits non-asgn LHSs 2019-09-24 22:09:22 -04:00
Zachary Snow f4181aba76 added pass-through support for strings 2019-09-24 22:09:18 -04:00
Zachary Snow bce438c841 default case can be anywhere in case block 2019-09-24 22:09:08 -04:00
Zachary Snow 2d8e6bddd3 parser rejects function input decls with bad directions 2019-09-22 23:29:02 -04:00
Zachary Snow 2d81c6470f prevent genvar conflict without changing scope tree 2019-09-21 14:14:55 -04:00
Zachary Snow aa294eaad0 genvars declared in for loops retain scoping (resolves #46) 2019-09-21 13:36:33 -04:00
Zachary Snow 142df3b5f6 fixed handling of unbased unsized literals (resolves #43) 2019-09-18 23:39:09 -04:00
Zachary Snow ba4cf805ff preliminary conversion for size casts 2019-09-18 23:39:09 -04:00
Zachary Snow df3620d3a0 fix premature logic to wire conversion 2019-09-18 23:39:09 -04:00
Zachary Snow 82218848fc allow post inc/dec as first stmt in a block 2019-09-18 23:39:09 -04:00
Henner Zeller e2f044ec4a Place <file>:<line>:<col> first in an error message
This is the same as most compilers (e.g. gcc and clang) but also
verilog tools (e.g. yosys) output error mesasge in a standardized form.

This form can immediately be parsed by IDE tools that can jumping
through a list of error messages, placing the cursor at the given
file position.

This change simply re-arranges the error message printing to conform to that
standard.

Signed-off-by: Henner Zeller <h.zeller@acm.org>
2019-09-18 19:16:37 -04:00
Zachary Snow 191922e2a7 plain typedef forward declaration 2019-09-17 20:44:50 -04:00
Zachary Snow d84a4f7bb0 additional generate block simplification 2019-09-17 20:30:33 -04:00
Zachary Snow 2d034dcb73 basic support for elaboration system tasks 2019-09-17 20:30:17 -04:00
Zachary Snow 1078603bfd support complex constant expression size casts 2019-09-17 19:49:38 -04:00
Zachary Snow 512d4b1a7f support module "list of param assignments" shorthand 2019-09-17 19:48:08 -04:00
Zachary Snow bdafb60dec lexical and parse errors print to stderr 2019-09-17 19:34:56 -04:00
Zachary Snow 7267f94b0b allow signing on net types (closes #40) 2019-09-16 19:50:30 -04:00
Zachary Snow 5d80c83092 support for module attributes (resolves #39) 2019-09-15 23:17:14 -04:00
Zachary Snow bb2a8febea module item traversals visit items with attributes 2019-09-15 16:56:55 -04:00
Zachary Snow 77b9d2f085 support and conversion for foreach 2019-09-15 16:32:19 -04:00
Zachary Snow 7f701cd112 fixed dimension shorthand diretion and relevant tests 2019-09-15 16:30:53 -04:00
Zachary Snow 2ca8a022ad support and conversion for -> and <-> 2019-09-15 13:55:40 -04:00
Zachary Snow c0e38f793d updated CLI (backwards compatible) 2019-09-15 10:31:50 -04:00
Zachary Snow 2a51d20f11 package item nesting resolves across and throughout files 2019-09-14 21:00:40 -04:00
Zachary Snow c5f7f2cc5e typedef conversion gracefully skips yet-unknown typenames 2019-09-14 20:59:41 -04:00
Zachary Snow e27d6920a7 conversion for array query system functions (resolves #37) 2019-09-14 16:46:51 -04:00
Zachary Snow f5d6683422 generalization of array dimension(s) system functions 2019-09-14 12:38:26 -04:00
Zachary Snow 10feedb1af use the Unique package in a few places 2019-09-11 23:01:34 -04:00
Zachary Snow a14d078230 substitution conversion for size casts (closes #27) 2019-09-11 22:52:01 -04:00
Zachary Snow 6ddf782383 drop timeunit and timescale (closes #31) 2019-09-11 21:44:57 -04:00
Zachary Snow 295ac64929 package item conversions preserve ordering (resolves #36) 2019-09-11 21:16:55 -04:00
Zachary Snow dd3a7e687c EmptyArgs conversion skips global functions until nested 2019-09-11 21:04:57 +02:00
Zachary Snow 4d0d652c86 enum preserves alias base type dimensions 2019-09-11 20:45:41 +02:00
Zachary Snow bd2efb4201 support struct patterns with partial defaults (resolves #35) 2019-09-11 19:32:24 +02:00
Zachary Snow 46242aac5d fix combined array declarations (resolves #34) 2019-09-11 19:32:12 +02:00
Zachary Snow a0068f60f2 remove old unused grammar rules 2019-09-11 19:32:04 +02:00
Zachary Snow f8a2bcbea0 conversion for function void (resolves #32) 2019-09-11 19:31:50 +02:00
Zachary Snow 6271e16b68 functional parameter type conversion 2019-09-11 17:58:03 +02:00
Zachary Snow 4de585ec0f initial parameter type conversion 2019-09-11 09:27:18 +02:00
Zachary Snow 8df1e67faf typedef traversal only marks interfaces as such 2019-09-09 18:44:45 +02:00
Zachary Snow 677d11091b added monadic file traversal helper 2019-09-09 18:44:04 +02:00
Zachary Snow 66989b0446 language support for parameter type bindings 2019-09-09 07:38:14 +02:00
Zachary Snow d11e898edb Added ParamType decl; combined parameter and localparam under Param 2019-09-09 07:34:43 +02:00
Zachary Snow 9cc211d51e fix non-vector enum base types (closes #29) 2019-09-05 00:34:56 -04:00
Zachary Snow ad0db916cc support typedef forward declarations 2019-09-04 23:41:24 -04:00
Zachary Snow 1a6e0ce9df added support for inside expressions (closes #28) 2019-09-04 21:36:50 -04:00
Zachary Snow 33bea9e694 added remaining SV keywords 2019-09-04 21:02:02 -04:00
Zachary Snow baaffd732d remove unused import 2019-09-04 21:01:27 -04:00
Zachary Snow 41bba1b2f2 generate localparams for all package enums (closes #26) 2019-09-04 20:59:41 -04:00
Zachary Snow 92feef8759 standardized, shorter hash generation 2019-09-03 23:54:47 -04:00
Zachary Snow af4711a8cf preliminary stream conversion 2019-09-03 23:36:29 -04:00
Zachary Snow 7340464364 ParseDecl edge case 2019-09-02 22:57:57 -04:00
Zachary Snow 97fda59c51 convert needless patterns to concats 2019-09-02 22:35:36 -04:00
Zachary Snow 1f7c70dfe1 language support for LHS streaming operators 2019-09-02 20:46:35 -04:00
Zachary Snow d6c932d0fc conversion for block decls with asignments 2019-09-02 13:08:41 -04:00
Zachary Snow 04de45b08b language support for streaming operators 2019-09-01 18:42:16 -04:00
Zachary Snow 638adb3538 fixed ParseDecl mischaracterizing block decl as stmt 2019-09-01 18:40:24 -04:00
Zachary Snow 704e867c0c packed array conversion packs any unsupported unpacked dimensions 2019-09-01 18:39:01 -04:00
Zachary Snow e80f880f43 additional expression simplification special cases 2019-08-31 15:45:24 -04:00
Zachary Snow 8f7968bf37 support data declarations with automatic lifetime (closes #20) 2019-08-31 15:36:27 -04:00
Zachary Snow 243f773657 convert for loop declarations and assignments to signle assignment (closes #15) 2019-08-30 00:12:01 -04:00
Zachary Snow 1472ea0cfe convert unpacked parameter dimensions (closes #18) 2019-08-29 20:52:06 -04:00
Zachary Snow 1d216a2e0e preliminary ternary substitution simplification 2019-08-28 23:26:12 -04:00
Zachary Snow 96034eb99c support for flattening multidimensional ports (resolves #21) 2019-08-28 22:32:36 -04:00
Zachary Snow 1dad3a7502 parse and convert empty function arguments (resolves #17) 2019-08-28 20:29:35 -04:00
Zachary Snow 02ba9e95df remove comments by default; added --verbose flag 2019-08-28 19:48:25 -04:00
Zachary Snow b48ca0bb8f added package enum item name resolution (resolves #16) 2019-08-28 19:01:25 -04:00
Zachary Snow fabdc08493 fix package resolution of nested typedefs (resolves #11) 2019-08-27 21:32:03 -04:00