Maciej Suminski
cef45ff21a
vhdlpp: Emit init values for wires as a weak assignment.
2016-03-07 09:54:28 +01:00
Maciej Suminski
fca2fff24e
vhdlpp: VTypeRange::type_match()
2016-03-07 09:54:28 +01:00
Maciej Suminski
83330c22fb
vhdlpp: Refactored code for format matching in read/write() sys functions.
2016-03-07 09:54:28 +01:00
Maciej Suminski
a7f4d65aaa
vhdlpp: More robust report messages display.
2016-03-07 09:54:28 +01:00
Maciej Suminski
c23f970a5f
vhdlpp: Do not display an error message when probing type without a context.
2016-03-07 09:54:28 +01:00
Maciej Suminski
f620727555
vhdlpp: Added a few missing FILE_NAME directives in the parser.
2016-03-07 09:54:28 +01:00
Maciej Suminski
045d9e7117
vhdlpp: Improved type matching rules.
2016-03-07 09:54:28 +01:00
Maciej Suminski
a40d1a65c4
vhdlpp: Emit enum type as int.
2016-03-07 09:54:28 +01:00
Maciej Suminski
248275e5e1
vhdlpp: Refactored VType::emit_decl().
2016-03-07 09:54:28 +01:00
Maciej Suminski
5f1cd624fe
vhdlpp: Set reg flag only for arrays of unpacked types.
2016-03-07 09:54:28 +01:00
Maciej Suminski
996201a745
vhdlpp: Time type can be packed.
2016-03-07 09:54:28 +01:00
Maciej Suminski
1647e192e5
vhdlpp: Added ExpDelay::visit() method.
2016-03-07 09:54:28 +01:00
Maciej Suminski
f802c782b8
vhdlpp: Elaborate wait statement argument as time type.
2016-03-07 09:54:28 +01:00
Maciej Suminski
f88b48c7da
vhdlpp: Do not emit explicit 'reg' for user-defined types.
2016-03-07 09:54:28 +01:00
Maciej Suminski
d20549b27a
vhdlpp: Fixed a crash in case of dynamic_cast failure.
2016-03-07 09:54:28 +01:00
Maciej Suminski
bba312fee1
vhdlpp: Minor code formatting.
2016-03-07 09:54:28 +01:00
Maciej Suminski
78bd9a389d
vhdlpp: Handle multidimensional arrays based on typedefs.
2016-03-07 09:54:28 +01:00
Maciej Suminski
f584b4ea50
vhdlpp: Treat range as an expression.
2016-03-07 09:54:28 +01:00
Maciej Suminski
5488ea1e2c
vhdlpp: Support for ExpNames with multiple indices.
2016-03-07 09:54:28 +01:00
Maciej Suminski
34b5834a84
vhdlpp: Added file_open() variant that returns status.
2016-03-07 09:54:28 +01:00
Maciej Suminski
0f3f8907c3
vhdlpp: Removed an unnecessary check.
2016-03-07 09:54:28 +01:00
Maciej Suminski
08150eae83
vhdlpp: Add line information for procedure calls.
2016-03-07 09:54:28 +01:00
Maciej Suminski
609f266a8c
vhdlpp: Additional variants for standard library functions.
2016-03-07 09:54:28 +01:00
Maciej Suminski
2c4deee0c3
vhdlpp: Support for subprogram overloading.
2016-03-07 09:54:28 +01:00
Maciej Suminski
cfa038e75c
vhdlpp: VType::type_match() fixes.
2016-03-07 09:54:28 +01:00
Maciej Suminski
ad5b003488
vhdlpp: Improved handling for subprogram-related errors.
2016-03-07 09:54:28 +01:00
Maciej Suminski
8d3f559b38
vhdlpp: ExpName::probe_prefixed() returns correct type for complex expressions.
...
E.g. array_of_records(2).fieldname
2016-03-07 09:54:28 +01:00
Maciej Suminski
25671048f6
vhdlpp: ExpInteger::probe_type() returns either INTEGER or NATURAL, depending on the value.
2016-03-07 09:54:28 +01:00
Maciej Suminski
6b1e08cdb0
vhdlpp: Removed a non-existing method declaration.
2016-03-07 09:54:28 +01:00
Maciej Suminski
32f202bddc
vhdlpp: VTypeRangeExpr::elaborate()
2016-03-07 09:54:28 +01:00
Maciej Suminski
42ead3a482
vhdlpp: Elaborate types for signals & variables.
2016-03-07 09:54:28 +01:00
Maciej Suminski
414f240694
vhdlpp: Code cleaning (std_funcs).
2016-03-07 09:54:28 +01:00
Maciej Suminski
cc729e8dd9
vhdlpp: Removed redundant ActiveScope::bind_name() for subprograms.
2016-03-07 09:54:28 +01:00
Maciej Suminski
8298c96dee
vhdlpp: Turned elaborate_argument() into a SubprogramHeader method.
2016-03-07 09:54:28 +01:00
Maciej Suminski
b707228171
vhdlpp: file_open_status enum.
2016-03-07 09:54:28 +01:00
Maciej Suminski
f2c8fb0479
vhdlpp: Display an error message when calling a function with too many arguments.
2016-03-07 09:54:28 +01:00
Maciej Suminski
3b165a5f25
vhdlpp: Skip package name emission when calling functions from the same package.
2016-03-07 09:54:28 +01:00
Maciej Suminski
f1c07b86a3
vhdlpp: Implemented ReturnStmt::elaborate() method.
2016-03-07 09:54:28 +01:00
Maciej Suminski
00f5785f2c
vhdlpp: Minor changes to write_to_stream functions.
2016-03-07 09:54:28 +01:00
Maciej Suminski
b79f0d763f
vhdlpp: Implemented ExpLogical::write_to_stream() method.
2016-03-07 09:54:28 +01:00
Maciej Suminski
daed47eb45
vhdlpp: Improved conditional assignments.
...
Now they handle expressions without the final 'else'.
2016-03-07 09:54:28 +01:00
Maciej Suminski
19a187fa90
vhdlpp: Fixed the Expression visitor code.
2016-03-07 09:54:28 +01:00
Maciej Suminski
db77fafe72
vhdlpp: Clone the initializing expression in signal declarations.
2016-03-07 09:54:28 +01:00
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