Zachary Snow
790312d25d
vim modelines for Lex.x and Parse.y
2020-05-06 19:03:32 -04:00
Zachary Snow
c5ef5ea9e2
additional expression simplification
...
- constant folding supports hex numbers
- simplify mod
- simplify pow
- elaborate !(a == b) into a != b
2020-04-05 23:12:54 -04:00
Zachary Snow
543a104683
upgrade to stackage lts-14.26
2020-04-05 13:45:31 -04:00
Zachary Snow
b8d512e31f
remove unneeded imports
2020-04-05 13:45:22 -04:00
Zachary Snow
bcafef8d01
allow empty list_of_parameter_assignments
2020-03-30 19:27:44 -04:00
Zachary Snow
1687b1c5c1
allow empty parameter_port_list ( resolves #83 )
2020-03-25 23:55:19 -04:00
Rupert Swarbrick
78f3db8803
Fail more gracefully on mismatched `if/`elsif/`else/`endif
...
Without this patch, a stray `endif caused sv2v to take the tail of an
empty list. Now we raise a lexical error.
To do this, the patch pulls the "push" and "pop" logic for the
preprocessor condition stack into separate helper
functions (pushCondStack and popCondStack). It also defines some
helper functions for manipulating Cond's.
The patch also adds a documentation comment explaining what the
different values of Code meant (because I had to squint to work it
out).
2020-03-23 20:19:25 -04:00
Zachary Snow
35e75c0604
language support for strengths
2020-03-20 21:13:57 -04:00
Zachary Snow
bd68ab0852
faster parsing of very long files
2020-03-20 18:53:06 -04:00
Zachary Snow
f44e3e808a
add option to skip preprocessing
2020-03-18 20:02:20 -04:00
Zachary Snow
dd9f040f1f
improved handling of genvars
2020-02-23 22:30:17 -05:00
Zachary Snow
db4c396389
minor multi-packed verbosity improvement
2020-02-17 17:31:14 -05:00
Zachary Snow
ad21277eb5
support macro names comprised of macro args and macros
2020-02-16 22:18:12 -05:00
Zachary Snow
463cdcb2c1
support complex sizes in size casts ( resolves #69 )
2020-02-15 16:48:09 -05:00
Zachary Snow
b124a561f2
updated binary and unary operator printing ( resolves #72 )
2020-02-15 14:11:17 -05:00
Zachary Snow
104f98011e
support for string literals with macros
...
- adds support for using macros and macro arguments within the argument
list to other macros
- fixes an issue where macros with arguments would have extraneous
whitespace
- fixes handling of multiline string literals
2020-02-12 23:58:41 -05:00
Zachary Snow
df4244d8d5
more aggressive expression simplification
2020-02-09 20:03:08 -05:00
Zachary Snow
14644cd1ed
fix output of empty generate loops
2020-02-09 14:01:05 -05:00
Zachary Snow
fc9999aeea
support implied port directions
2020-02-08 22:48:21 -05:00
Zachary Snow
4b3b09d2db
allow extraneous semicolons in generate blocks
2020-02-08 22:15:35 -05:00
Zachary Snow
3c08767b63
redesigned preprocessor and lexer
2020-02-06 23:33:13 -05:00
Zachary Snow
2dcd35ade7
support typedefs with unpacked dimensions
2020-02-02 21:40:43 -05:00
Zachary Snow
a402a73477
alias macromodule to module
2020-02-01 16:45:33 -05:00
Zachary Snow
1a9068409e
forbid illegal macro names
2020-02-01 16:42:25 -05:00
Zachary Snow
9694799a23
more consistent procedural assignment support
2020-02-01 15:52:52 -05:00
Zachary Snow
610d9abacf
support for gates with delays
2020-01-31 20:24:37 -05:00
Zachary Snow
dd0eb5981d
added source trace comments
...
- Trace comments cover module items, decls, and stmts
- Added pseudo-lexer to Alex parser for monadic Position production
- Added Position to every DeclToken
- Removed Comment PackageItem
- Added CommentStmt and CommentDecl
- Fixed traversal skipping outer MIAttr ModuleItems
- Generally cleaned up Parser modules
2020-01-30 22:17:17 -05:00
Zachary Snow
9f180f91e5
improve `line error message
2020-01-27 19:23:36 -05:00
Zachary Snow
ad98c14547
fix handling of macros at EOF ( resolves #62 )
2020-01-27 19:18:58 -05:00
Zachary Snow
cf4c2a5491
expanded support for macros in preprocessor directives
2020-01-14 23:19:39 -05:00
Zachary Snow
22d6ba4927
support evaluating functions as statements
2020-01-11 21:06:09 -05:00
Zachary Snow
2bd24b6086
expand type operator support
2020-01-11 20:35:51 -05:00
Zachary Snow
b58248fc2c
support type operator on simple expressions
2020-01-11 16:22:07 -05:00
Zachary Snow
82217ec05c
updated lifetime representation; struct packers use automatic
2019-12-22 12:01:05 -05:00
Zachary Snow
7ea5b60d0b
support for inside case statements
2019-12-21 20:41:19 -05:00
Zachary Snow
ba79b17bd9
pragma and line directive validation
2019-12-09 21:45:11 -05:00
Zachary Snow
fb5fd39388
support for inside expression ranges and wildcards
2019-12-08 17:36:25 -05:00
Zachary Snow
96fe986b2d
cleanup case representation
2019-12-01 23:25:33 -05:00
Zachary Snow
92d827f3a5
preserve else block association, with timings
2019-11-20 20:44:09 -05:00
Zachary Snow
35a0587d2c
preserve else block association ( resolved #56 )
2019-11-20 20:18:56 -05:00
Zachary Snow
58ad1feab1
allow reading from stdin
2019-11-19 23:29:19 -05:00
Zachary Snow
eebe41427e
language support for final blocks
2019-10-31 20:39:11 -04:00
Zachary Snow
3597f4a6be
support for methods (no conversion) and interface TFs
2019-10-19 16:22:46 -04:00
Zachary Snow
336b180d74
lexer handles carriage returns ( closes #51 )
2019-10-19 13:27:29 -04:00
Zachary Snow
8e8d44f421
allow array struct fields
2019-10-13 23:59:36 -04:00
Zachary Snow
de581ecaf5
initial support for types in struct patterns
2019-10-13 19:01:42 -04:00
Zachary Snow
3979d294eb
consistent size casting behavior
...
- also adds $clog2 localparam substitution to Simplify
2019-10-12 11:40:36 -04:00
Zachary Snow
c722e931fe
allow time delay values
2019-10-11 22:56:16 -04:00
Zachary Snow
1e35ba269d
allow repeat shorthand in patterns
2019-10-11 22:54:21 -04:00
Zachary Snow
fea5ff44eb
coalesce tokens across nested macros
2019-10-11 22:53:08 -04:00
Zachary Snow
37355920e0
cleaner AST output
2019-10-11 22:38:47 -04:00
Zachary Snow
d86f8535a0
support for begin_keywords directive
2019-10-11 19:32:10 -04:00
Zachary Snow
5ef24d2d94
omit empty subroutine args list
2019-10-11 19:30:45 -04:00
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
1584f39045
allow typename resolution of non-vector types
2019-09-25 23:45:18 -04:00
Zachary Snow
76663c78a0
fix typename decl asgn lookahead ( resolves #49 )
2019-09-25 19:34:42 -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
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
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
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
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
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