Commit Graph

156 Commits

Author SHA1 Message Date
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 69a5585a7f updated IEEE standard references in README 2019-03-27 03:41:41 -04:00
Zachary Snow 98d65c4cea switch to parallel builds 2019-03-27 03:41:02 -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 ef42fc04fd use builtin $clog2 in test/relong/array.v 2019-03-27 02:32:11 -04:00
Zachary Snow a646a85867 Travis CI 2019-03-27 02:23:57 -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 4b3966aa25 added hdl-examples tests 2019-03-26 21:32:02 -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