Commit Graph

539 Commits

Author SHA1 Message Date
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
Zachary Snow 737791aebd expose nested type traversal 2019-08-27 19:28:04 -04:00
Zachary Snow a9f502a696 traverse covers typedefs in packages and exprs in types 2019-08-26 21:08:31 -04:00
Zachary Snow 086826714d nicer error message for missing struct fields 2019-08-26 20:20:38 -04:00
Zachary Snow 89e4f2a248 allow newlines before left paren of macro arguments 2019-08-11 17:55:42 -04:00
Zachary Snow 81f5fb500f added conversion for packed unions 2019-08-08 23:12:49 -04:00
Zachary Snow 8a67a91166 added language support for (untagged) unions 2019-08-08 23:12:06 -04:00
Zachary Snow ae239f16b7 updated usage documentation 2019-08-07 22:10:03 -04:00
Zachary Snow 9b7d003ea4 support for empty packages (resolves #9) 2019-08-07 21:58:20 -04:00
Zachary Snow 4fd7b6c2f2 better support for struct array parameters
This includes support for
- parsing dimensioned alias parameters
- flattening non-var decls with multiple packed dimensions
- converting arrays of structs
- inferring struct types for decls with initializations
2019-08-06 23:11:09 -04:00
Zachary Snow e82537fa97 add support for localparams in module parameter list (resolves #7) 2019-08-06 19:53:19 -04:00
Zachary Snow 90bc30d4be add --oneunit, which treats all input files as being part of one compilation unit 2019-08-05 22:00:04 -04:00
Zachary Snow 9c160c3d20 added support for package imports in module headers 2019-08-03 21:50:26 -04:00
Zachary Snow 35ac09aa75 struct conversion handles complex expression nesting 2019-05-16 10:51:57 -04:00
Dave Eckhardt dadcd6ae24 Wording tweaks in comments. 2019-05-15 23:02:52 -04:00
Zachary Snow 3bef2b9cdb struct conversion handles alternate and mixed integer vector field types 2019-05-10 10:41:31 -04:00
Zachary Snow 44ea16e3eb ensure, rather than check, traverseScopesM invariant (perf optimization) 2019-05-01 13:37:50 -04:00
Zachary Snow 04337988cc standardized handling of resolution across source files 2019-04-30 15:44:52 -04:00
Zachary Snow d2c06b58bc initial work towards fleshing out package conversion 2019-04-30 01:57:04 -04:00
Zachary Snow fc3e79ddd0 basic conversion for int, byte, shortint, and longint 2019-04-24 14:00:08 -04:00
Zachary Snow 2d003c6ded conversion for package-scoped tasks, functions, and typenames 2019-04-24 04:01:33 -04:00
Zachary Snow bc23aebc55 added language support for package-scoped calls and typenames 2019-04-24 03:37:47 -04:00
Zachary Snow 9373f3049a added note about state of package conversion 2019-04-23 20:37:59 -04:00
Zachary Snow 2aa39289a3 added preliminary package conversion 2019-04-23 20:22:03 -04:00
Zachary Snow 33dc4b3f88 conversions are applied per-file
- NestTF refactored to cover all package items
- fixed issue where type traverse skipped typedefs
2019-04-23 18:51:39 -04:00
Zachary Snow da38776d73 decls are now package items 2019-04-23 17:12:56 -04:00
Zachary Snow d01df6110b preliminary language support for packages 2019-04-23 15:53:51 -04:00
Zachary Snow 4178751b22 interface conversion handles decls with unpacked dimensions 2019-04-23 15:48:25 -04:00
Zachary Snow 4e34217472 struct conversion handles decls with unpacked dimensions 2019-04-23 15:48:25 -04:00
Zachary Snow 85d22d8d03 support for generate constructs outside of generate regions and genvar declarations in generate loops 2019-04-23 14:38:44 -04:00
Zachary Snow d36ae19e4c fix $bits resolution of params/localparams 2019-04-23 01:35:21 -04:00
Zachary Snow 925f11cf31 expression traversal visits LHS range and bit expressions 2019-04-23 01:16:57 -04:00
Zachary Snow 04983b0cd5 fixed off by 1 in logic conversion 2019-04-23 00:33:41 -04:00
Zachary Snow c8894cebde random documentation and cleanup 2019-04-23 00:23:32 -04:00
Zachary Snow 88579c6d1f logic conversion fixes produced reg-to-output bindings
- generally cleaned up and documented the Logic conversion
- made exprToLHS a shared helper function, now uses Maybe
- ported existing local exprToLHS helpers to the new one
2019-04-22 20:44:35 -04:00
Zachary Snow 55a5443786 logic conversion makes continuous assignments procedural where necessary 2019-04-22 15:10:34 -04:00
Zachary Snow d41dcb2bc9 struct conversion supports struct literals as task/function args 2019-04-22 13:58:14 -04:00
Zachary Snow addc550028 minor code cleanup for struct conversion 2019-04-22 02:48:22 -04:00
Zachary Snow a8f2cbbe29 struct conversion supports complex shadowing 2019-04-22 02:33:24 -04:00
Zachary Snow 05b7bdb99c added conversion which moves top-level tasks and functions into modules 2019-04-22 01:18:25 -04:00
Zachary Snow acebba58c9 struct conversion omits unused packing functions 2019-04-21 22:22:33 -04:00
Zachary Snow d5a369baa0 struct conversion uses packing functions to force field width 2019-04-21 21:56:23 -04:00
Zachary Snow c5fdf38612 added conversion which adds names to unnamed blocks with decls 2019-04-19 19:08:52 -04:00
Zachary Snow b0eedfe318 $bits conversion handles basic expressions 2019-04-19 13:32:25 -04:00
Zachary Snow 73f831122f trim empty blocks; remove extra space in implicitly typed decls 2019-04-19 02:55:40 -04:00
Zachary Snow 8298e83f1e enum conversion only produces localparams for enum items that are used 2019-04-19 02:14:21 -04:00
Zachary Snow 9fcc8e3478 enum generate localparam values are also explicitly sized to avoid implicit cast/warnings 2019-04-19 01:02:07 -04:00
Zachary Snow a5ebb1e822 minor output cleanup 2019-04-18 23:32:49 -04:00
Zachary Snow 4cbfd8fa1a enum conversion explicitly sizes generated params and supports partial types 2019-04-18 21:01:29 -04:00
Zachary Snow 093a4d4dd9 fix Struct conversion handling of default patterns with struct arrays 2019-04-18 21:00:48 -04:00
Zachary Snow 68b6eae484 updated documentation 2019-04-18 19:33:16 -04:00
Zachary Snow 9305c0f43b PackedArray conversion supports complex shadowing 2019-04-18 15:51:39 -04:00
Zachary Snow 96e0aff7f4 handle TF decl shadowing within packed array conversion 2019-04-17 20:05:55 -04:00
Zachary Snow 8d77856b1e StmtLHS traversal includes LHSs for loop parts 2019-04-17 17:44:12 -04:00
Zachary Snow 07b64bd1f2 clearer messaging surrounding unsupported interface conversion features 2019-04-17 01:44:03 -04:00
Zachary Snow 369e9f2f19 updated Stack snapshot; handled pattern matching failure issues introduced in GHC 8.6 2019-04-16 15:52:38 -04:00
Zachary Snow 75e2fba597 explicitly size literals in converted default struct patterns 2019-04-15 23:28:03 -04:00
Zachary Snow da9452bd26 fix PackedArray handling of bit select followed by range select 2019-04-11 18:29:30 -04:00
Zachary Snow 88c537c93f fixed handling of 3+ dimensional packed arrays 2019-04-11 17:30:29 -04:00
Zachary Snow 55aebec3ad flatten generate blocks into their parent description where trivially possible 2019-04-11 15:42:46 -04:00
Zachary Snow 231b7f9936 interface conversion respects port direction when inlining bindings 2019-04-11 14:08:50 -04:00
Zachary Snow c168ec4794 added some error checking for struct pattern conversion 2019-04-10 18:33:33 -04:00
Zachary Snow 377600078a struct conversion attempts to size unsized constants when packing patterns 2019-04-10 14:07:38 -04:00
Zachary Snow 006e0e0830 fixed struct pattern field ordering 2019-04-10 14:06:44 -04:00
Zachary Snow e4cd8f4c09 simplify handles division and unsized decimal constants 2019-04-09 13:07:43 -04:00
Zachary Snow 2ee837f7b0 restore port-decl hoisting for cleaner output 2019-04-09 12:50:56 -04:00
Zachary Snow dca3a55fa6 support for indexed part select in first procedural Stmt 2019-04-08 22:02:49 -04:00
Zachary Snow 9b51d7566b more expression simplification 2019-04-08 21:57:50 -04:00
Zachary Snow 9a38225b1d several major fixes surrounding packed arrays
- entirely new PackedArray conversion (always flattens)
- typedef and struct correctly order packed ranges when combining types
- Stmt LHS traversal no longer traverses nested statements to avoid double conversion
- Logic conversion applies to `initial` blocks`
- new and modified tests to cover these cases
2019-04-08 21:28:33 -04:00
Zachary Snow fb3d68e339 propper support for indexed part select addressing 2019-04-05 13:53:52 -04:00
Zachary Snow 011d88b544 PackedArray conversion supports arbitrary endianness 2019-04-04 19:40:19 -04:00
Zachary Snow f47446653d Updated README 2019-04-03 23:40:28 -04:00
Zachary Snow f9d46d548e cleanup of Enum conversion; additional test 2019-04-03 21:31:56 -04:00
Zachary Snow 383754fa7a final major round of splitting and cleanup in the SystemVerilog module 2019-04-03 20:24:09 -04:00
Zachary Snow 6d0f7dd0a7 significantly stronger support, and proper handling of assertions 2019-04-03 19:08:30 -04:00
Zachary Snow e79c95c5f0 some cleanup throughout the SystemVerilog module 2019-04-03 13:45:43 -04:00
Zachary Snow 39f377e022 lexer has useful tagging of tokens from a macro expansion 2019-04-03 13:05:33 -04:00
Zachary Snow 2f91e25aa2 more lexer tests 2019-04-03 00:16:30 -04:00
Zachary Snow a18270a3bd many lexer fixes
- added support for macros with default arguments
- fixed bug where nested preprocessor conditionals would not be skipped
- macro expansion respects escaped quotation marks
- macro expansion considers whole identifiers, rather than substituting in wildly
2019-04-02 23:05:42 -04:00
Zachary Snow f59ed11ef5 add support for specifying compile-time defines 2019-04-02 16:19:59 -04:00
Zachary Snow 5351dee80a minor scoping/ordering fixes for pesky VCS restrictions 2019-04-02 15:36:29 -04:00
Zachary Snow ba7ffdf14d $bits conversion handles types with more than 1 dimension 2019-04-02 13:44:47 -04:00
Zachary Snow 86195d9ea1 interface conversion obeys function/task identifier shadowing 2019-04-02 13:35:15 -04:00
Zachary Snow f13275bfa1 fix Struct and Interface conversion for expressions within LHSs 2019-04-02 01:00:02 -04:00
Zachary Snow c53b39319d added support and conversion handling of the $bits system function
This also entailed further fleshing out the expression traversal helper
to cover expressions in generate blocks, which could, of course, use
$bits.
2019-04-02 00:16:09 -04:00
Zachary Snow 5ea2ec9ddf added conversion for name task and function arguments 2019-04-01 13:16:21 -04:00
Zachary Snow f1ac4fc04f fixed PackedArray conversion assigning to reg for Local arrays 2019-04-01 02:45:36 -04:00
Zachary Snow 00d12c7ae5 fixed combined ranges incorrect upper bound calculation 2019-04-01 02:26:40 -04:00
Zachary Snow 9b8a95029b more robust and full-featured interface conversion 2019-04-01 01:23:44 -04:00
Zachary Snow 0a3e9f4f49 more range-bit edge cases in Struct conversion 2019-03-31 17:35:00 -04:00
Zachary Snow 650c602be9 struct conversion handles bit expressions and expressions outside of assignments 2019-03-31 17:00:55 -04:00
Zachary Snow b8d31d2a41 support for packed array flattening in tasks and functions 2019-03-31 16:43:19 -04:00
Zachary Snow b148117935 fix conversion ordering 2019-03-31 15:57:28 -04:00
Zachary Snow 7883e263f9 several conversion bug fixes
- convert default pattern used to fill a vector
- convert Logic in parameter and localparam types
- interface conversion should happen early for type resolution later on
- interface conversion handles renaming of usages of inlined decls
2019-03-31 15:01:10 -04:00
Zachary Snow dc759dbb68 support for parameters of all types; fix named argument display bug 2019-03-31 14:25:09 -04:00
Zachary Snow c8e776265c fix ports bound to decls inlined from an interface expansion 2019-03-30 22:15:48 -04:00
Zachary Snow a059b6e83c fix silly bug preventing structs from being converting 2019-03-30 03:32:08 -04:00
Zachary Snow 317994ed3a faster lexing by storing tokens in reverse order 2019-03-30 03:21:56 -04:00
Zachary Snow b45217bae9 hacky support for 'part-select addressing' 2019-03-30 02:50:45 -04:00
Zachary Snow abd7ccf49a don't prematurely unpack structs with complex types; support for convert patterns that use `default` 2019-03-30 02:33:31 -04:00
Zachary Snow dd89e5c9ea minor fixes 2019-03-30 01:56:57 -04:00
Zachary Snow c4f5718f51 support for binary xnor 2019-03-30 01:33:49 -04:00
Zachary Snow 2314f97a96 support for call args with unnamed and named arguments 2019-03-30 01:27:48 -04:00
Zachary Snow a432d75939 additional SystemVerilog language support
- unique0 and priority
- uniqueness on if statements
- preliminary discard-only parsing of assertions
- parameters with alias typenames
2019-03-30 00:47:42 -04:00
Zachary Snow 17fd6f8ce5 proper handling of single-line comments in macro definitions 2019-03-29 19:08:44 -04:00
Zachary Snow c4449fd9ca better support for macros with arguments 2019-03-29 18:55:45 -04:00
Zachary Snow e49cb3536e beginning work to support macros with arguments; lex posn fix 2019-03-29 17:02:49 -04:00
Zachary Snow 1a170f41c2 allow for stray semicolons in module items; allow for multiple struct field declarations on one line 2019-03-29 16:48:58 -04:00
Zachary Snow 5dc049b9e5 cleanup pass over Lex.x 2019-03-29 13:59:51 -04:00
Zachary Snow d578aee5d9 conflate the preprocessor and lexer
This should make it much easier to add support for ``, `", macros with
arguments, etc., in the future.
2019-03-29 05:33:17 -04:00
Zachary Snow e69895af54 initial setup for combining pre-processor and lexer 2019-03-29 01:10:46 -04:00
Zachary Snow 0d9ed3e1fa updated CLI to support include dirs and multiple files 2019-03-28 19:55:53 -04:00
Zachary Snow 7e37fe4338 fix nested conditional preprocessor directives 2019-03-28 18:04:28 -04:00
Zachary Snow 848f8cbd61 support for ++ and -- as bare Stmts 2019-03-28 15:08:05 -04:00
Zachary Snow e4efb4803b fix broken for inits parsing; beefed up relong test script to catch such mistakes 2019-03-27 03:33:28 -04:00
Zachary Snow 713fb8a658 support for more complex for loop components 2019-03-27 01:53:26 -04:00
Zachary Snow 1c1740f1e3 support for constant size casts 2019-03-27 00:34:17 -04:00
Zachary Snow 5de77ab62d fix function and task input types 2019-03-26 23:51:31 -04:00
Zachary Snow edaff3dcf6 added conversion to make functions and tasks use only one statement 2019-03-26 21:43:27 -04:00
Zachary Snow 6cc4654ad6 support for real numbers 2019-03-26 15:21:06 -04:00
Zachary Snow 39f6bbb3d8 preliminary support for extern and module/interface lifetimes 2019-03-26 15:10:16 -04:00
Zachary Snow 0352414e0f surprisingly non-disgusting addition of attribute instances to module items and statements 2019-03-26 01:54:16 -04:00
Zachary Snow 0e2658fdca fix string literal lexing 2019-03-25 19:42:20 -04:00
Zachary Snow a2d0872d6f support for delays on continuous assignments 2019-03-25 19:31:06 -04:00
Zachary Snow ec06b2b97a support for basic event triggers 2019-03-25 19:06:54 -04:00
Zachary Snow a803284be8 support for instantiations with a range 2019-03-25 19:06:35 -04:00
Zachary Snow ed816ac5dc fix silly bugs from AST reorg 2019-03-25 14:40:57 -04:00
Zachary Snow 8907ac861d split out Decl, LHS, and Stmt into separate AST modules 2019-03-25 13:29:35 -04:00
Zachary Snow 77f0d23d4b starting work to clean up and segment AST 2019-03-22 19:39:28 -04:00
Zachary Snow cecd141e57 revamped support system with most SystemVerilog types and signed types 2019-03-22 17:45:31 -04:00
Zachary Snow 45d16a30db support non-blocking assignments with delay or event controls 2019-03-22 02:47:25 -04:00
Zachary Snow 9259fef249 tolerate spaces in numeric literals in line with the spec 2019-03-22 02:01:48 -04:00
Zachary Snow 90bd6b3492 added support for n-input gates and n-output gates 2019-03-22 01:32:43 -04:00
Zachary Snow 7f8c2e336b simple conversion for unbased unsized literals 2019-03-19 13:40:25 -04:00
Zachary Snow 071d56a1ea more accurate handling of tagged blocks 2019-03-18 14:41:09 -04:00
Zachary Snow 35d8644f2a fix PackedArray with whole array uses by allowing top-level Expr and LHS traversal 2019-03-18 14:27:14 -04:00
Zachary Snow 1d2eccb32a preliminary support for defparam 2019-03-18 12:37:46 -04:00
Zachary Snow acfbdb07f8 completely rewrote preprocessor; more extensive directive support (include, timescale) 2019-03-18 05:00:23 -04:00
Zachary Snow 73b11b3662 move interface conversion assign bindings to be after inlining 2019-03-08 18:23:38 -05:00
Zachary Snow e187de5623 support for commas in event expressions 2019-03-08 17:29:44 -05:00
Zachary Snow 4bc3eb8d2c more gracefully unknown type handling in Struct conversion 2019-03-08 17:17:30 -05:00
Zachary Snow bddb8ceaff fix multiple instantiations on one line 2019-03-08 17:01:49 -05:00
Zachary Snow b5b9fdb37e support for null call arguments 2019-03-08 16:55:03 -05:00
Zachary Snow b4b6ea348d support for "unbased_unsized_literal" 2019-03-08 16:37:20 -05:00
Zachary Snow 943b7adc08 support for more complex LHSs with dots in decl token parser 2019-03-08 16:26:47 -05:00
Zachary Snow 2150e8a4bb support optional tags in more places 2019-03-08 16:03:29 -05:00
Zachary Snow f40c71dc03 ParseDecl forbids non-EQ assignment operators in declarations 2019-03-08 14:47:20 -05:00
Zachary Snow d7f641b850 pivoted to general Verilog-2005 targeting 2019-03-08 11:02:40 -05:00
Zachary Snow 9f0857d68e some fixes for 'VTR' targetted conversions 2019-03-07 20:03:35 -05:00
Zachary Snow b2b1c9e52c allow .* as element of partial port bindings 2019-03-07 18:20:34 -05:00
Zachary Snow f97e069ef0 fix DT parsing of ports with implicit types 2019-03-07 18:16:38 -05:00
Zachary Snow 9ec9435cb0 support for binary blocking assignment operators in statements 2019-03-07 18:16:28 -05:00
Zachary Snow dd5b03431d allow block item declarations for un-named blocks 2019-03-07 15:39:19 -05:00
Zachary Snow e006e36ddc preliminary support for tasks 2019-03-07 13:58:20 -05:00
Zachary Snow 0f4a60be1d functions and typedefs can now appear at the top level 2019-03-07 13:19:31 -05:00
Zachary Snow e8ed885f2c support for single-expr implicit dimensions 2019-03-07 01:38:42 -05:00
Zachary Snow d7b36a033b removed enum complex type cast hack 2019-03-07 00:59:02 -05:00
Zachary Snow 710da1a62f fix PackedArray ident prefix conditions 2019-03-06 23:25:02 -05:00
Zachary Snow 15d85b461b completed preliminary interface conversion 2019-03-06 21:55:27 -05:00
Zachary Snow ccd0bf879a fix Struct conversion paving over LHSDot 2019-03-06 20:49:53 -05:00
Zachary Snow 1d79c27963 first half of interface conversion 2019-03-06 20:30:47 -05:00
Zachary Snow 64a2610b76 explicitly default function input types to 2019-03-06 15:07:22 -05:00
Zachary Snow 4c49bd1138 function return type logic to implicit conversion 2019-03-06 14:36:16 -05:00
Zachary Snow 9699f5bf16 preliminary struct conversion; return conversion 2019-03-06 01:13:36 -05:00
Zachary Snow 4d3669d356 added support for other procedural loops 2019-03-04 21:34:32 -05:00
Zachary Snow de728f3060 added some support for a few key non-synthesizable constructs 2019-03-04 21:04:22 -05:00
Zachary Snow ff81267132 added conversion for genvar iteration AsgnOps 2019-03-04 19:58:54 -05:00
Zachary Snow 460c0ee497 broader operator support; other parser cleanup 2019-03-04 18:25:14 -05:00
Zachary Snow 4394dc1737 Fix PackedArray conversion after recursive Expr and LHS 2019-03-04 16:10:01 -05:00
Zachary Snow e1799de5f9 Expr bits and ranges are recursive (as they should have been) 2019-03-04 15:46:21 -05:00
Zachary Snow 59efba06ac LHSs are recursive (as they should have been) 2019-03-04 15:16:53 -05:00
Zachary Snow b95af2b6d1 support for automatic functions 2019-03-04 14:25:38 -05:00
Zachary Snow 729a75cd11 support for interfaces; new "declaration parser" 2019-03-04 02:58:00 -05:00
Zachary Snow b2e0c4fa97 preliminary support for structs 2019-03-01 20:32:46 -05:00
Zachary Snow ab91eaafd7 initial version of enum conversion 2019-02-28 22:44:31 -05:00
Zachary Snow 816d959fc8 rewrite Typedef conversion to use Traverse 2019-02-28 20:30:21 -05:00
Zachary Snow fd0bccfbd8 rewrote PackedArray to properly handle the various scenarios 2019-02-28 19:48:58 -05:00
Zachary Snow a6cd3626f5 small pre-refactor PackedArray fixes 2019-02-28 18:04:34 -05:00
Zachary Snow e1d6da00dd moved some expression traversal logic from PackedArray to Traverse 2019-02-28 17:12:37 -05:00
Zachary Snow 945923b3fd cleaned up command line args module a bit 2019-02-28 14:06:35 -05:00
Zachary Snow 7bc81ef67b directory re-org; streamline build setup 2019-02-28 13:52:31 -05:00