Maciej Suminski
7f6f4157d1
vhdlpp: ExpRange::emit() now returns the number of errors.
2016-03-07 09:54:28 +01:00
Maciej Suminski
a884faa8c1
vhdlpp: Delayed assignment statements.
2016-03-07 09:54:28 +01:00
Maciej Suminski
eeb5728e20
vhdlpp: emit() methods are const.
2016-03-07 09:54:28 +01:00
Maciej Suminski
730fdaf0f0
vhdlpp: Concurrent assertion statements.
2016-03-07 09:54:28 +01:00
Maciej Suminski
5748018409
vhdlpp: Limited support for final wait statement.
2016-03-07 09:54:28 +01:00
Maciej Suminski
f6ee5d0f22
vhdlpp: Corrected an error message.
2016-03-07 09:54:28 +01:00
Maciej Suminski
2e6fb9b3f6
vhdlpp: shift_left/right() functions.
2016-03-07 09:54:28 +01:00
Maciej Suminski
03434efed3
vhdlpp: Elaborate ExpAttribute arguments.
2016-03-07 09:54:28 +01:00
Maciej Suminski
3af3c12b11
vhdlpp: Added system function NOW.
2016-03-07 09:54:28 +01:00
Maciej Suminski
2606d0e897
vhdlpp: Minor code clean up.
2016-03-07 09:54:28 +01:00
Maciej Suminski
52c912c4af
vhdlpp: Allow calling functions without parameters and brackets.
2016-03-07 09:54:28 +01:00
Maciej Suminski
b08ae23d0d
vhdlpp: line feed character (LF).
2016-03-07 09:54:28 +01:00
Maciej Suminski
054dfdf0cf
vhdlpp: Simpler enum definitions storage.
2016-03-07 09:54:28 +01:00
Maciej Suminski
f52de62729
vhdlpp: Elaborate if statement condition as bool.
2016-03-07 09:54:28 +01:00
Maciej Suminski
b6f1cb221e
vhdlpp: Fixes for subtypes handling.
2016-03-07 09:54:28 +01:00
Maciej Suminski
79f38b8c56
vhdlpp: Basic loop support (loop..end loop).
2016-03-07 09:54:28 +01:00
Maciej Suminski
ba274936e5
vhdlpp: Added 'image attribute for time type.
2016-01-06 15:30:24 +01:00
Maciej Suminski
214c940a1a
vhdlpp: Fixing memory leaks and muting valgrind.
2016-01-06 15:30:20 +01:00
Maciej Suminski
b711f16f05
vhdlpp: 'image attribute.
2016-01-06 15:30:06 +01:00
Maciej Suminski
dff1ad08b0
vhdlpp: ExpAttribute split to Exp{Obj,Type}Attribute.
2016-01-06 15:30:06 +01:00
Maciej Suminski
71c63bf993
vhdlpp: Added argument_list token.
2016-01-06 15:30:06 +01:00
Maciej Suminski
e0b2a5b337
vhdlpp: Refactored prange_t (class ExpRange).
2016-01-06 15:30:06 +01:00
Maciej Suminski
2c010d34bb
vhdlpp: Unified Expression::evaluate() method.
2016-01-06 15:30:06 +01:00
Maciej Suminski
23633c498f
vhdlpp: Moved dump_scope() to ScopeBase class.
2016-01-06 15:30:06 +01:00
Maciej Suminski
40075e11ab
Code formatting.
2016-01-06 15:30:06 +01:00
Maciej Suminski
9276515e19
vhdlpp: Minor fix for ReportStmt::write_to_stream.
2016-01-05 14:23:25 +01:00
Maciej Suminski
3b310e8227
vhdlpp: Elaborate subprograms in packages.
2016-01-05 14:23:25 +01:00
Maciej Suminski
9886b8cb36
vhdlpp: Distinguish character and an array of bits during emission.
2016-01-05 13:55:22 +01:00
Maciej Suminski
1c4b1c12e4
vhdlpp: Fixes for 'wait for' statements emission.
2016-01-05 13:55:22 +01:00
Maciej Suminski
ef3d0e4e0d
vhdlpp: ExpString::emit distinguishes between array and string types.
2016-01-05 13:55:22 +01:00
Maciej Suminski
442750ca2c
vhdlpp: Refactored {Report,Assert}Stmt so they handle expressions instead of strings.
2016-01-05 13:55:22 +01:00
Maciej Suminski
597001ee2f
vhdlpp: Variables have always reg_flag set.
2016-01-05 13:55:22 +01:00
Maciej Suminski
acb4ca8e47
vhdlpp: More descriptive error message for a missing function.
2016-01-05 13:55:22 +01:00
Cary R
a4177f6ddc
VHDL: Add some missing newlines
2015-12-19 10:50:16 -08:00
Cary R
ad4b523edc
A VHDL ExpAttribute() can share the base so don't just delete them
2015-12-13 19:01:33 -08:00
Cary R
24d1f49f3e
Fix compile warning from recent patch
2015-12-08 22:07:27 -08:00
Maciej Suminski
ab025f1e3b
vhdlpp: VTypeRange split to VTypeRangeConst and VTypeRangeExpr.
...
When range cannot be evaluated it uses the original expressions.
2015-12-04 11:40:03 +01:00
Maciej Suminski
7cebed7382
vhdlpp: Disabled evaluation for ExpTime.
...
It was always evaluated to a value expressed in femtoseconds,
which not always might be the case.
2015-12-04 11:38:19 +01:00
Maciej Suminski
96a0a84e6c
vhdlpp: Fixed the range boundaries order.
2015-12-04 10:29:08 +01:00
Maciej Suminski
2e9c3555cb
vhdlpp: AssertStmt::elaborate() probes the condition type.
2015-12-03 17:56:56 +01:00
Maciej Suminski
f4238eb563
vhdlpp: Minor code cleaning.
2015-12-03 17:56:41 +01:00
Maciej Suminski
652fe378b8
vhdlpp:: Added ExpUnary::probe_type() function.
2015-12-03 17:54:22 +01:00
Maciej Suminski
9df470c341
vhdlpp: While loops.
2015-12-03 17:53:13 +01:00
Maciej Suminski
bb695c6e11
vhdlpp: Fixed infinite recursion when evaluating ExpTime.
2015-12-01 16:38:54 +01:00
Maciej Suminski
d5853ff5d7
vhdlpp: File declarations with specified file name and open mode.
2015-12-01 16:38:54 +01:00
Maciej Suminski
83f01a5fc4
vhdlpp: Support for implicit initalizers and finalizers.
2015-12-01 16:38:54 +01:00
Maciej Suminski
e4ba4b5acd
vhdlpp: Added means to use 'initial' and 'final' blocks during translation.
2015-12-01 10:33:20 +01:00
Maciej Suminski
cb40a845e1
vhdlpp: Allow procedure calls with empty param list.
2015-12-01 10:33:20 +01:00
Maciej Suminski
5535b7d26c
vhdlpp: Corrected error messages.
2015-12-01 10:33:20 +01:00
Maciej Suminski
2f40c96527
vhdlpp: Basic support for std.textio & ieee.std_logic_textio.
2015-12-01 10:33:20 +01:00
Maciej Suminski
7b483e69d8
vhdlpp: Minor changes.
2015-12-01 10:32:47 +01:00
Maciej Suminski
46ea9e6954
vhdlpp: Out & inout arguments in subprogram calls are turned to registers.
...
Otherwise it is not possible to modify their values in subprograms.
Argument elaboration has been moved to a separate function, so now it is
common for procedure and function calls.
2015-12-01 10:32:47 +01:00
Maciej Suminski
637d7c9633
vhdlpp: Special handling for STRING type during type emission.
2015-11-24 17:19:33 +01:00
Maciej Suminski
ba3c07a59a
vhdlpp: CHARACTER type is converted to bit[7:0] instead of byte.
...
This way it is possible to have limited size strings. Previously they
were translated to unpacked array of bytes, which cannot be assigned as
it was a string.
2015-11-24 17:19:33 +01:00
Maciej Suminski
6fee37a640
vhdlpp: Simplified regex to detect string literals.
2015-11-23 16:25:08 +01:00
Maciej Suminski
925827d2c2
vhdlpp: Escape quotation marks in emitted strings.
2015-11-23 16:25:08 +01:00
Maciej Suminski
6f5addb1b7
vhdlpp: Fixed a gcc warning.
2015-11-23 16:25:08 +01:00
Maciej Suminski
5b0bf08638
vhdlpp: Simplified a few find_* functions.
2015-11-23 16:25:08 +01:00
Maciej Suminski
0569474d17
vhdlpp: Evaluate power (**) and division remainder (REM) operators.
2015-11-23 16:25:08 +01:00
Christian Taedcke
6d5aabd4f0
Make a few constructors explicit.
...
This removes cppcheck warnings.
2015-10-22 12:33:33 +02:00
Martin Whitaker
9f4b485c1c
Updated copyright dates displayed for main programs and targets.
2015-08-17 22:05:08 +01:00
Larry Doolittle
29478eba4c
Squelch just a few trailing spaces in source code
2015-08-17 11:44:45 -07:00
Larry Doolittle
4dd65926ae
Spelling fixes
2015-08-17 11:35:10 -07:00
Maciej Suminski
434bf0fe46
Fixed vhdlpp bison conflicts.
2015-08-12 11:43:09 -07:00
Maciej Suminski
fc2139f01c
vhdlpp: Allow sequence_of_statements to be empty.
...
Fix for br987.
2015-08-09 19:45:44 +02:00
Maciej Suminski
775904ab0f
vhdlpp: ExpName::elaborate_rval accepts enum values.
...
Fix for br986.
2015-08-09 18:48:59 +02:00
Maciej Suminski
0ae3414ec5
vhdlpp: ExpUnary::elaborate_expr() elaborates its operand as well.
...
Fix for br985.
2015-08-09 18:48:15 +02:00
Maciej Suminski
f3321126ed
vhdlpp: Fixed a problem with types defined as an array of arrays.
2015-08-09 16:43:04 +02:00
Frederick C. Kurz
4cf4cdabcd
Changes to vhdlpp/expression.cc
...
Changed for "Microsoft Visual Studio Express 2015 RC Web" for runtime memory access violation for vhdl_test4.vhd.
2015-07-22 13:19:50 -07:00
Maciej Suminski
df597e19cb
vhdlpp: Removed conversion of '*_edge(sig)' to 'always begin..end @(*edge sig)'.
2015-06-24 23:53:33 +02:00
Maciej Suminski
5509b3c7a5
vhdlpp: Enums are based on integer type.
...
This way than can be used as output ports.
2015-06-24 23:53:33 +02:00
Maciej Suminski
49253c43ba
vhdlpp: Do not emit reg/wire prefix for enums.
2015-06-24 23:53:33 +02:00
Maciej Suminski
5858e1bbac
vhdlpp: ExpName::probe_type() checks Subprogram parameters.
2015-06-24 23:53:33 +02:00
Maciej Suminski
95044d9ac7
vhdlpp: VType::type_match() checks definitions provided by VTypeDef.
2015-06-24 23:53:33 +02:00
Maciej Suminski
c6f934964f
vhdlpp: NOT is translated to either ~(...) or !(...) depending on the argument type.
2015-06-24 23:53:32 +02:00
Maciej Suminski
6f867d6f01
vhdlpp: Changed 'char' to 'byte'.
2015-06-24 23:53:32 +02:00
Maciej Suminski
e6b57910a4
vhdlpp: ScopeBase::is_enum_name checks enums from standard libraries.
2015-06-24 23:53:32 +02:00
Maciej Suminski
cc9b182eb6
vhdlpp: Procedure calls.
2015-06-24 23:53:32 +02:00
Maciej Suminski
d39f692cfd
vhdlpp: Refactored the way of handling standard types.
2015-06-24 23:53:32 +02:00
Maciej Suminski
b666b9c0bf
vhdlpp: Fixed a few memory leaks.
2015-06-24 23:53:32 +02:00
Maciej Suminski
b3c1fa3e85
vhdlpp: Elaborate prefix & indices for ExpName.
2015-06-24 23:53:32 +02:00
Maciej Suminski
169228ad0f
vhdlpp: Refactored the way of handling standard VHDL library functions.
2015-06-24 23:53:31 +02:00
Maciej Suminski
356a09d295
vhdlpp: VTypeArray::evaluate_ranges uses range boundaries to determine the direction.
2015-06-24 23:53:31 +02:00
Maciej Suminski
47c5ce0ab6
vhdlpp: Subprogram split to SubprogramHeader and SubprogramBody.
2015-06-24 23:53:31 +02:00
Maciej Suminski
3c437874e2
vhdlpp: Allow initializers for variables.
2015-06-24 23:53:31 +02:00
Maciej Suminski
c28000c55f
vhdlpp: Support for selected assignments.
2015-06-24 23:53:31 +02:00
Maciej Suminski
5a0d967682
vhdlpp: More renaming in ExpConditional.
2015-06-24 23:53:31 +02:00
Maciej Suminski
49efe6573c
vhdlpp: Minor ExpConditional refactoring.
...
Merged cond_ and true_clause_ to else_clause_ list to make
code more generic.
2015-06-24 23:53:31 +02:00
Maciej Suminski
ea12c0fe23
vhdlp: Renamed ExpConditional::else_t to ExpConditional::option_t.
2015-06-24 23:53:31 +02:00
Larry Doolittle
b23faff27c
Just a few more spelling fixes
...
Includes some user-visible messages
2015-06-17 08:09:34 -07:00
Maciej Suminski
29ddd5208f
vhdlpp: 'wait on' and 'wait until' statements.
2015-06-08 18:42:52 +02:00
Maciej Suminski
4a31f36646
vhdlpp: Minor code cleaning.
2015-06-08 18:42:52 +02:00
Maciej Suminski
1f1d47887e
vhdlpp: Visitor for Expression class.
2015-06-08 18:42:52 +02:00
Maciej Suminski
68f8007fc4
vhdlpp: 'wait for' statement.
2015-06-08 18:42:52 +02:00
Maciej Suminski
d6ff1946f9
vhdlpp: Support for time expressions.
2015-06-08 18:42:52 +02:00
Larry Doolittle
2739f83702
Spelling fixes in C and C++ comments
2015-06-04 15:00:29 -07:00
Maciej Suminski
51d7237d52
vhdlpp: Display error message for undefined generic values.
2015-05-21 01:25:34 +02:00
Maciej Suminski
7aab315ce5
vhdlpp: Allow assigning values to inout ports.
2015-05-20 17:30:07 +02:00
Maciej Suminski
bc83d2914a
vhdlpp: Corrected an error message for attributes.
2015-05-20 14:23:57 +02:00
Maciej Suminski
bb2e6782fa
Copy constructor for LineInfo.
2015-05-19 22:40:56 +02:00
Larry Doolittle
9231ad51a4
vhdlpp: generics without a default value are set to 1'bx.
2015-05-19 22:40:56 +02:00
Maciej Suminski
25458b8cc2
vhdlpp: inout direction for ports.
2015-05-19 22:40:56 +02:00
Maciej Suminski
515ab40ffe
vhdlpp: Special handling for string type emission.
2015-05-19 22:40:56 +02:00
Maciej Suminski
ddc204391e
vhdlpp: Add 'sub' prefix for subtypes while emitting packages.
2015-05-19 22:40:55 +02:00
Maciej Suminski
a33bbecc98
vhdlpp: VTypeRange::write_to_stream uses to/downto depending on the range boundaries.
2015-05-19 22:40:55 +02:00
Stephen Williams
7442c14689
Merge pull request #67 from orsonmmz/boolean
...
Boolean & asserts for vhdlpp
2015-05-13 09:57:18 -07:00
Maciej Suminski
7db01d8ded
vhdlpp: ScopeBase::is_enum_name() returns VTypeEnum* instead of bool.
2015-05-07 16:28:30 +02:00
Maciej Suminski
e4694cb6cb
vhdlpp: Changed emitted type from 'bool' to 'bit'.
2015-05-07 16:09:02 +02:00
Maciej Suminski
08e5aa021a
vhdlpp: Emits typedef for boolean type.
2015-05-07 16:09:02 +02:00
Larry Doolittle
4304fd503e
vhdlpp: and_reduce() and or_reduce() functions.
2015-05-06 10:03:02 +02:00
Maciej Suminski
5438464d67
vhdlpp: Support for reports & asserts.
2015-05-06 10:02:56 +02:00
Maciej Suminski
6df2979998
vhdlpp: Added missing std_logic values in ExpChar and ExpString::emit().
2015-05-06 09:55:08 +02:00
Maciej Suminski
9de4ced133
vhdlpp: Stop compilation on invalid attributes.
2015-05-06 09:55:08 +02:00
Larry Doolittle
c8fe897446
vhdlpp: and_reduce() and or_reduce() functions.
2015-04-24 13:46:30 +02:00
Maciej Suminski
5101b3b64b
vhdlpp: Boolean values handled without using keywords.
2015-04-24 13:39:41 +02:00
Maciej Suminski
bed5ee4529
vhdlpp: Handle 'severity' statements without using keywords.
2015-04-24 13:39:41 +02:00
Maciej Suminski
7c0a191626
vhdlpp: Handle true/false values.
2015-04-23 11:58:40 +02:00
Maciej Suminski
cfa43c7742
vhdlpp: Support for reports & asserts.
2015-04-23 11:58:40 +02:00
Maciej Suminski
a5138e238f
vhdlpp: Added missing std_logic values in ExpChar and ExpString::emit().
2015-04-23 11:57:27 +02:00
Maciej Suminski
d352d8ead3
vhdlpp: Stop compilation on invalid attributes.
2015-04-23 11:57:27 +02:00
Larry Doolittle
5dc1396eea
Spelling fixes
2015-04-13 11:35:12 -07:00
Maciej Suminski
0ca856d4e8
bugfix #942 : VHDL function bodies in arch declaration not supported
2015-03-31 10:46:24 +02:00
Maciej Suminski
d5ffb55bfd
Corrected ambiguous copyright info.
2015-03-27 18:57:40 +01:00
Maciej Suminski
ab9a8ccbf3
vhdlpp: Added fit_type() & probe_type() for ExpFunc.
2015-03-27 18:57:40 +01:00
Maciej Suminski
e6525ec35f
vhdlpp: Added a constructor for VTypeArray that takes integers as ranges.
2015-03-27 18:57:40 +01:00
Maciej Suminski
afaedbd06d
vhdlpp: Corrected to_integer() & resize() functions.
...
to_integer() handles sign and resize() really applies size casting.
2015-03-27 14:53:43 +01:00
Maciej Suminski
d4237774a5
vhdlpp: Error message for missing types in VTypePrimitive::get_width().
2015-03-27 14:53:43 +01:00
Maciej Suminski
2f2539e557
vhdlpp: Renamed a range_t constructor parameter to be more descriptive.
2015-03-27 14:53:43 +01:00
Maciej Suminski
3b14797075
vhdlpp: Prefix probe for VTypeArray.
2015-03-27 14:53:43 +01:00
Maciej Suminski
d1dc98b7f7
vhdlpp: Changed the workaround for accessing localparam arrays & records.
2015-03-07 20:47:20 +01:00
Maciej Suminski
295e4e7dfb
vhdlpp: Fixed crash on unassociated generics.
2015-03-06 20:39:10 +01:00
Maciej Suminski
807ad8002d
vhdlpp: Check generics when searching through constants.
2015-03-06 20:39:10 +01:00
Maciej Suminski
d3229b9068
vhdlpp: 'string' type is emitted as 'string' instead of 'array <> of character'.
2015-03-06 17:58:04 +01:00
Maciej Suminski
099bb427bc
vhdlpp: ComponentBase::write_to_stream() saves generics.
2015-03-06 17:58:04 +01:00
Maciej Suminski
1de3fb1625
vhdlpp: "resize" function.
2015-03-06 17:58:04 +01:00
Maciej Suminski
e33b8b4dde
vhdlpp: VType::get_width() uses information from Scope to determine the type width.
2015-03-06 17:58:04 +01:00
Maciej Suminski
9128eb67b9
vhdlpp: Evaluates attributes if possible.
2015-03-06 17:32:25 +01:00
Maciej Suminski
afbda099fb
vhdlpp: Workaround to handle constant arrays of vectors & records.
2015-03-06 17:32:25 +01:00
Maciej Suminski
4b0d220671
vhdlpp: get_width() for VType.
2015-03-06 17:32:25 +01:00
Maciej Suminski
a42b056b24
vhdlpp: Alternative way of accessing constant arrays of vectors.
2015-03-06 17:32:25 +01:00
Maciej Suminski
1852c5ab9d
Revert "vhdlpp: Support for accessing words in constant arrays."
...
This reverts commit 9ca754b6db .
2015-03-06 17:32:25 +01:00
Maciej Suminski
9ca754b6db
vhdlpp: Support for accessing words in constant arrays.
2015-02-19 17:07:41 +01:00
Maciej Suminski
0f0bef32f2
vhdlpp: Architecture elaboration counts errors coming from expression elaboration.
2015-02-19 17:07:41 +01:00
Maciej Suminski
cd55f30a27
vhdlpp: Minor change to ScopeBase::find_constant().
2015-02-19 17:07:41 +01:00
Maciej Suminski
5884879b02
vhdlpp: to_integer() function.
2015-02-19 17:07:41 +01:00
Maciej Suminski
a1a4f47894
vhdlpp: Unnecessary comment.
2015-02-19 17:07:41 +01:00
Maciej Suminski
e569e07d4e
vhdlpp: Type 'NATURAL' is translated to 'int unsigned'.
2015-02-19 17:07:41 +01:00
Maciej Suminski
ee840391d6
vhdlpp: std_logic_vector, signed & unsigned are considered global types.
2015-02-19 17:07:41 +01:00
Maciej Suminski
0046e9eca0
vhdlpp: ActiveScope::is_vector_name() checks also for constants.
2015-02-19 17:07:41 +01:00
Maciej Suminski
f51c037432
vhdlpp: Generics from external packages are accepted (warning instead of error).
2015-02-19 17:07:37 +01:00