aboutsummaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/README18
-rwxr-xr-xpython/ghdl-ls4
-rw-r--r--python/libghdl/__init__.py106
-rw-r--r--python/libghdl/thin/__init__.py0
-rw-r--r--python/libghdl/thin/errorout.py38
-rw-r--r--python/libghdl/thin/errorout_console.py3
-rw-r--r--python/libghdl/thin/errorout_memory.py34
-rw-r--r--python/libghdl/thin/files_map.py43
-rw-r--r--python/libghdl/thin/files_map_editor.py12
-rw-r--r--python/libghdl/thin/flags.py14
-rw-r--r--python/libghdl/thin/libraries.py20
-rw-r--r--python/libghdl/thin/name_table.py16
-rw-r--r--python/libghdl/thin/std_names.py811
-rw-r--r--python/libghdl/thin/vhdl/__init__.py0
-rw-r--r--python/libghdl/thin/vhdl/canon.py14
-rw-r--r--python/libghdl/thin/vhdl/elocations.py66
-rw-r--r--python/libghdl/thin/vhdl/flists.py11
-rw-r--r--python/libghdl/thin/vhdl/formatters.py14
-rw-r--r--python/libghdl/thin/vhdl/ieee.py20
-rw-r--r--python/libghdl/thin/vhdl/lists.py33
-rw-r--r--python/libghdl/thin/vhdl/nodes.py3227
-rw-r--r--python/libghdl/thin/vhdl/nodes_meta.py1294
-rw-r--r--python/libghdl/thin/vhdl/nodes_utils.py13
-rw-r--r--python/libghdl/thin/vhdl/parse.py6
-rw-r--r--python/libghdl/thin/vhdl/pyutils.py416
-rw-r--r--python/libghdl/thin/vhdl/scanner.py23
-rw-r--r--python/libghdl/thin/vhdl/sem.py3
-rw-r--r--python/libghdl/thin/vhdl/sem_lib.py7
-rw-r--r--python/libghdl/thin/vhdl/std_package.py13
-rw-r--r--python/libghdl/thin/vhdl/tokens.py220
-rw-r--r--python/libghdl/version.py1
-rw-r--r--python/setup.py46
-rw-r--r--python/vhdl_langserver/__init__.py0
-rw-r--r--python/vhdl_langserver/document.py226
-rw-r--r--python/vhdl_langserver/lsp.py311
-rw-r--r--python/vhdl_langserver/lsptools.py41
-rw-r--r--python/vhdl_langserver/main.py130
-rw-r--r--python/vhdl_langserver/references.py100
-rw-r--r--python/vhdl_langserver/symbols.py177
-rw-r--r--python/vhdl_langserver/version.py1
-rw-r--r--python/vhdl_langserver/vhdl_ls.py150
-rw-r--r--python/vhdl_langserver/workspace.py499
-rwxr-xr-xpython/xtools/pnodes.py988
-rwxr-xr-xpython/xtools/pnodespy.py263
44 files changed, 0 insertions, 9432 deletions
diff --git a/python/README b/python/README
deleted file mode 100644
index c82ccc4d4..000000000
--- a/python/README
+++ /dev/null
@@ -1,18 +0,0 @@
-pyghdl is a language server for VHDL based on ghdl.
-
-It implements the Language Server Protocol.
-The server is implemented in Python (3.x) but relies on libghdl for parsing.
-
-It also provides a python interface to libghdl, which could be used to
-develop tools around the parser and analyzer.
-
-To install:
-1) First install ghdl (add --enable-python during configuration).
- This is needed so that the libraries are available
-2) In ghdl/python, install pyghdl. There is a setup.py script, so you can do:
- $ pip install .
- To install for development: pip install -e .
- Add --user to install in your home directory.
-
-The executable is named 'ghdl-ls'. It uses stdin/stdout to communicate with
-its client.
diff --git a/python/ghdl-ls b/python/ghdl-ls
deleted file mode 100755
index 2fa44dcaa..000000000
--- a/python/ghdl-ls
+++ /dev/null
@@ -1,4 +0,0 @@
-#! /usr/bin/env python3
-import vhdl_langserver.main as main
-
-main.main()
diff --git a/python/libghdl/__init__.py b/python/libghdl/__init__.py
deleted file mode 100644
index 4ba7b6b26..000000000
--- a/python/libghdl/__init__.py
+++ /dev/null
@@ -1,106 +0,0 @@
-import ctypes
-import os
-import sys
-from os.path import dirname, join, exists, normpath
-from shutil import which
-from libghdl.version import __version__
-
-
-def _to_char_p(arg):
- return ctypes.c_char_p(arg), len(arg)
-
-
-def _get_libghdl_name():
- """Get the name of the libghdl library (with version and extension)"""
- ver = __version__.replace("-", "_").replace(".", "_")
- ext = {"win32": "dll", "cygwin": "dll", "darwin": "dylib"}.get(sys.platform, "so")
- return "libghdl-" + ver + "." + ext
-
-
-def _check_libghdl_libdir(libdir, basename):
- """Return libghdl path in :param libdir" if found or None"""
- if libdir is None:
- return None
- # print('libghdl: check in {}'.format(libdir))
- res = join(libdir, basename)
- if exists(res):
- return res
- return None
-
-
-def _check_libghdl_bindir(bindir, basename):
- if bindir is None:
- return None
- return _check_libghdl_libdir(normpath(join(bindir, "..", "lib")), basename)
-
-
-def _get_libghdl_path():
- """Locate the directory where the shared library is"""
- basename = _get_libghdl_name()
- # Try GHDL_PREFIX
- r = os.environ.get("GHDL_PREFIX")
- if r is not None:
- # GHDL_PREFIX is the prefix of the vhdl libraries, so remove the
- # last path component.
- r = _check_libghdl_libdir(dirname(r), basename)
- if r is not None:
- return r
- # Try VUNIT_GHDL_PATH (path of the ghdl binary when using VUnit).
- r = _check_libghdl_bindir(os.environ.get("VUNIT_GHDL_PATH"), basename)
- if r is not None:
- return r
- # Try GHDL (name/path of the ghdl binary)
- r = os.environ.get("GHDL", "ghdl")
- r = which(r)
- if r is not None:
- r = _check_libghdl_bindir(dirname(r), basename)
- if r is not None:
- return r
- # Try within libghdl/ python installation
- r = __file__
- r = _check_libghdl_bindir(dirname(r), basename)
- if r is not None:
- return r
- # Try when running from the build directory
- r = normpath(join(dirname(__file__), "..", "..", "lib"))
- r = _check_libghdl_libdir(r, basename)
- if r is not None:
- return r
- # Failed.
- raise Exception("Cannot find libghdl {}".format(basename))
-
-
-# Load the shared library
-_libghdl_path = _get_libghdl_path()
-# print("Load {}".format(_libghdl_path))
-libghdl = ctypes.CDLL(_libghdl_path)
-
-# Initialize it.
-libghdl.libghdl_init()
-libghdl.libghdl__set_hooks_for_analysis()
-
-# Set the prefix in order to locate the vhdl libraries.
-libghdl.libghdl__set_exec_prefix(
- *_to_char_p(dirname(dirname(_libghdl_path)).encode("utf-8"))
-)
-
-
-def set_option(opt):
- "Set option OPT. Return true iff the option is known and handled"
- return libghdl.libghdl__set_option(*_to_char_p(opt)) == 0
-
-
-def analyze_init():
- # Deprecated as it may raise an exception. Use analyze_init_status
- libghdl.libghdl__analyze_init()
-
-def analyze_init_status():
- # Return 0 in case of success
- return libghdl.libghdl__analyze_init_status()
-
-def analyze_file(fname):
- return libghdl.libghdl__analyze_file(*_to_char_p(fname))
-
-
-def disp_config():
- return libghdl.ghdllocal__disp_config_prefixes()
diff --git a/python/libghdl/thin/__init__.py b/python/libghdl/thin/__init__.py
deleted file mode 100644
index e69de29bb..000000000
--- a/python/libghdl/thin/__init__.py
+++ /dev/null
diff --git a/python/libghdl/thin/errorout.py b/python/libghdl/thin/errorout.py
deleted file mode 100644
index af0da5fc6..000000000
--- a/python/libghdl/thin/errorout.py
+++ /dev/null
@@ -1,38 +0,0 @@
-from libghdl import libghdl
-
-Enable_Warning = libghdl.errorout__enable_warning
-
-
-class Msgid:
- Msgid_Note = 0
- Warnid_Library = 1
- Warnid_Deprecated_Option = 2
- Warnid_Unexpected_Option = 3
- Warnid_Missing_Xref = 4
- Warnid_Default_Binding = 5
- Warnid_Binding = 6
- Warnid_Port = 7
- Warnid_Reserved_Word = 8
- Warnid_Pragma = 9
- Warnid_Nested_Comment = 10
- Warnid_Directive = 11
- Warnid_Parenthesis = 12
- Warnid_Vital_Generic = 13
- Warnid_Delayed_Checks = 14
- Warnid_Body = 15
- Warnid_Specs = 16
- Warnid_Universal = 17
- Warnid_Port_Bounds = 18
- Warnid_Runtime_Error = 19
- Warnid_Delta_Cycle = 20
- Warnid_Shared = 21
- Warnid_Hide = 22
- Warnid_Unused = 23
- Warnid_Others = 24
- Warnid_Pure = 25
- Warnid_Analyze_Assert = 26
- Warnid_Attribute = 27
- Warnid_Static = 28
- Msgid_Warning = 29
- Msgid_Error = 30
- Msgid_Fatal = 31
diff --git a/python/libghdl/thin/errorout_console.py b/python/libghdl/thin/errorout_console.py
deleted file mode 100644
index 877165b70..000000000
--- a/python/libghdl/thin/errorout_console.py
+++ /dev/null
@@ -1,3 +0,0 @@
-from libghdl import libghdl
-
-Install_Handler = libghdl.errorout__console__install_handler
diff --git a/python/libghdl/thin/errorout_memory.py b/python/libghdl/thin/errorout_memory.py
deleted file mode 100644
index f236f1075..000000000
--- a/python/libghdl/thin/errorout_memory.py
+++ /dev/null
@@ -1,34 +0,0 @@
-from libghdl import libghdl
-from ctypes import c_int8, c_int32, c_char_p, Structure
-
-
-class Error_Message(Structure):
- _fields_ = [
- ("id", c_int8),
- ("group", c_int8),
- ("file", c_int32),
- ("line", c_int32),
- ("offset", c_int32),
- ("length", c_int32),
- ]
-
-
-# Values for group:
-Msg_Single = 0
-Msg_Main = 1
-Msg_Related = 2
-Msg_Last = 3
-
-Install_Handler = libghdl.errorout__memory__install_handler
-
-Get_Nbr_Messages = libghdl.errorout__memory__get_nbr_messages
-
-Get_Error_Record = libghdl.errorout__memory__get_error_record
-Get_Error_Record.argstypes = [c_int32]
-Get_Error_Record.restype = Error_Message
-
-Get_Error_Message = libghdl.errorout__memory__get_error_message_addr
-Get_Error_Message.argstype = [c_int32]
-Get_Error_Message.restype = c_char_p
-
-Clear_Errors = libghdl.errorout__memory__clear_errors
diff --git a/python/libghdl/thin/files_map.py b/python/libghdl/thin/files_map.py
deleted file mode 100644
index d27209e7a..000000000
--- a/python/libghdl/thin/files_map.py
+++ /dev/null
@@ -1,43 +0,0 @@
-from libghdl import libghdl
-from ctypes import c_void_p
-
-EOT = b"\x04"
-
-No_Source_File_Entry = 0
-
-No_Location = 0
-
-Location_To_File = libghdl.files_map__location_to_file
-
-Location_File_To_Pos = libghdl.files_map__location_file_to_pos
-
-Location_File_To_Line = libghdl.files_map__location_file_to_line
-
-Location_File_Line_To_Offset = libghdl.files_map__location_file_line_to_offset
-
-Location_File_Line_To_Col = libghdl.files_map__location_file_line_to_col
-
-File_To_Location = libghdl.files_map__file_to_location
-
-File_Pos_To_Location = libghdl.files_map__file_pos_to_location
-
-File_Line_To_Position = libghdl.files_map__file_line_to_position
-
-Get_File_Name = libghdl.files_map__get_file_name
-
-Get_Directory_Name = libghdl.files_map__get_directory_name
-
-Get_File_Buffer = libghdl.files_map__get_file_buffer
-Get_File_Buffer.restype = c_void_p
-
-Get_File_Length = libghdl.files_map__get_file_length
-Set_File_Length = libghdl.files_map__set_file_length
-
-Read_Source_File = libghdl.files_map__read_source_file
-
-Reserve_Source_File = libghdl.files_map__reserve_source_file
-
-Discard_Source_File = libghdl.files_map__discard_source_file
-Free_Source_File = libghdl.files_map__free_source_file
-
-Get_Last_Source_File_Entry = libghdl.files_map__get_last_source_file_entry
diff --git a/python/libghdl/thin/files_map_editor.py b/python/libghdl/thin/files_map_editor.py
deleted file mode 100644
index bf9492786..000000000
--- a/python/libghdl/thin/files_map_editor.py
+++ /dev/null
@@ -1,12 +0,0 @@
-from ctypes import c_int32, c_char_p, c_bool
-from libghdl import libghdl
-
-Replace_Text = libghdl.files_map__editor__replace_text_ptr
-Replace_Text.argstype = [c_int32, c_int32, c_int32, c_int32, c_char_p, c_int32]
-Replace_Text.restype = c_bool
-
-Fill_Text = libghdl.files_map__editor__fill_text_ptr
-
-Check_Buffer_Content = libghdl.files_map__editor__check_buffer_content
-
-Copy_Source_File = libghdl.files_map__editor__copy_source_file
diff --git a/python/libghdl/thin/flags.py b/python/libghdl/thin/flags.py
deleted file mode 100644
index 3a82950a0..000000000
--- a/python/libghdl/thin/flags.py
+++ /dev/null
@@ -1,14 +0,0 @@
-from libghdl import libghdl
-from ctypes import c_bool, sizeof
-
-assert sizeof(c_bool) == 1
-
-Flag_Elocations = c_bool.in_dll(libghdl, "flags__flag_elocations")
-
-Verbose = c_bool.in_dll(libghdl, "flags__verbose")
-
-Flag_Elaborate_With_Outdated = c_bool.in_dll(
- libghdl, "flags__flag_elaborate_with_outdated"
-)
-
-Flag_Force_Analysis = c_bool.in_dll(libghdl, "flags__flag_force_analysis")
diff --git a/python/libghdl/thin/libraries.py b/python/libghdl/thin/libraries.py
deleted file mode 100644
index 625f7fdd1..000000000
--- a/python/libghdl/thin/libraries.py
+++ /dev/null
@@ -1,20 +0,0 @@
-from libghdl import libghdl
-from ctypes import c_int32
-
-Get_Libraries_Chain = libghdl.libraries__get_libraries_chain
-
-Add_Design_Unit_Into_Library = libghdl.libraries__add_design_unit_into_library
-
-# Use .value
-Library_Location = c_int32.in_dll(libghdl, "libraries__library_location")
-
-# Use .value
-Work_Library = c_int32.in_dll(libghdl, "libraries__work_library")
-
-Purge_Design_File = libghdl.libraries__purge_design_file
-
-Find_Entity_For_Component = libghdl.libraries__find_entity_for_component
-
-Get_Library_No_Create = libghdl.libraries__get_library_no_create
-
-Find_Primary_Unit = libghdl.libraries__find_primary_unit
diff --git a/python/libghdl/thin/name_table.py b/python/libghdl/thin/name_table.py
deleted file mode 100644
index c41973ec1..000000000
--- a/python/libghdl/thin/name_table.py
+++ /dev/null
@@ -1,16 +0,0 @@
-from libghdl import libghdl
-from ctypes import c_char_p
-
-Get_Name_Length = libghdl.name_table__get_name_length
-
-Get_Name_Ptr = libghdl.name_table__get_name_ptr
-Get_Name_Ptr.restype = c_char_p
-
-_Get_Identifier_With_Len = libghdl.name_table__get_identifier_with_len
-
-
-def Get_Identifier(s):
- return _Get_Identifier_With_Len(c_char_p(s), len(s))
-
-
-Null_Identifier = 0
diff --git a/python/libghdl/thin/std_names.py b/python/libghdl/thin/std_names.py
deleted file mode 100644
index 540d37c33..000000000
--- a/python/libghdl/thin/std_names.py
+++ /dev/null
@@ -1,811 +0,0 @@
-class Name:
- First_Character = 1
- Last_Character = 256
- First_Keyword = 257
- Mod = 257
- Rem = 258
- Abs = 259
- Not = 260
- Access = 261
- After = 262
- Alias = 263
- All = 264
- Architecture = 265
- Array = 266
- Assert = 267
- Attribute = 268
- Begin = 269
- Block = 270
- Body = 271
- Buffer = 272
- Bus = 273
- Case = 274
- Component = 275
- Configuration = 276
- Constant = 277
- Disconnect = 278
- Downto = 279
- Else = 280
- Elsif = 281
- End = 282
- Entity = 283
- Exit = 284
- File = 285
- For = 286
- Function = 287
- Generate = 288
- Generic = 289
- Guarded = 290
- If = 291
- In = 292
- Inout = 293
- Is = 294
- Label = 295
- Library = 296
- Linkage = 297
- Loop = 298
- Map = 299
- New = 300
- Next = 301
- Null = 302
- Of = 303
- On = 304
- Open = 305
- Others = 306
- Out = 307
- Package = 308
- Port = 309
- Procedure = 310
- Process = 311
- Range = 312
- Record = 313
- Register = 314
- Report = 315
- Return = 316
- Select = 317
- Severity = 318
- Signal = 319
- Subtype = 320
- Then = 321
- To = 322
- Transport = 323
- Type = 324
- Units = 325
- Until = 326
- Use = 327
- Variable = 328
- Wait = 329
- When = 330
- While = 331
- With = 332
- And = 333
- Or = 334
- Xor = 335
- Nand = 336
- Nor = 337
- Last_Vhdl87 = 337
- Xnor = 338
- Group = 339
- Impure = 340
- Inertial = 341
- Literal = 342
- Postponed = 343
- Pure = 344
- Reject = 345
- Shared = 346
- Unaffected = 347
- Sll = 348
- Sla = 349
- Sra = 350
- Srl = 351
- Rol = 352
- Ror = 353
- Last_Vhdl93 = 353
- Protected = 354
- Last_Vhdl00 = 354
- Assume = 355
- Context = 356
- Cover = 357
- Default = 358
- Force = 359
- Parameter = 360
- Property = 361
- Release = 362
- Restrict = 363
- Restrict_Guarantee = 364
- Sequence = 365
- Vmode = 366
- Vprop = 367
- Vunit = 368
- Last_Vhdl08 = 368
- First_Ams_Keyword = 369
- Across = 369
- Break = 370
- Limit = 371
- Nature = 372
- Noise = 373
- Procedural = 374
- Quantity = 375
- Reference = 376
- Spectrum = 377
- Subnature = 378
- Terminal = 379
- Through = 380
- Tolerance = 381
- Last_AMS_Vhdl = 381
- Last_Keyword = 381
- First_Verilog = 382
- Always = 382
- Assign = 383
- Buf = 384
- Bufif0 = 385
- Bufif1 = 386
- Casex = 387
- Casez = 388
- Cmos = 389
- Deassign = 390
- Defparam = 391
- Disable = 392
- Edge = 393
- Endcase = 394
- Endfunction = 395
- Endmodule = 396
- Endprimitive = 397
- Endspecify = 398
- Endtable = 399
- Endtask = 400
- Forever = 401
- Fork = 402
- Highz0 = 403
- Highz1 = 404
- Ifnone = 405
- Initial = 406
- Input = 407
- Join = 408
- Large = 409
- Macromodule = 410
- Medium = 411
- Module = 412
- Negedge = 413
- Nmos = 414
- Notif0 = 415
- Notif1 = 416
- Output = 417
- Pmos = 418
- Posedge = 419
- Primitive = 420
- Pull0 = 421
- Pull1 = 422
- Pulldown = 423
- Pullup = 424
- Realtime = 425
- Reg = 426
- Repeat = 427
- Rcmos = 428
- Rnmos = 429
- Rpmos = 430
- Rtran = 431
- Rtranif0 = 432
- Rtranif1 = 433
- Scalared = 434
- Small = 435
- Specify = 436
- Specparam = 437
- Strong0 = 438
- Strong1 = 439
- Supply0 = 440
- Supply1 = 441
- Tablex = 442
- Task = 443
- Tran = 444
- Tranif0 = 445
- Tranif1 = 446
- Tri = 447
- Tri0 = 448
- Tri1 = 449
- Triand = 450
- Trior = 451
- Trireg = 452
- Vectored = 453
- Wand = 454
- Weak0 = 455
- Weak1 = 456
- Wire = 457
- Wor = 458
- Last_Verilog = 458
- First_V2001 = 459
- Automatic = 459
- Endgenerate = 460
- Genvar = 461
- Localparam = 462
- Unsigned = 463
- Signed = 464
- Last_V2001 = 464
- Uwire = 465
- First_SV3_0 = 466
- Always_Comb = 466
- Always_Ff = 467
- Always_Latch = 468
- Bit = 469
- Byte = 470
- Changed = 471
- Char = 472
- Const = 473
- Continue = 474
- Do = 475
- Endinterface = 476
- Endtransition = 477
- Enum = 478
- Export = 479
- Extern = 480
- Forkjoin = 481
- Iff = 482
- Import = 483
- Int = 484
- Interface = 485
- Logic = 486
- Longint = 487
- Longreal = 488
- Modport = 489
- Packed = 490
- Priority = 491
- Shortint = 492
- Shortreal = 493
- Static = 494
- Struct = 495
- Timeprecision = 496
- Timeunit = 497
- Transition = 498
- Typedef = 499
- Union = 500
- Unique = 501
- Unique0 = 502
- Void = 503
- Last_SV3_0 = 503
- First_SV3_1 = 504
- Chandle = 504
- Class = 505
- Clocking = 506
- Constraint = 507
- Dist = 508
- Endclass = 509
- Endclocking = 510
- Endprogram = 511
- Endproperty = 512
- Endsequence = 513
- Extends = 514
- Final = 515
- First_Match = 516
- Inside = 517
- Intersect = 518
- Join_Any = 519
- Join_None = 520
- Local = 521
- Program = 522
- Rand = 523
- Randc = 524
- Ref = 525
- Solve = 526
- String = 527
- Super = 528
- This = 529
- Throughout = 530
- Var = 531
- Virtual = 532
- Wait_Order = 533
- Last_SV3_1 = 533
- First_SV3_1a = 534
- Covergroup = 534
- Coverpoint = 535
- Endgroup = 536
- Endpackage = 537
- Expect = 538
- Foreach = 539
- Ignore_Bins = 540
- Illegal_Bins = 541
- Matches = 542
- Randcase = 543
- Randsequence = 544
- Tagged = 545
- Wildcard = 546
- Last_SV3_1a = 546
- First_SV2009 = 547
- Implies = 547
- S_Until = 548
- S_Until_With = 549
- Until_With = 550
- Last_SV2009 = 550
- First_Operator = 551
- Op_Equality = 551
- Op_Inequality = 552
- Op_Less = 553
- Op_Less_Equal = 554
- Op_Greater = 555
- Op_Greater_Equal = 556
- Op_Plus = 557
- Op_Minus = 558
- Op_Mul = 559
- Op_Div = 560
- Op_Exp = 561
- Op_Concatenation = 562
- Op_Condition = 563
- Op_Match_Equality = 564
- Op_Match_Inequality = 565
- Op_Match_Less = 566
- Op_Match_Less_Equal = 567
- Op_Match_Greater = 568
- Op_Match_Greater_Equal = 569
- Last_Operator = 569
- First_Attribute = 570
- Base = 570
- Left = 571
- Right = 572
- High = 573
- Low = 574
- Pos = 575
- Val = 576
- Succ = 577
- Pred = 578
- Leftof = 579
- Rightof = 580
- Reverse_Range = 581
- Length = 582
- Delayed = 583
- Stable = 584
- Quiet = 585
- Transaction = 586
- Event = 587
- Active = 588
- Last_Event = 589
- Last_Active = 590
- Last_Value = 591
- Last_Attribute = 591
- First_Vhdl87_Attribute = 592
- Behavior = 592
- Structure = 593
- Last_Vhdl87_Attribute = 593
- First_Vhdl93_Attribute = 594
- Ascending = 594
- Image = 595
- Value = 596
- Driving = 597
- Driving_Value = 598
- Simple_Name = 599
- Instance_Name = 600
- Path_Name = 601
- Last_Vhdl93_Attribute = 601
- First_Vhdl08_Attribute = 602
- Element = 602
- Last_Vhdl08_Attribute = 602
- First_AMS_Attribute = 603
- Contribution = 603
- Dot = 604
- Integ = 605
- Above = 606
- Zoh = 607
- Ltf = 608
- Ztf = 609
- Ramp = 610
- Slew = 611
- Last_AMS_Attribute = 611
- First_Standard = 612
- Std = 612
- Standard = 613
- Boolean = 614
- NFalse = 615
- NTrue = 616
- Character = 617
- Severity_Level = 618
- Note = 619
- Warning = 620
- Error = 621
- Failure = 622
- Universal_Integer = 623
- Universal_Real = 624
- Convertible_Integer = 625
- Convertible_Real = 626
- Integer = 627
- Real = 628
- Time = 629
- Fs = 630
- Ps = 631
- Ns = 632
- Us = 633
- Ms = 634
- Sec = 635
- Min = 636
- Hr = 637
- Max = 638
- Delay_Length = 639
- Now = 640
- Natural = 641
- Positive = 642
- Bit_Vector = 643
- File_Open_Kind = 644
- Read_Mode = 645
- Write_Mode = 646
- Append_Mode = 647
- File_Open_Status = 648
- Open_Ok = 649
- Status_Error = 650
- Name_Error = 651
- Mode_Error = 652
- Foreign = 653
- Boolean_Vector = 654
- To_Bstring = 655
- To_Binary_String = 656
- To_Ostring = 657
- To_Octal_String = 658
- To_Hstring = 659
- To_Hex_String = 660
- Integer_Vector = 661
- Real_Vector = 662
- Time_Vector = 663
- Digits = 664
- Format = 665
- Unit = 666
- Domain_Type = 667
- Quiescent_Domain = 668
- Time_Domain = 669
- Frequency_Domain = 670
- Domain = 671
- Frequency = 672
- Last_Standard = 672
- First_Charname = 673
- Nul = 673
- Soh = 674
- Stx = 675
- Etx = 676
- Eot = 677
- Enq = 678
- Ack = 679
- Bel = 680
- Bs = 681
- Ht = 682
- Lf = 683
- Vt = 684
- Ff = 685
- Cr = 686
- So = 687
- Si = 688
- Dle = 689
- Dc1 = 690
- Dc2 = 691
- Dc3 = 692
- Dc4 = 693
- Nak = 694
- Syn = 695
- Etb = 696
- Can = 697
- Em = 698
- Sub = 699
- Esc = 700
- Fsp = 701
- Gsp = 702
- Rsp = 703
- Usp = 704
- Del = 705
- C128 = 706
- C129 = 707
- C130 = 708
- C131 = 709
- C132 = 710
- C133 = 711
- C134 = 712
- C135 = 713
- C136 = 714
- C137 = 715
- C138 = 716
- C139 = 717
- C140 = 718
- C141 = 719
- C142 = 720
- C143 = 721
- C144 = 722
- C145 = 723
- C146 = 724
- C147 = 725
- C148 = 726
- C149 = 727
- C150 = 728
- C151 = 729
- C152 = 730
- C153 = 731
- C154 = 732
- C155 = 733
- C156 = 734
- C157 = 735
- C158 = 736
- C159 = 737
- Last_Charname = 737
- First_Misc = 738
- Guard = 738
- Deallocate = 739
- File_Open = 740
- File_Close = 741
- Read = 742
- Write = 743
- Flush = 744
- Endfile = 745
- I = 746
- J = 747
- F = 748
- L = 749
- P = 750
- R = 751
- S = 752
- V = 753
- External_Name = 754
- Open_Kind = 755
- First = 756
- Last = 757
- Textio = 758
- Work = 759
- Text = 760
- To_String = 761
- Minimum = 762
- Maximum = 763
- Untruncated_Text_Read = 764
- Textio_Read_Real = 765
- Textio_Write_Real = 766
- Get_Resolution_Limit = 767
- Control_Simulation = 768
- Step = 769
- Index = 770
- Item = 771
- Uu_File_Uu = 772
- Uu_Line_Uu = 773
- Label_Applies_To = 774
- Return_Port_Name = 775
- Map_To_Operator = 776
- Type_Function = 777
- Built_In = 778
- NNone = 779
- Last_Misc = 779
- First_Ieee_Pkg = 780
- Ieee = 780
- Std_Logic_1164 = 781
- VITAL_Timing = 782
- Numeric_Std = 783
- Numeric_Bit = 784
- Std_Logic_Arith = 785
- Std_Logic_Signed = 786
- Std_Logic_Unsigned = 787
- Std_Logic_Textio = 788
- Std_Logic_Misc = 789
- Math_Real = 790
- Last_Ieee_Pkg = 790
- First_Ieee_Name = 791
- Std_Ulogic = 791
- Std_Ulogic_Vector = 792
- Std_Logic = 793
- Std_Logic_Vector = 794
- Rising_Edge = 795
- Falling_Edge = 796
- VITAL_Level0 = 797
- VITAL_Level1 = 798
- Unresolved_Unsigned = 799
- Unresolved_Signed = 800
- To_Integer = 801
- To_Unsigned = 802
- To_Signed = 803
- Resize = 804
- Std_Match = 805
- Shift_Left = 806
- Shift_Right = 807
- Rotate_Left = 808
- Rotate_Right = 809
- To_Bit = 810
- To_Bitvector = 811
- To_Stdulogic = 812
- To_Stdlogicvector = 813
- To_Stdulogicvector = 814
- Is_X = 815
- To_01 = 816
- To_X01 = 817
- To_X01Z = 818
- To_UX01 = 819
- Conv_Signed = 820
- Conv_Unsigned = 821
- Conv_Integer = 822
- Conv_Std_Logic_Vector = 823
- And_Reduce = 824
- Nand_Reduce = 825
- Or_Reduce = 826
- Nor_Reduce = 827
- Xor_Reduce = 828
- Xnor_Reduce = 829
- Ceil = 830
- Floor = 831
- Round = 832
- Log2 = 833
- Sin = 834
- Cos = 835
- Shl = 836
- Shr = 837
- Ext = 838
- Sxt = 839
- Find_Leftmost = 840
- Find_Rightmost = 841
- Last_Ieee_Name = 841
- First_Synthesis = 842
- Allconst = 842
- Allseq = 843
- Anyconst = 844
- Anyseq = 845
- Last_Synthesis = 845
- First_Directive = 846
- Define = 846
- Endif = 847
- Ifdef = 848
- Ifndef = 849
- Include = 850
- Timescale = 851
- Undef = 852
- Protect = 853
- Begin_Protected = 854
- End_Protected = 855
- Key_Block = 856
- Data_Block = 857
- Line = 858
- Celldefine = 859
- Endcelldefine = 860
- Default_Nettype = 861
- Resetall = 862
- Last_Directive = 862
- First_Systask = 863
- Bits = 863
- D_Root = 864
- D_Unit = 865
- Last_Systask = 865
- First_SV_Method = 866
- Size = 866
- Insert = 867
- Delete = 868
- Pop_Front = 869
- Pop_Back = 870
- Push_Front = 871
- Push_Back = 872
- Name = 873
- Len = 874
- Substr = 875
- Exists = 876
- Atoi = 877
- Itoa = 878
- Find = 879
- Find_Index = 880
- Find_First = 881
- Find_First_Index = 882
- Find_Last = 883
- Find_Last_Index = 884
- Num = 885
- Randomize = 886
- Pre_Randomize = 887
- Post_Randomize = 888
- Srandom = 889
- Get_Randstate = 890
- Set_Randstate = 891
- Seed = 892
- State = 893
- Last_SV_Method = 893
- First_BSV = 894
- uAction = 894
- uActionValue = 895
- BVI = 896
- uC = 897
- uCF = 898
- uE = 899
- uSB = 900
- uSBR = 901
- Action = 902
- Endaction = 903
- Actionvalue = 904
- Endactionvalue = 905
- Ancestor = 906
- Clocked_By = 907
- Default_Clock = 908
- Default_Reset = 909
- Dependencies = 910
- Deriving = 911
- Determines = 912
- Enable = 913
- Ifc_Inout = 914
- Input_Clock = 915
- Input_Reset = 916
- Instance = 917
- Endinstance = 918
- Let = 919
- Match = 920
- Method = 921
- Endmethod = 922
- Numeric = 923
- Output_Clock = 924
- Output_Reset = 925
- Par = 926
- Endpar = 927
- Path = 928
- Provisos = 929
- Ready = 930
- Reset_By = 931
- Rule = 932
- Endrule = 933
- Rules = 934
- Endrules = 935
- Same_Family = 936
- Schedule = 937
- Seq = 938
- Endseq = 939
- Typeclass = 940
- Endtypeclass = 941
- Valueof = 942
- uValueof = 943
- Last_BSV = 943
- First_Comment = 944
- Psl = 944
- Pragma = 945
- Synthesis = 946
- Synopsys = 947
- Translate_Off = 948
- Translate_On = 949
- Translate = 950
- Synthesis_Off = 951
- Synthesis_On = 952
- Off = 953
- Last_Comment = 953
- First_PSL = 954
- A = 954
- Af = 955
- Ag = 956
- Ax = 957
- Abort = 958
- Assume_Guarantee = 959
- Before = 960
- Clock = 961
- E = 962
- Ef = 963
- Eg = 964
- Ex = 965
- Endpoint = 966
- Eventually = 967
- Fairness = 968
- Fell = 969
- Forall = 970
- G = 971
- Inf = 972
- Inherit = 973
- Never = 974
- Next_A = 975
- Next_E = 976
- Next_Event = 977
- Next_Event_A = 978
- Next_Event_E = 979
- Prev = 980
- Rose = 981
- Strong = 982
- W = 983
- Whilenot = 984
- Within = 985
- X = 986
- Last_PSL = 986
- First_Edif = 987
- Celltype = 997
- View = 998
- Viewtype = 999
- Direction = 1000
- Contents = 1001
- Net = 1002
- Viewref = 1003
- Cellref = 1004
- Libraryref = 1005
- Portinstance = 1006
- Joined = 1007
- Portref = 1008
- Instanceref = 1009
- Design = 1010
- Designator = 1011
- Owner = 1012
- Member = 1013
- Number = 1014
- Rename = 1015
- Userdata = 1016
- Last_Edif = 1016
diff --git a/python/libghdl/thin/vhdl/__init__.py b/python/libghdl/thin/vhdl/__init__.py
deleted file mode 100644
index e69de29bb..000000000
--- a/python/libghdl/thin/vhdl/__init__.py
+++ /dev/null
diff --git a/python/libghdl/thin/vhdl/canon.py b/python/libghdl/thin/vhdl/canon.py
deleted file mode 100644
index 7893cf3ff..000000000
--- a/python/libghdl/thin/vhdl/canon.py
+++ /dev/null
@@ -1,14 +0,0 @@
-from libghdl import libghdl
-from ctypes import c_bool
-
-Flag_Concurrent_Stmts = c_bool.in_dll(
- libghdl, "vhdl__canon__canon_flag_concurrent_stmts"
-)
-
-Flag_Configurations = c_bool.in_dll(libghdl, "vhdl__canon__canon_flag_configurations")
-
-Flag_Associations = c_bool.in_dll(libghdl, "vhdl__canon__canon_flag_associations")
-
-# Extract_Sequential_Statement_Chain_Sensitivity = (
-# libghdl.vhdl__canon__canon_extract_sequential_statement_chain_sensitivity
-# )
diff --git a/python/libghdl/thin/vhdl/elocations.py b/python/libghdl/thin/vhdl/elocations.py
deleted file mode 100644
index 87d87b731..000000000
--- a/python/libghdl/thin/vhdl/elocations.py
+++ /dev/null
@@ -1,66 +0,0 @@
-from libghdl import libghdl
-
-
-Get_Start_Location = libghdl.vhdl__elocations__get_start_location
-
-Set_Start_Location = libghdl.vhdl__elocations__set_start_location
-
-Get_Right_Paren_Location = libghdl.vhdl__elocations__get_right_paren_location
-
-Set_Right_Paren_Location = libghdl.vhdl__elocations__set_right_paren_location
-
-Get_End_Location = libghdl.vhdl__elocations__get_end_location
-
-Set_End_Location = libghdl.vhdl__elocations__set_end_location
-
-Get_Is_Location = libghdl.vhdl__elocations__get_is_location
-
-Set_Is_Location = libghdl.vhdl__elocations__set_is_location
-
-Get_Begin_Location = libghdl.vhdl__elocations__get_begin_location
-
-Set_Begin_Location = libghdl.vhdl__elocations__set_begin_location
-
-Get_Then_Location = libghdl.vhdl__elocations__get_then_location
-
-Set_Then_Location = libghdl.vhdl__elocations__set_then_location
-
-Get_Use_Location = libghdl.vhdl__elocations__get_use_location
-
-Set_Use_Location = libghdl.vhdl__elocations__set_use_location
-
-Get_Loop_Location = libghdl.vhdl__elocations__get_loop_location
-
-Set_Loop_Location = libghdl.vhdl__elocations__set_loop_location
-
-Get_Generate_Location = libghdl.vhdl__elocations__get_generate_location
-
-Set_Generate_Location = libghdl.vhdl__elocations__set_generate_location
-
-Get_Generic_Location = libghdl.vhdl__elocations__get_generic_location
-
-Set_Generic_Location = libghdl.vhdl__elocations__set_generic_location
-
-Get_Port_Location = libghdl.vhdl__elocations__get_port_location
-
-Set_Port_Location = libghdl.vhdl__elocations__set_port_location
-
-Get_Generic_Map_Location = libghdl.vhdl__elocations__get_generic_map_location
-
-Set_Generic_Map_Location = libghdl.vhdl__elocations__set_generic_map_location
-
-Get_Port_Map_Location = libghdl.vhdl__elocations__get_port_map_location
-
-Set_Port_Map_Location = libghdl.vhdl__elocations__set_port_map_location
-
-Get_Arrow_Location = libghdl.vhdl__elocations__get_arrow_location
-
-Set_Arrow_Location = libghdl.vhdl__elocations__set_arrow_location
-
-Get_Colon_Location = libghdl.vhdl__elocations__get_colon_location
-
-Set_Colon_Location = libghdl.vhdl__elocations__set_colon_location
-
-Get_Assign_Location = libghdl.vhdl__elocations__get_assign_location
-
-Set_Assign_Location = libghdl.vhdl__elocations__set_assign_location
diff --git a/python/libghdl/thin/vhdl/flists.py b/python/libghdl/thin/vhdl/flists.py
deleted file mode 100644
index 6cdd39ff3..000000000
--- a/python/libghdl/thin/vhdl/flists.py
+++ /dev/null
@@ -1,11 +0,0 @@
-from libghdl import libghdl
-from ctypes import c_int32
-
-Flist_Type = c_int32
-
-Ffirst = 0
-Flast = libghdl.vhdl__flists__flast
-
-Length = libghdl.vhdl__flists__length
-
-Get_Nth_Element = libghdl.vhdl__flists__get_nth_element
diff --git a/python/libghdl/thin/vhdl/formatters.py b/python/libghdl/thin/vhdl/formatters.py
deleted file mode 100644
index 9c8bf9afb..000000000
--- a/python/libghdl/thin/vhdl/formatters.py
+++ /dev/null
@@ -1,14 +0,0 @@
-from libghdl import libghdl
-from ctypes import c_int32, c_char_p
-
-Indent_String = libghdl.vhdl__formatters__indent_string
-
-Allocate_Handle = libghdl.vhdl__formatters__allocate_handle
-
-Get_Length = libghdl.vhdl__formatters__get_length
-Get_Length.restype = c_int32
-
-Get_C_String = libghdl.vhdl__formatters__get_c_string
-Get_C_String.restype = c_char_p
-
-Free_Handle = libghdl.vhdl__formatters__free_handle
diff --git a/python/libghdl/thin/vhdl/ieee.py b/python/libghdl/thin/vhdl/ieee.py
deleted file mode 100644
index 35db1a631..000000000
--- a/python/libghdl/thin/vhdl/ieee.py
+++ /dev/null
@@ -1,20 +0,0 @@
-from libghdl import libghdl
-from ctypes import c_int
-
-Std_Logic_1164_Pkg = c_int.in_dll(
- libghdl, "vhdl__ieee__std_logic_1164__std_logic_1164_pkg"
-)
-
-# Get value
-Std_Logic_Type = c_int.in_dll(libghdl, "vhdl__ieee__std_logic_1164__std_logic_type")
-
-# Get value
-Std_Logic_Vector_Type = c_int.in_dll(
- libghdl, "vhdl__ieee__std_logic_1164__std_logic_vector_type"
-)
-
-# Get value
-# Rising_Edge = c_int.in_dll(libghdl, "vhdl__ieee__std_logic_1164__rising_edge")
-
-# Get value
-# Falling_Edge = c_int.in_dll(libghdl, "vhdl__ieee__std_logic_1164__falling_edge")
diff --git a/python/libghdl/thin/vhdl/lists.py b/python/libghdl/thin/vhdl/lists.py
deleted file mode 100644
index bcaecb89b..000000000
--- a/python/libghdl/thin/vhdl/lists.py
+++ /dev/null
@@ -1,33 +0,0 @@
-from libghdl import libghdl
-from ctypes import c_int32, c_bool, POINTER, Structure
-
-List_Type = c_int32
-
-
-class Iterator(Structure):
- _fields_ = [("chunk", c_int32), ("chunk_idx", c_int32), ("remain", c_int32)]
-
-
-Iterate = libghdl.vhdl__lists__iterate
-Iterate.argstype = [List_Type]
-Iterate.restype = Iterator
-
-Is_Valid = libghdl.vhdl__lists__is_valid
-Is_Valid.argstype = [POINTER(Iterator)]
-Is_Valid.restype = c_bool
-
-Next = libghdl.vhdl__lists__next
-Next.argstype = [POINTER(Iterator)]
-Next.restype = None
-
-Get_Element = libghdl.vhdl__lists__get_element
-Get_Element.argstype = [POINTER(Iterator)]
-Get_Element.restype = c_int32
-
-Get_Nbr_Elements = libghdl.vhdl__lists__get_nbr_elements
-Get_Nbr_Elements.argtype = [List_Type]
-Get_Nbr_Elements.restype = c_int32
-
-Create_Iir_List = libghdl.vhdl__lists__create_list
-
-Destroy_Iir_List = libghdl.vhdl__lists__destroy_list
diff --git a/python/libghdl/thin/vhdl/nodes.py b/python/libghdl/thin/vhdl/nodes.py
deleted file mode 100644
index e7f47b16f..000000000
--- a/python/libghdl/thin/vhdl/nodes.py
+++ /dev/null
@@ -1,3227 +0,0 @@
-from libghdl import libghdl
-
-Null_Iir = 0
-
-Null_Iir_List = 0
-Iir_List_All = 1
-
-Null_Iir_Flist = 0
-Iir_Flist_Others = 1
-Iir_Flist_All = 2
-
-
-class Iir_Kind:
- Unused = 0
- Error = 1
- Design_File = 2
- Design_Unit = 3
- Library_Clause = 4
- Use_Clause = 5
- Context_Reference = 6
- Integer_Literal = 7
- Floating_Point_Literal = 8
- Null_Literal = 9
- String_Literal8 = 10
- Physical_Int_Literal = 11
- Physical_Fp_Literal = 12
- Simple_Aggregate = 13
- Overflow_Literal = 14
- Unaffected_Waveform = 15
- Waveform_Element = 16
- Conditional_Waveform = 17
- Conditional_Expression = 18
- Association_Element_By_Expression = 19
- Association_Element_By_Individual = 20
- Association_Element_Open = 21
- Association_Element_Package = 22
- Association_Element_Type = 23
- Association_Element_Subprogram = 24
- Association_Element_Terminal = 25
- Choice_By_Range = 26
- Choice_By_Expression = 27
- Choice_By_Others = 28
- Choice_By_None = 29
- Choice_By_Name = 30
- Entity_Aspect_Entity = 31
- Entity_Aspect_Configuration = 32
- Entity_Aspect_Open = 33
- Psl_Hierarchical_Name = 34
- Block_Configuration = 35
- Block_Header = 36
- Component_Configuration = 37
- Binding_Indication = 38
- Entity_Class = 39
- Attribute_Value = 40
- Signature = 41
- Aggregate_Info = 42
- Procedure_Call = 43
- Record_Element_Constraint = 44
- Array_Element_Resolution = 45
- Record_Resolution = 46
- Record_Element_Resolution = 47
- Break_Element = 48
- Attribute_Specification = 49
- Disconnection_Specification = 50
- Step_Limit_Specification = 51
- Configuration_Specification = 52
- Access_Type_Definition = 53
- Incomplete_Type_Definition = 54
- Interface_Type_Definition = 55
- File_Type_Definition = 56
- Protected_Type_Declaration = 57
- Record_Type_Definition = 58
- Array_Type_Definition = 59
- Array_Subtype_Definition = 60
- Record_Subtype_Definition = 61
- Access_Subtype_Definition = 62
- Physical_Subtype_Definition = 63
- Floating_Subtype_Definition = 64
- Integer_Subtype_Definition = 65
- Enumeration_Subtype_Definition = 66
- Enumeration_Type_Definition = 67
- Integer_Type_Definition = 68
- Floating_Type_Definition = 69
- Physical_Type_Definition = 70
- Range_Expression = 71
- Protected_Type_Body = 72
- Wildcard_Type_Definition = 73
- Subtype_Definition = 74
- Scalar_Nature_Definition = 75
- Record_Nature_Definition = 76
- Array_Nature_Definition = 77
- Array_Subnature_Definition = 78
- Overload_List = 79
- Entity_Declaration = 80
- Configuration_Declaration = 81
- Context_Declaration = 82
- Package_Declaration = 83
- Package_Instantiation_Declaration = 84
- Vmode_Declaration = 85
- Vprop_Declaration = 86
- Vunit_Declaration = 87
- Package_Body = 88
- Architecture_Body = 89
- Type_Declaration = 90
- Anonymous_Type_Declaration = 91
- Subtype_Declaration = 92
- Nature_Declaration = 93
- Subnature_Declaration = 94
- Package_Header = 95
- Unit_Declaration = 96
- Library_Declaration = 97
- Component_Declaration = 98
- Attribute_Declaration = 99
- Group_Template_Declaration = 100
- Group_Declaration = 101
- Element_Declaration = 102
- Nature_Element_Declaration = 103
- Non_Object_Alias_Declaration = 104
- Psl_Declaration = 105
- Psl_Endpoint_Declaration = 106
- Enumeration_Literal = 107
- Function_Declaration = 108
- Procedure_Declaration = 109
- Function_Body = 110
- Procedure_Body = 111
- Function_Instantiation_Declaration = 112
- Procedure_Instantiation_Declaration = 113
- Terminal_Declaration = 114
- Object_Alias_Declaration = 115
- Free_Quantity_Declaration = 116
- Spectrum_Quantity_Declaration = 117
- Noise_Quantity_Declaration = 118
- Across_Quantity_Declaration = 119
- Through_Quantity_Declaration = 120
- File_Declaration = 121
- Guard_Signal_Declaration = 122
- Signal_Declaration = 123
- Variable_Declaration = 124
- Constant_Declaration = 125
- Iterator_Declaration = 126
- Interface_Constant_Declaration = 127
- Interface_Variable_Declaration = 128
- Interface_Signal_Declaration = 129
- Interface_File_Declaration = 130
- Interface_Quantity_Declaration = 131
- Interface_Terminal_Declaration = 132
- Interface_Type_Declaration = 133
- Interface_Package_Declaration = 134
- Interface_Function_Declaration = 135
- Interface_Procedure_Declaration = 136
- Anonymous_Signal_Declaration = 137
- Signal_Attribute_Declaration = 138
- Identity_Operator = 139
- Negation_Operator = 140
- Absolute_Operator = 141
- Not_Operator = 142
- Implicit_Condition_Operator = 143
- Condition_Operator = 144
- Reduction_And_Operator = 145
- Reduction_Or_Operator = 146
- Reduction_Nand_Operator = 147
- Reduction_Nor_Operator = 148
- Reduction_Xor_Operator = 149
- Reduction_Xnor_Operator = 150
- And_Operator = 151
- Or_Operator = 152
- Nand_Operator = 153
- Nor_Operator = 154
- Xor_Operator = 155
- Xnor_Operator = 156
- Equality_Operator = 157
- Inequality_Operator = 158
- Less_Than_Operator = 159
- Less_Than_Or_Equal_Operator = 160
- Greater_Than_Operator = 161
- Greater_Than_Or_Equal_Operator = 162
- Match_Equality_Operator = 163
- Match_Inequality_Operator = 164
- Match_Less_Than_Operator = 165
- Match_Less_Than_Or_Equal_Operator = 166
- Match_Greater_Than_Operator = 167
- Match_Greater_Than_Or_Equal_Operator = 168
- Sll_Operator = 169
- Sla_Operator = 170
- Srl_Operator = 171
- Sra_Operator = 172
- Rol_Operator = 173
- Ror_Operator = 174
- Addition_Operator = 175
- Substraction_Operator = 176
- Concatenation_Operator = 177
- Multiplication_Operator = 178
- Division_Operator = 179
- Modulus_Operator = 180
- Remainder_Operator = 181
- Exponentiation_Operator = 182
- Function_Call = 183
- Aggregate = 184
- Parenthesis_Expression = 185
- Qualified_Expression = 186
- Type_Conversion = 187
- Allocator_By_Expression = 188
- Allocator_By_Subtype = 189
- Selected_Element = 190
- Dereference = 191
- Implicit_Dereference = 192
- Slice_Name = 193
- Indexed_Name = 194
- Psl_Prev = 195
- Psl_Stable = 196
- Psl_Rose = 197
- Psl_Fell = 198
- Psl_Expression = 199
- Sensitized_Process_Statement = 200
- Process_Statement = 201
- Concurrent_Simple_Signal_Assignment = 202
- Concurrent_Conditional_Signal_Assignment = 203
- Concurrent_Selected_Signal_Assignment = 204
- Concurrent_Assertion_Statement = 205
- Concurrent_Procedure_Call_Statement = 206
- Concurrent_Break_Statement = 207
- Psl_Assert_Directive = 208
- Psl_Assume_Directive = 209
- Psl_Cover_Directive = 210
- Psl_Restrict_Directive = 211
- Block_Statement = 212
- If_Generate_Statement = 213
- Case_Generate_Statement = 214
- For_Generate_Statement = 215
- Component_Instantiation_Statement = 216
- Psl_Default_Clock = 217
- Generate_Statement_Body = 218
- If_Generate_Else_Clause = 219
- Simple_Simultaneous_Statement = 220
- Simultaneous_Null_Statement = 221
- Simultaneous_Procedural_Statement = 222
- Simultaneous_Case_Statement = 223
- Simultaneous_If_Statement = 224
- Simultaneous_Elsif = 225
- Simple_Signal_Assignment_Statement = 226
- Conditional_Signal_Assignment_Statement = 227
- Selected_Waveform_Assignment_Statement = 228
- Signal_Force_Assignment_Statement = 229
- Signal_Release_Assignment_Statement = 230
- Null_Statement = 231
- Assertion_Statement = 232
- Report_Statement = 233
- Wait_Statement = 234
- Variable_Assignment_Statement = 235
- Conditional_Variable_Assignment_Statement = 236
- Return_Statement = 237
- For_Loop_Statement = 238
- While_Loop_Statement = 239
- Next_Statement = 240
- Exit_Statement = 241
- Case_Statement = 242
- Procedure_Call_Statement = 243
- Break_Statement = 244
- If_Statement = 245
- Elsif = 246
- Character_Literal = 247
- Simple_Name = 248
- Selected_Name = 249
- Operator_Symbol = 250
- Reference_Name = 251
- External_Constant_Name = 252
- External_Signal_Name = 253
- External_Variable_Name = 254
- Selected_By_All_Name = 255
- Parenthesis_Name = 256
- Package_Pathname = 257
- Absolute_Pathname = 258
- Relative_Pathname = 259
- Pathname_Element = 260
- Base_Attribute = 261
- Subtype_Attribute = 262
- Element_Attribute = 263
- Across_Attribute = 264
- Through_Attribute = 265
- Nature_Reference_Attribute = 266
- Left_Type_Attribute = 267
- Right_Type_Attribute = 268
- High_Type_Attribute = 269
- Low_Type_Attribute = 270
- Ascending_Type_Attribute = 271
- Image_Attribute = 272
- Value_Attribute = 273
- Pos_Attribute = 274
- Val_Attribute = 275
- Succ_Attribute = 276
- Pred_Attribute = 277
- Leftof_Attribute = 278
- Rightof_Attribute = 279
- Signal_Slew_Attribute = 280
- Quantity_Slew_Attribute = 281
- Ramp_Attribute = 282
- Zoh_Attribute = 283
- Ltf_Attribute = 284
- Ztf_Attribute = 285
- Dot_Attribute = 286
- Integ_Attribute = 287
- Above_Attribute = 288
- Quantity_Delayed_Attribute = 289
- Delayed_Attribute = 290
- Stable_Attribute = 291
- Quiet_Attribute = 292
- Transaction_Attribute = 293
- Event_Attribute = 294
- Active_Attribute = 295
- Last_Event_Attribute = 296
- Last_Active_Attribute = 297
- Last_Value_Attribute = 298
- Driving_Attribute = 299
- Driving_Value_Attribute = 300
- Behavior_Attribute = 301
- Structure_Attribute = 302
- Simple_Name_Attribute = 303
- Instance_Name_Attribute = 304
- Path_Name_Attribute = 305
- Left_Array_Attribute = 306
- Right_Array_Attribute = 307
- High_Array_Attribute = 308
- Low_Array_Attribute = 309
- Length_Array_Attribute = 310
- Ascending_Array_Attribute = 311
- Range_Array_Attribute = 312
- Reverse_Range_Array_Attribute = 313
- Attribute_Name = 314
-
-
-class Iir_Kinds:
- Variable_Assignment_Statement = [
- Iir_Kind.Variable_Assignment_Statement,
- Iir_Kind.Conditional_Variable_Assignment_Statement,
- ]
-
- Denoting_Name = [
- Iir_Kind.Character_Literal,
- Iir_Kind.Simple_Name,
- Iir_Kind.Selected_Name,
- Iir_Kind.Operator_Symbol,
- Iir_Kind.Reference_Name,
- ]
-
- Case_Choice = [
- Iir_Kind.Choice_By_Range,
- Iir_Kind.Choice_By_Expression,
- Iir_Kind.Choice_By_Others,
- ]
-
- Array_Type_Definition = [
- Iir_Kind.Array_Type_Definition,
- Iir_Kind.Array_Subtype_Definition,
- ]
-
- Library_Unit = [
- Iir_Kind.Entity_Declaration,
- Iir_Kind.Configuration_Declaration,
- Iir_Kind.Context_Declaration,
- Iir_Kind.Package_Declaration,
- Iir_Kind.Package_Instantiation_Declaration,
- Iir_Kind.Vmode_Declaration,
- Iir_Kind.Vprop_Declaration,
- Iir_Kind.Vunit_Declaration,
- Iir_Kind.Package_Body,
- Iir_Kind.Architecture_Body,
- ]
-
- Array_Choice = [
- Iir_Kind.Choice_By_Range,
- Iir_Kind.Choice_By_Expression,
- Iir_Kind.Choice_By_Others,
- Iir_Kind.Choice_By_None,
- ]
-
- Subprogram_Declaration = [
- Iir_Kind.Function_Declaration,
- Iir_Kind.Procedure_Declaration,
- ]
-
- Subtype_Attribute = [
- Iir_Kind.Base_Attribute,
- Iir_Kind.Subtype_Attribute,
- Iir_Kind.Element_Attribute,
- ]
-
- Scalar_Subtype_Definition = [
- Iir_Kind.Physical_Subtype_Definition,
- Iir_Kind.Floating_Subtype_Definition,
- Iir_Kind.Integer_Subtype_Definition,
- Iir_Kind.Enumeration_Subtype_Definition,
- ]
-
- Subnature_Definition = [
- Iir_Kind.Array_Subnature_Definition,
- ]
-
- Literal = [
- Iir_Kind.Integer_Literal,
- Iir_Kind.Floating_Point_Literal,
- Iir_Kind.Null_Literal,
- Iir_Kind.String_Literal8,
- Iir_Kind.Physical_Int_Literal,
- Iir_Kind.Physical_Fp_Literal,
- ]
-
- Nature_Indication = [
- Iir_Kind.Scalar_Nature_Definition,
- Iir_Kind.Record_Nature_Definition,
- Iir_Kind.Array_Nature_Definition,
- Iir_Kind.Array_Subnature_Definition,
- ]
-
- Process_Statement = [
- Iir_Kind.Sensitized_Process_Statement,
- Iir_Kind.Process_Statement,
- ]
-
- Nature_Definition = [
- Iir_Kind.Scalar_Nature_Definition,
- Iir_Kind.Record_Nature_Definition,
- Iir_Kind.Array_Nature_Definition,
- ]
-
- Object_Declaration = [
- Iir_Kind.Object_Alias_Declaration,
- Iir_Kind.Free_Quantity_Declaration,
- Iir_Kind.Spectrum_Quantity_Declaration,
- Iir_Kind.Noise_Quantity_Declaration,
- Iir_Kind.Across_Quantity_Declaration,
- Iir_Kind.Through_Quantity_Declaration,
- Iir_Kind.File_Declaration,
- Iir_Kind.Guard_Signal_Declaration,
- Iir_Kind.Signal_Declaration,
- Iir_Kind.Variable_Declaration,
- Iir_Kind.Constant_Declaration,
- Iir_Kind.Iterator_Declaration,
- Iir_Kind.Interface_Constant_Declaration,
- Iir_Kind.Interface_Variable_Declaration,
- Iir_Kind.Interface_Signal_Declaration,
- Iir_Kind.Interface_File_Declaration,
- Iir_Kind.Interface_Quantity_Declaration,
- ]
-
- Clause = [
- Iir_Kind.Library_Clause,
- Iir_Kind.Use_Clause,
- Iir_Kind.Context_Reference,
- ]
-
- Type_And_Subtype_Definition = [
- Iir_Kind.Access_Type_Definition,
- Iir_Kind.Incomplete_Type_Definition,
- Iir_Kind.Interface_Type_Definition,
- Iir_Kind.File_Type_Definition,
- Iir_Kind.Protected_Type_Declaration,
- Iir_Kind.Record_Type_Definition,
- Iir_Kind.Array_Type_Definition,
- Iir_Kind.Array_Subtype_Definition,
- Iir_Kind.Record_Subtype_Definition,
- Iir_Kind.Access_Subtype_Definition,
- Iir_Kind.Physical_Subtype_Definition,
- Iir_Kind.Floating_Subtype_Definition,
- Iir_Kind.Integer_Subtype_Definition,
- Iir_Kind.Enumeration_Subtype_Definition,
- Iir_Kind.Enumeration_Type_Definition,
- Iir_Kind.Integer_Type_Definition,
- Iir_Kind.Floating_Type_Definition,
- Iir_Kind.Physical_Type_Definition,
- ]
-
- External_Name = [
- Iir_Kind.External_Constant_Name,
- Iir_Kind.External_Signal_Name,
- Iir_Kind.External_Variable_Name,
- ]
-
- Dereference = [
- Iir_Kind.Dereference,
- Iir_Kind.Implicit_Dereference,
- ]
-
- Primary_Unit = [
- Iir_Kind.Entity_Declaration,
- Iir_Kind.Configuration_Declaration,
- Iir_Kind.Context_Declaration,
- Iir_Kind.Package_Declaration,
- Iir_Kind.Package_Instantiation_Declaration,
- Iir_Kind.Vmode_Declaration,
- Iir_Kind.Vprop_Declaration,
- Iir_Kind.Vunit_Declaration,
- ]
-
- Record_Choice = [
- Iir_Kind.Choice_By_Others,
- Iir_Kind.Choice_By_None,
- Iir_Kind.Choice_By_Name,
- ]
-
- Functions_And_Literals = [
- Iir_Kind.Enumeration_Literal,
- Iir_Kind.Function_Declaration,
- ]
-
- Verification_Unit = [
- Iir_Kind.Vmode_Declaration,
- Iir_Kind.Vprop_Declaration,
- Iir_Kind.Vunit_Declaration,
- ]
-
- Secondary_Unit = [
- Iir_Kind.Package_Body,
- Iir_Kind.Architecture_Body,
- ]
-
- Package_Declaration = [
- Iir_Kind.Package_Declaration,
- Iir_Kind.Package_Instantiation_Declaration,
- ]
-
- Psl_Builtin = [
- Iir_Kind.Psl_Prev,
- Iir_Kind.Psl_Stable,
- Iir_Kind.Psl_Rose,
- Iir_Kind.Psl_Fell,
- ]
-
- Generate_Statement = [
- Iir_Kind.If_Generate_Statement,
- Iir_Kind.Case_Generate_Statement,
- Iir_Kind.For_Generate_Statement,
- ]
-
- Composite_Subtype_Definition = [
- Iir_Kind.Array_Subtype_Definition,
- Iir_Kind.Record_Subtype_Definition,
- ]
-
- Choice = [
- Iir_Kind.Choice_By_Range,
- Iir_Kind.Choice_By_Expression,
- Iir_Kind.Choice_By_Others,
- Iir_Kind.Choice_By_None,
- Iir_Kind.Choice_By_Name,
- ]
-
- If_Case_Generate_Statement = [
- Iir_Kind.If_Generate_Statement,
- Iir_Kind.Case_Generate_Statement,
- ]
-
- Simple_Concurrent_Statement = [
- Iir_Kind.Sensitized_Process_Statement,
- Iir_Kind.Process_Statement,
- Iir_Kind.Concurrent_Simple_Signal_Assignment,
- Iir_Kind.Concurrent_Conditional_Signal_Assignment,
- Iir_Kind.Concurrent_Selected_Signal_Assignment,
- Iir_Kind.Concurrent_Assertion_Statement,
- Iir_Kind.Concurrent_Procedure_Call_Statement,
- Iir_Kind.Concurrent_Break_Statement,
- Iir_Kind.Psl_Assert_Directive,
- Iir_Kind.Psl_Assume_Directive,
- Iir_Kind.Psl_Cover_Directive,
- Iir_Kind.Psl_Restrict_Directive,
- ]
-
- Non_Alias_Object_Declaration = [
- Iir_Kind.File_Declaration,
- Iir_Kind.Guard_Signal_Declaration,
- Iir_Kind.Signal_Declaration,
- Iir_Kind.Variable_Declaration,
- Iir_Kind.Constant_Declaration,
- Iir_Kind.Iterator_Declaration,
- Iir_Kind.Interface_Constant_Declaration,
- Iir_Kind.Interface_Variable_Declaration,
- Iir_Kind.Interface_Signal_Declaration,
- Iir_Kind.Interface_File_Declaration,
- ]
-
- Entity_Aspect = [
- Iir_Kind.Entity_Aspect_Entity,
- Iir_Kind.Entity_Aspect_Configuration,
- Iir_Kind.Entity_Aspect_Open,
- ]
-
- Subprogram_Body = [
- Iir_Kind.Function_Body,
- Iir_Kind.Procedure_Body,
- ]
-
- Source_Quantity_Declaration = [
- Iir_Kind.Spectrum_Quantity_Declaration,
- Iir_Kind.Noise_Quantity_Declaration,
- ]
-
- Specification = [
- Iir_Kind.Attribute_Specification,
- Iir_Kind.Disconnection_Specification,
- Iir_Kind.Step_Limit_Specification,
- Iir_Kind.Configuration_Specification,
- ]
-
- Dyadic_Operator = [
- Iir_Kind.And_Operator,
- Iir_Kind.Or_Operator,
- Iir_Kind.Nand_Operator,
- Iir_Kind.Nor_Operator,
- Iir_Kind.Xor_Operator,
- Iir_Kind.Xnor_Operator,
- Iir_Kind.Equality_Operator,
- Iir_Kind.Inequality_Operator,
- Iir_Kind.Less_Than_Operator,
- Iir_Kind.Less_Than_Or_Equal_Operator,
- Iir_Kind.Greater_Than_Operator,
- Iir_Kind.Greater_Than_Or_Equal_Operator,
- Iir_Kind.Match_Equality_Operator,
- Iir_Kind.Match_Inequality_Operator,
- Iir_Kind.Match_Less_Than_Operator,
- Iir_Kind.Match_Less_Than_Or_Equal_Operator,
- Iir_Kind.Match_Greater_Than_Operator,
- Iir_Kind.Match_Greater_Than_Or_Equal_Operator,
- Iir_Kind.Sll_Operator,
- Iir_Kind.Sla_Operator,
- Iir_Kind.Srl_Operator,
- Iir_Kind.Sra_Operator,
- Iir_Kind.Rol_Operator,
- Iir_Kind.Ror_Operator,
- Iir_Kind.Addition_Operator,
- Iir_Kind.Substraction_Operator,
- Iir_Kind.Concatenation_Operator,
- Iir_Kind.Multiplication_Operator,
- Iir_Kind.Division_Operator,
- Iir_Kind.Modulus_Operator,
- Iir_Kind.Remainder_Operator,
- Iir_Kind.Exponentiation_Operator,
- ]
-
- Expression_Attribute = [
- Iir_Kind.Left_Type_Attribute,
- Iir_Kind.Right_Type_Attribute,
- Iir_Kind.High_Type_Attribute,
- Iir_Kind.Low_Type_Attribute,
- Iir_Kind.Ascending_Type_Attribute,
- Iir_Kind.Image_Attribute,
- Iir_Kind.Value_Attribute,
- Iir_Kind.Pos_Attribute,
- Iir_Kind.Val_Attribute,
- Iir_Kind.Succ_Attribute,
- Iir_Kind.Pred_Attribute,
- Iir_Kind.Leftof_Attribute,
- Iir_Kind.Rightof_Attribute,
- Iir_Kind.Signal_Slew_Attribute,
- Iir_Kind.Quantity_Slew_Attribute,
- Iir_Kind.Ramp_Attribute,
- Iir_Kind.Zoh_Attribute,
- Iir_Kind.Ltf_Attribute,
- Iir_Kind.Ztf_Attribute,
- Iir_Kind.Dot_Attribute,
- Iir_Kind.Integ_Attribute,
- Iir_Kind.Above_Attribute,
- Iir_Kind.Quantity_Delayed_Attribute,
- Iir_Kind.Delayed_Attribute,
- Iir_Kind.Stable_Attribute,
- Iir_Kind.Quiet_Attribute,
- Iir_Kind.Transaction_Attribute,
- Iir_Kind.Event_Attribute,
- Iir_Kind.Active_Attribute,
- Iir_Kind.Last_Event_Attribute,
- Iir_Kind.Last_Active_Attribute,
- Iir_Kind.Last_Value_Attribute,
- Iir_Kind.Driving_Attribute,
- Iir_Kind.Driving_Value_Attribute,
- Iir_Kind.Behavior_Attribute,
- Iir_Kind.Structure_Attribute,
- Iir_Kind.Simple_Name_Attribute,
- Iir_Kind.Instance_Name_Attribute,
- Iir_Kind.Path_Name_Attribute,
- Iir_Kind.Left_Array_Attribute,
- Iir_Kind.Right_Array_Attribute,
- Iir_Kind.High_Array_Attribute,
- Iir_Kind.Low_Array_Attribute,
- Iir_Kind.Length_Array_Attribute,
- Iir_Kind.Ascending_Array_Attribute,
- ]
-
- Monadic_Operator = [
- Iir_Kind.Identity_Operator,
- Iir_Kind.Negation_Operator,
- Iir_Kind.Absolute_Operator,
- Iir_Kind.Not_Operator,
- Iir_Kind.Implicit_Condition_Operator,
- Iir_Kind.Condition_Operator,
- Iir_Kind.Reduction_And_Operator,
- Iir_Kind.Reduction_Or_Operator,
- Iir_Kind.Reduction_Nand_Operator,
- Iir_Kind.Reduction_Nor_Operator,
- Iir_Kind.Reduction_Xor_Operator,
- Iir_Kind.Reduction_Xnor_Operator,
- ]
-
- Interface_Declaration = [
- Iir_Kind.Interface_Constant_Declaration,
- Iir_Kind.Interface_Variable_Declaration,
- Iir_Kind.Interface_Signal_Declaration,
- Iir_Kind.Interface_File_Declaration,
- Iir_Kind.Interface_Quantity_Declaration,
- Iir_Kind.Interface_Terminal_Declaration,
- Iir_Kind.Interface_Type_Declaration,
- Iir_Kind.Interface_Package_Declaration,
- Iir_Kind.Interface_Function_Declaration,
- Iir_Kind.Interface_Procedure_Declaration,
- ]
-
- Array_Attribute = [
- Iir_Kind.Left_Array_Attribute,
- Iir_Kind.Right_Array_Attribute,
- Iir_Kind.High_Array_Attribute,
- Iir_Kind.Low_Array_Attribute,
- Iir_Kind.Length_Array_Attribute,
- Iir_Kind.Ascending_Array_Attribute,
- Iir_Kind.Range_Array_Attribute,
- Iir_Kind.Reverse_Range_Array_Attribute,
- ]
-
- Sequential_Statement = [
- Iir_Kind.Simple_Signal_Assignment_Statement,
- Iir_Kind.Conditional_Signal_Assignment_Statement,
- Iir_Kind.Selected_Waveform_Assignment_Statement,
- Iir_Kind.Signal_Force_Assignment_Statement,
- Iir_Kind.Signal_Release_Assignment_Statement,
- Iir_Kind.Null_Statement,
- Iir_Kind.Assertion_Statement,
- Iir_Kind.Report_Statement,
- Iir_Kind.Wait_Statement,
- Iir_Kind.Variable_Assignment_Statement,
- Iir_Kind.Conditional_Variable_Assignment_Statement,
- Iir_Kind.Return_Statement,
- Iir_Kind.For_Loop_Statement,
- Iir_Kind.While_Loop_Statement,
- Iir_Kind.Next_Statement,
- Iir_Kind.Exit_Statement,
- Iir_Kind.Case_Statement,
- Iir_Kind.Procedure_Call_Statement,
- Iir_Kind.Break_Statement,
- Iir_Kind.If_Statement,
- ]
-
- Denoting_And_External_Name = [
- Iir_Kind.Character_Literal,
- Iir_Kind.Simple_Name,
- Iir_Kind.Selected_Name,
- Iir_Kind.Operator_Symbol,
- Iir_Kind.Reference_Name,
- Iir_Kind.External_Constant_Name,
- Iir_Kind.External_Signal_Name,
- Iir_Kind.External_Variable_Name,
- ]
-
- Association_Element_Parameters = [
- Iir_Kind.Association_Element_By_Expression,
- Iir_Kind.Association_Element_By_Individual,
- Iir_Kind.Association_Element_Open,
- ]
-
- Range_Type_Definition = [
- Iir_Kind.Physical_Subtype_Definition,
- Iir_Kind.Floating_Subtype_Definition,
- Iir_Kind.Integer_Subtype_Definition,
- Iir_Kind.Enumeration_Subtype_Definition,
- Iir_Kind.Enumeration_Type_Definition,
- ]
-
- Discrete_Type_Definition = [
- Iir_Kind.Integer_Subtype_Definition,
- Iir_Kind.Enumeration_Subtype_Definition,
- Iir_Kind.Enumeration_Type_Definition,
- Iir_Kind.Integer_Type_Definition,
- ]
-
- Concurrent_Statement = [
- Iir_Kind.Sensitized_Process_Statement,
- Iir_Kind.Process_Statement,
- Iir_Kind.Concurrent_Simple_Signal_Assignment,
- Iir_Kind.Concurrent_Conditional_Signal_Assignment,
- Iir_Kind.Concurrent_Selected_Signal_Assignment,
- Iir_Kind.Concurrent_Assertion_Statement,
- Iir_Kind.Concurrent_Procedure_Call_Statement,
- Iir_Kind.Concurrent_Break_Statement,
- Iir_Kind.Psl_Assert_Directive,
- Iir_Kind.Psl_Assume_Directive,
- Iir_Kind.Psl_Cover_Directive,
- Iir_Kind.Psl_Restrict_Directive,
- Iir_Kind.Block_Statement,
- Iir_Kind.If_Generate_Statement,
- Iir_Kind.Case_Generate_Statement,
- Iir_Kind.For_Generate_Statement,
- Iir_Kind.Component_Instantiation_Statement,
- Iir_Kind.Psl_Default_Clock,
- ]
-
- Signal_Attribute = [
- Iir_Kind.Delayed_Attribute,
- Iir_Kind.Stable_Attribute,
- Iir_Kind.Quiet_Attribute,
- Iir_Kind.Transaction_Attribute,
- ]
-
- Type_Declaration = [
- Iir_Kind.Type_Declaration,
- Iir_Kind.Anonymous_Type_Declaration,
- Iir_Kind.Subtype_Declaration,
- ]
-
- Next_Exit_Statement = [
- Iir_Kind.Next_Statement,
- Iir_Kind.Exit_Statement,
- ]
-
- Association_Element = [
- Iir_Kind.Association_Element_By_Expression,
- Iir_Kind.Association_Element_By_Individual,
- Iir_Kind.Association_Element_Open,
- Iir_Kind.Association_Element_Package,
- Iir_Kind.Association_Element_Type,
- Iir_Kind.Association_Element_Subprogram,
- Iir_Kind.Association_Element_Terminal,
- ]
-
- Interface_Object_Declaration = [
- Iir_Kind.Interface_Constant_Declaration,
- Iir_Kind.Interface_Variable_Declaration,
- Iir_Kind.Interface_Signal_Declaration,
- Iir_Kind.Interface_File_Declaration,
- Iir_Kind.Interface_Quantity_Declaration,
- ]
-
- Composite_Type_Definition = [
- Iir_Kind.Record_Type_Definition,
- Iir_Kind.Array_Type_Definition,
- Iir_Kind.Array_Subtype_Definition,
- Iir_Kind.Record_Subtype_Definition,
- ]
-
- Interface_Subprogram_Declaration = [
- Iir_Kind.Interface_Function_Declaration,
- Iir_Kind.Interface_Procedure_Declaration,
- ]
-
- Branch_Quantity_Declaration = [
- Iir_Kind.Across_Quantity_Declaration,
- Iir_Kind.Through_Quantity_Declaration,
- ]
-
- Type_Attribute = [
- Iir_Kind.Left_Type_Attribute,
- Iir_Kind.Right_Type_Attribute,
- Iir_Kind.High_Type_Attribute,
- Iir_Kind.Low_Type_Attribute,
- Iir_Kind.Ascending_Type_Attribute,
- ]
-
- Signal_Value_Attribute = [
- Iir_Kind.Event_Attribute,
- Iir_Kind.Active_Attribute,
- Iir_Kind.Last_Event_Attribute,
- Iir_Kind.Last_Active_Attribute,
- Iir_Kind.Last_Value_Attribute,
- Iir_Kind.Driving_Attribute,
- Iir_Kind.Driving_Value_Attribute,
- ]
-
- Quantity_Declaration = [
- Iir_Kind.Free_Quantity_Declaration,
- Iir_Kind.Spectrum_Quantity_Declaration,
- Iir_Kind.Noise_Quantity_Declaration,
- Iir_Kind.Across_Quantity_Declaration,
- Iir_Kind.Through_Quantity_Declaration,
- ]
-
- Nonoverloadable_Declaration = [
- Iir_Kind.Type_Declaration,
- Iir_Kind.Anonymous_Type_Declaration,
- Iir_Kind.Subtype_Declaration,
- Iir_Kind.Nature_Declaration,
- Iir_Kind.Subnature_Declaration,
- Iir_Kind.Package_Header,
- Iir_Kind.Unit_Declaration,
- Iir_Kind.Library_Declaration,
- Iir_Kind.Component_Declaration,
- Iir_Kind.Attribute_Declaration,
- Iir_Kind.Group_Template_Declaration,
- Iir_Kind.Group_Declaration,
- Iir_Kind.Element_Declaration,
- Iir_Kind.Nature_Element_Declaration,
- ]
-
- Scalar_Type_And_Subtype_Definition = [
- Iir_Kind.Physical_Subtype_Definition,
- Iir_Kind.Floating_Subtype_Definition,
- Iir_Kind.Integer_Subtype_Definition,
- Iir_Kind.Enumeration_Subtype_Definition,
- Iir_Kind.Enumeration_Type_Definition,
- Iir_Kind.Integer_Type_Definition,
- Iir_Kind.Floating_Type_Definition,
- Iir_Kind.Physical_Type_Definition,
- ]
-
- Attribute = [
- Iir_Kind.Base_Attribute,
- Iir_Kind.Subtype_Attribute,
- Iir_Kind.Element_Attribute,
- Iir_Kind.Across_Attribute,
- Iir_Kind.Through_Attribute,
- Iir_Kind.Nature_Reference_Attribute,
- Iir_Kind.Left_Type_Attribute,
- Iir_Kind.Right_Type_Attribute,
- Iir_Kind.High_Type_Attribute,
- Iir_Kind.Low_Type_Attribute,
- Iir_Kind.Ascending_Type_Attribute,
- Iir_Kind.Image_Attribute,
- Iir_Kind.Value_Attribute,
- Iir_Kind.Pos_Attribute,
- Iir_Kind.Val_Attribute,
- Iir_Kind.Succ_Attribute,
- Iir_Kind.Pred_Attribute,
- Iir_Kind.Leftof_Attribute,
- Iir_Kind.Rightof_Attribute,
- Iir_Kind.Signal_Slew_Attribute,
- Iir_Kind.Quantity_Slew_Attribute,
- Iir_Kind.Ramp_Attribute,
- Iir_Kind.Zoh_Attribute,
- Iir_Kind.Ltf_Attribute,
- Iir_Kind.Ztf_Attribute,
- Iir_Kind.Dot_Attribute,
- Iir_Kind.Integ_Attribute,
- Iir_Kind.Above_Attribute,
- Iir_Kind.Quantity_Delayed_Attribute,
- Iir_Kind.Delayed_Attribute,
- Iir_Kind.Stable_Attribute,
- Iir_Kind.Quiet_Attribute,
- Iir_Kind.Transaction_Attribute,
- Iir_Kind.Event_Attribute,
- Iir_Kind.Active_Attribute,
- Iir_Kind.Last_Event_Attribute,
- Iir_Kind.Last_Active_Attribute,
- Iir_Kind.Last_Value_Attribute,
- Iir_Kind.Driving_Attribute,
- Iir_Kind.Driving_Value_Attribute,
- Iir_Kind.Behavior_Attribute,
- Iir_Kind.Structure_Attribute,
- Iir_Kind.Simple_Name_Attribute,
- Iir_Kind.Instance_Name_Attribute,
- Iir_Kind.Path_Name_Attribute,
- Iir_Kind.Left_Array_Attribute,
- Iir_Kind.Right_Array_Attribute,
- Iir_Kind.High_Array_Attribute,
- Iir_Kind.Low_Array_Attribute,
- Iir_Kind.Length_Array_Attribute,
- Iir_Kind.Ascending_Array_Attribute,
- Iir_Kind.Range_Array_Attribute,
- Iir_Kind.Reverse_Range_Array_Attribute,
- ]
-
- Physical_Literal = [
- Iir_Kind.Physical_Int_Literal,
- Iir_Kind.Physical_Fp_Literal,
- ]
-
- Simultaneous_Statement = [
- Iir_Kind.Simple_Simultaneous_Statement,
- Iir_Kind.Simultaneous_Null_Statement,
- Iir_Kind.Simultaneous_Procedural_Statement,
- Iir_Kind.Simultaneous_Case_Statement,
- Iir_Kind.Simultaneous_If_Statement,
- ]
-
- Concurrent_Signal_Assignment = [
- Iir_Kind.Concurrent_Simple_Signal_Assignment,
- Iir_Kind.Concurrent_Conditional_Signal_Assignment,
- Iir_Kind.Concurrent_Selected_Signal_Assignment,
- ]
-
- Range_Attribute = [
- Iir_Kind.Range_Array_Attribute,
- Iir_Kind.Reverse_Range_Array_Attribute,
- ]
-
- Name_Attribute = [
- Iir_Kind.Simple_Name_Attribute,
- Iir_Kind.Instance_Name_Attribute,
- Iir_Kind.Path_Name_Attribute,
- ]
-
- Scalar_Type_Attribute = [
- Iir_Kind.Pos_Attribute,
- Iir_Kind.Val_Attribute,
- Iir_Kind.Succ_Attribute,
- Iir_Kind.Pred_Attribute,
- Iir_Kind.Leftof_Attribute,
- Iir_Kind.Rightof_Attribute,
- ]
-
- Name = [
- Iir_Kind.Character_Literal,
- Iir_Kind.Simple_Name,
- Iir_Kind.Selected_Name,
- Iir_Kind.Operator_Symbol,
- Iir_Kind.Reference_Name,
- Iir_Kind.External_Constant_Name,
- Iir_Kind.External_Signal_Name,
- Iir_Kind.External_Variable_Name,
- Iir_Kind.Selected_By_All_Name,
- Iir_Kind.Parenthesis_Name,
- ]
-
- Subtype_Definition = [
- Iir_Kind.Array_Subtype_Definition,
- Iir_Kind.Record_Subtype_Definition,
- Iir_Kind.Access_Subtype_Definition,
- Iir_Kind.Physical_Subtype_Definition,
- Iir_Kind.Floating_Subtype_Definition,
- Iir_Kind.Integer_Subtype_Definition,
- Iir_Kind.Enumeration_Subtype_Definition,
- ]
-
- Allocator = [
- Iir_Kind.Allocator_By_Expression,
- Iir_Kind.Allocator_By_Subtype,
- ]
-
-
-class Iir_Mode:
- Unknown_Mode = 0
- Linkage_Mode = 1
- Buffer_Mode = 2
- Out_Mode = 3
- Inout_Mode = 4
- In_Mode = 5
-
-
-class Iir_Staticness:
- Unknown = 0
- PNone = 1
- Globally = 2
- Locally = 3
-
-
-class Iir_Constraint:
- Unconstrained = 0
- Partially_Constrained = 1
- Fully_Constrained = 2
-
-
-class Iir_Delay_Mechanism:
- Inertial_Delay = 0
- Transport_Delay = 1
-
-
-class Date_State:
- Extern = 0
- Disk = 1
- Parse = 2
- Analyze = 3
-
-
-class Iir_Predefined:
- Error = 0
- Boolean_And = 1
- Boolean_Or = 2
- Boolean_Nand = 3
- Boolean_Nor = 4
- Boolean_Xor = 5
- Boolean_Xnor = 6
- Boolean_Not = 7
- Boolean_Rising_Edge = 8
- Boolean_Falling_Edge = 9
- Enum_Equality = 10
- Enum_Inequality = 11
- Enum_Less = 12
- Enum_Less_Equal = 13
- Enum_Greater = 14
- Enum_Greater_Equal = 15
- Enum_Minimum = 16
- Enum_Maximum = 17
- Enum_To_String = 18
- Bit_And = 19
- Bit_Or = 20
- Bit_Nand = 21
- Bit_Nor = 22
- Bit_Xor = 23
- Bit_Xnor = 24
- Bit_Not = 25
- Bit_Match_Equality = 26
- Bit_Match_Inequality = 27
- Bit_Match_Less = 28
- Bit_Match_Less_Equal = 29
- Bit_Match_Greater = 30
- Bit_Match_Greater_Equal = 31
- Bit_Condition = 32
- Bit_Rising_Edge = 33
- Bit_Falling_Edge = 34
- Integer_Equality = 35
- Integer_Inequality = 36
- Integer_Less = 37
- Integer_Less_Equal = 38
- Integer_Greater = 39
- Integer_Greater_Equal = 40
- Integer_Identity = 41
- Integer_Negation = 42
- Integer_Absolute = 43
- Integer_Plus = 44
- Integer_Minus = 45
- Integer_Mul = 46
- Integer_Div = 47
- Integer_Mod = 48
- Integer_Rem = 49
- Integer_Exp = 50
- Integer_Minimum = 51
- Integer_Maximum = 52
- Integer_To_String = 53
- Floating_Equality = 54
- Floating_Inequality = 55
- Floating_Less = 56
- Floating_Less_Equal = 57
- Floating_Greater = 58
- Floating_Greater_Equal = 59
- Floating_Identity = 60
- Floating_Negation = 61
- Floating_Absolute = 62
- Floating_Plus = 63
- Floating_Minus = 64
- Floating_Mul = 65
- Floating_Div = 66
- Floating_Exp = 67
- Floating_Minimum = 68
- Floating_Maximum = 69
- Floating_To_String = 70
- Real_To_String_Digits = 71
- Real_To_String_Format = 72
- Universal_R_I_Mul = 73
- Universal_I_R_Mul = 74
- Universal_R_I_Div = 75
- Physical_Equality = 76
- Physical_Inequality = 77
- Physical_Less = 78
- Physical_Less_Equal = 79
- Physical_Greater = 80
- Physical_Greater_Equal = 81
- Physical_Identity = 82
- Physical_Negation = 83
- Physical_Absolute = 84
- Physical_Plus = 85
- Physical_Minus = 86
- Physical_Integer_Mul = 87
- Physical_Real_Mul = 88
- Integer_Physical_Mul = 89
- Real_Physical_Mul = 90
- Physical_Integer_Div = 91
- Physical_Real_Div = 92
- Physical_Physical_Div = 93
- Physical_Minimum = 94
- Physical_Maximum = 95
- Physical_To_String = 96
- Time_To_String_Unit = 97
- Access_Equality = 98
- Access_Inequality = 99
- Record_Equality = 100
- Record_Inequality = 101
- Array_Equality = 102
- Array_Inequality = 103
- Array_Less = 104
- Array_Less_Equal = 105
- Array_Greater = 106
- Array_Greater_Equal = 107
- Array_Array_Concat = 108
- Array_Element_Concat = 109
- Element_Array_Concat = 110
- Element_Element_Concat = 111
- Array_Minimum = 112
- Array_Maximum = 113
- Vector_Minimum = 114
- Vector_Maximum = 115
- Array_Sll = 116
- Array_Srl = 117
- Array_Sla = 118
- Array_Sra = 119
- Array_Rol = 120
- Array_Ror = 121
- TF_Array_And = 122
- TF_Array_Or = 123
- TF_Array_Nand = 124
- TF_Array_Nor = 125
- TF_Array_Xor = 126
- TF_Array_Xnor = 127
- TF_Array_Not = 128
- TF_Reduction_And = 129
- TF_Reduction_Or = 130
- TF_Reduction_Nand = 131
- TF_Reduction_Nor = 132
- TF_Reduction_Xor = 133
- TF_Reduction_Xnor = 134
- TF_Reduction_Not = 135
- TF_Array_Element_And = 136
- TF_Element_Array_And = 137
- TF_Array_Element_Or = 138
- TF_Element_Array_Or = 139
- TF_Array_Element_Nand = 140
- TF_Element_Array_Nand = 141
- TF_Array_Element_Nor = 142
- TF_Element_Array_Nor = 143
- TF_Array_Element_Xor = 144
- TF_Element_Array_Xor = 145
- TF_Array_Element_Xnor = 146
- TF_Element_Array_Xnor = 147
- Bit_Array_Match_Equality = 148
- Bit_Array_Match_Inequality = 149
- Array_Char_To_String = 150
- Bit_Vector_To_Ostring = 151
- Bit_Vector_To_Hstring = 152
- Std_Ulogic_Match_Equality = 153
- Std_Ulogic_Match_Inequality = 154
- Std_Ulogic_Match_Less = 155
- Std_Ulogic_Match_Less_Equal = 156
- Std_Ulogic_Match_Greater = 157
- Std_Ulogic_Match_Greater_Equal = 158
- Std_Ulogic_Array_Match_Equality = 159
- Std_Ulogic_Array_Match_Inequality = 160
- Deallocate = 161
- File_Open = 162
- File_Open_Status = 163
- File_Close = 164
- Read = 165
- Read_Length = 166
- Flush = 167
- Write = 168
- Endfile = 169
- Now_Function = 170
- Real_Now_Function = 171
- Frequency_Function = 172
- PNone = 173
- Foreign_Untruncated_Text_Read = 174
- Foreign_Textio_Read_Real = 175
- Foreign_Textio_Write_Real = 176
- Ieee_1164_Scalar_And = 177
- Ieee_1164_Scalar_Nand = 178
- Ieee_1164_Scalar_Or = 179
- Ieee_1164_Scalar_Nor = 180
- Ieee_1164_Scalar_Xor = 181
- Ieee_1164_Scalar_Xnor = 182
- Ieee_1164_Scalar_Not = 183
- Ieee_1164_Vector_And = 184
- Ieee_1164_Vector_Nand = 185
- Ieee_1164_Vector_Or = 186
- Ieee_1164_Vector_Nor = 187
- Ieee_1164_Vector_Xor = 188
- Ieee_1164_Vector_Xnor = 189
- Ieee_1164_Vector_Not = 190
- Ieee_1164_To_Bit = 191
- Ieee_1164_To_Bitvector = 192
- Ieee_1164_To_Stdulogic = 193
- Ieee_1164_To_Stdlogicvector_Bv = 194
- Ieee_1164_To_Stdlogicvector_Suv = 195
- Ieee_1164_To_Stdulogicvector_Bv = 196
- Ieee_1164_To_Stdulogicvector_Slv = 197
- Ieee_1164_To_X01_Slv = 198
- Ieee_1164_To_X01_Suv = 199
- Ieee_1164_To_X01_Log = 200
- Ieee_1164_To_X01_Bv_Slv = 201
- Ieee_1164_To_X01_Bv_Suv = 202
- Ieee_1164_To_X01_Bit_Log = 203
- Ieee_1164_To_X01Z_Slv = 204
- Ieee_1164_To_X01Z_Suv = 205
- Ieee_1164_To_X01Z_Log = 206
- Ieee_1164_To_X01Z_Bv_Slv = 207
- Ieee_1164_To_X01Z_Bv_Suv = 208
- Ieee_1164_To_X01Z_Bit_Log = 209
- Ieee_1164_To_UX01_Slv = 210
- Ieee_1164_To_UX01_Suv = 211
- Ieee_1164_To_UX01_Log = 212
- Ieee_1164_To_UX01_Bv_Slv = 213
- Ieee_1164_To_UX01_Bv_Suv = 214
- Ieee_1164_To_UX01_Bit_Log = 215
- Ieee_1164_Vector_Is_X = 216
- Ieee_1164_Scalar_Is_X = 217
- Ieee_1164_Rising_Edge = 218
- Ieee_1164_Falling_Edge = 219
- Ieee_1164_And_Suv_Log = 220
- Ieee_1164_And_Log_Suv = 221
- Ieee_1164_Nand_Suv_Log = 222
- Ieee_1164_Nand_Log_Suv = 223
- Ieee_1164_Or_Suv_Log = 224
- Ieee_1164_Or_Log_Suv = 225
- Ieee_1164_Nor_Suv_Log = 226
- Ieee_1164_Nor_Log_Suv = 227
- Ieee_1164_Xor_Suv_Log = 228
- Ieee_1164_Xor_Log_Suv = 229
- Ieee_1164_Xnor_Suv_Log = 230
- Ieee_1164_Xnor_Log_Suv = 231
- Ieee_1164_And_Suv = 232
- Ieee_1164_Nand_Suv = 233
- Ieee_1164_Or_Suv = 234
- Ieee_1164_Nor_Suv = 235
- Ieee_1164_Xor_Suv = 236
- Ieee_1164_Xnor_Suv = 237
- Ieee_1164_Vector_Sll = 238
- Ieee_1164_Vector_Srl = 239
- Ieee_1164_Vector_Rol = 240
- Ieee_1164_Vector_Ror = 241
- Ieee_1164_Condition_Operator = 242
- Ieee_Numeric_Std_Toint_Uns_Nat = 243
- Ieee_Numeric_Std_Toint_Sgn_Int = 244
- Ieee_Numeric_Std_Touns_Nat_Nat_Uns = 245
- Ieee_Numeric_Std_Touns_Nat_Uns_Uns = 246
- Ieee_Numeric_Std_Tosgn_Int_Nat_Sgn = 247
- Ieee_Numeric_Std_Tosgn_Int_Sgn_Sgn = 248
- Ieee_Numeric_Std_Resize_Uns_Nat = 249
- Ieee_Numeric_Std_Resize_Sgn_Nat = 250
- Ieee_Numeric_Std_Resize_Uns_Uns = 251
- Ieee_Numeric_Std_Resize_Sgn_Sgn = 252
- Ieee_Numeric_Std_Add_Uns_Uns = 253
- Ieee_Numeric_Std_Add_Uns_Nat = 254
- Ieee_Numeric_Std_Add_Nat_Uns = 255
- Ieee_Numeric_Std_Add_Uns_Log = 256
- Ieee_Numeric_Std_Add_Log_Uns = 257
- Ieee_Numeric_Std_Add_Sgn_Sgn = 258
- Ieee_Numeric_Std_Add_Sgn_Int = 259
- Ieee_Numeric_Std_Add_Int_Sgn = 260
- Ieee_Numeric_Std_Add_Sgn_Log = 261
- Ieee_Numeric_Std_Add_Log_Sgn = 262
- Ieee_Numeric_Std_Sub_Uns_Uns = 263
- Ieee_Numeric_Std_Sub_Uns_Nat = 264
- Ieee_Numeric_Std_Sub_Nat_Uns = 265
- Ieee_Numeric_Std_Sub_Uns_Log = 266
- Ieee_Numeric_Std_Sub_Log_Uns = 267
- Ieee_Numeric_Std_Sub_Sgn_Sgn = 268
- Ieee_Numeric_Std_Sub_Sgn_Int = 269
- Ieee_Numeric_Std_Sub_Int_Sgn = 270
- Ieee_Numeric_Std_Sub_Sgn_Log = 271
- Ieee_Numeric_Std_Sub_Log_Sgn = 272
- Ieee_Numeric_Std_Mul_Uns_Uns = 273
- Ieee_Numeric_Std_Mul_Uns_Nat = 274
- Ieee_Numeric_Std_Mul_Nat_Uns = 275
- Ieee_Numeric_Std_Mul_Sgn_Sgn = 276
- Ieee_Numeric_Std_Mul_Sgn_Int = 277
- Ieee_Numeric_Std_Mul_Int_Sgn = 278
- Ieee_Numeric_Std_Div_Uns_Uns = 279
- Ieee_Numeric_Std_Div_Uns_Nat = 280
- Ieee_Numeric_Std_Div_Nat_Uns = 281
- Ieee_Numeric_Std_Div_Sgn_Sgn = 282
- Ieee_Numeric_Std_Div_Sgn_Int = 283
- Ieee_Numeric_Std_Div_Int_Sgn = 284
- Ieee_Numeric_Std_Rem_Uns_Uns = 285
- Ieee_Numeric_Std_Rem_Uns_Nat = 286
- Ieee_Numeric_Std_Rem_Nat_Uns = 287
- Ieee_Numeric_Std_Rem_Sgn_Sgn = 288
- Ieee_Numeric_Std_Rem_Sgn_Int = 289
- Ieee_Numeric_Std_Rem_Int_Sgn = 290
- Ieee_Numeric_Std_Mod_Uns_Uns = 291
- Ieee_Numeric_Std_Mod_Uns_Nat = 292
- Ieee_Numeric_Std_Mod_Nat_Uns = 293
- Ieee_Numeric_Std_Mod_Sgn_Sgn = 294
- Ieee_Numeric_Std_Mod_Sgn_Int = 295
- Ieee_Numeric_Std_Mod_Int_Sgn = 296
- Ieee_Numeric_Std_Gt_Uns_Uns = 297
- Ieee_Numeric_Std_Gt_Uns_Nat = 298
- Ieee_Numeric_Std_Gt_Nat_Uns = 299
- Ieee_Numeric_Std_Gt_Sgn_Sgn = 300
- Ieee_Numeric_Std_Gt_Sgn_Int = 301
- Ieee_Numeric_Std_Gt_Int_Sgn = 302
- Ieee_Numeric_Std_Lt_Uns_Uns = 303
- Ieee_Numeric_Std_Lt_Uns_Nat = 304
- Ieee_Numeric_Std_Lt_Nat_Uns = 305
- Ieee_Numeric_Std_Lt_Sgn_Sgn = 306
- Ieee_Numeric_Std_Lt_Sgn_Int = 307
- Ieee_Numeric_Std_Lt_Int_Sgn = 308
- Ieee_Numeric_Std_Le_Uns_Uns = 309
- Ieee_Numeric_Std_Le_Uns_Nat = 310
- Ieee_Numeric_Std_Le_Nat_Uns = 311
- Ieee_Numeric_Std_Le_Sgn_Sgn = 312
- Ieee_Numeric_Std_Le_Sgn_Int = 313
- Ieee_Numeric_Std_Le_Int_Sgn = 314
- Ieee_Numeric_Std_Ge_Uns_Uns = 315
- Ieee_Numeric_Std_Ge_Uns_Nat = 316
- Ieee_Numeric_Std_Ge_Nat_Uns = 317
- Ieee_Numeric_Std_Ge_Sgn_Sgn = 318
- Ieee_Numeric_Std_Ge_Sgn_Int = 319
- Ieee_Numeric_Std_Ge_Int_Sgn = 320
- Ieee_Numeric_Std_Eq_Uns_Uns = 321
- Ieee_Numeric_Std_Eq_Uns_Nat = 322
- Ieee_Numeric_Std_Eq_Nat_Uns = 323
- Ieee_Numeric_Std_Eq_Sgn_Sgn = 324
- Ieee_Numeric_Std_Eq_Sgn_Int = 325
- Ieee_Numeric_Std_Eq_Int_Sgn = 326
- Ieee_Numeric_Std_Ne_Uns_Uns = 327
- Ieee_Numeric_Std_Ne_Uns_Nat = 328
- Ieee_Numeric_Std_Ne_Nat_Uns = 329
- Ieee_Numeric_Std_Ne_Sgn_Sgn = 330
- Ieee_Numeric_Std_Ne_Sgn_Int = 331
- Ieee_Numeric_Std_Ne_Int_Sgn = 332
- Ieee_Numeric_Std_Match_Gt_Uns_Uns = 333
- Ieee_Numeric_Std_Match_Gt_Uns_Nat = 334
- Ieee_Numeric_Std_Match_Gt_Nat_Uns = 335
- Ieee_Numeric_Std_Match_Gt_Sgn_Sgn = 336
- Ieee_Numeric_Std_Match_Gt_Sgn_Int = 337
- Ieee_Numeric_Std_Match_Gt_Int_Sgn = 338
- Ieee_Numeric_Std_Match_Lt_Uns_Uns = 339
- Ieee_Numeric_Std_Match_Lt_Uns_Nat = 340
- Ieee_Numeric_Std_Match_Lt_Nat_Uns = 341
- Ieee_Numeric_Std_Match_Lt_Sgn_Sgn = 342
- Ieee_Numeric_Std_Match_Lt_Sgn_Int = 343
- Ieee_Numeric_Std_Match_Lt_Int_Sgn = 344
- Ieee_Numeric_Std_Match_Le_Uns_Uns = 345
- Ieee_Numeric_Std_Match_Le_Uns_Nat = 346
- Ieee_Numeric_Std_Match_Le_Nat_Uns = 347
- Ieee_Numeric_Std_Match_Le_Sgn_Sgn = 348
- Ieee_Numeric_Std_Match_Le_Sgn_Int = 349
- Ieee_Numeric_Std_Match_Le_Int_Sgn = 350
- Ieee_Numeric_Std_Match_Ge_Uns_Uns = 351
- Ieee_Numeric_Std_Match_Ge_Uns_Nat = 352
- Ieee_Numeric_Std_Match_Ge_Nat_Uns = 353
- Ieee_Numeric_Std_Match_Ge_Sgn_Sgn = 354
- Ieee_Numeric_Std_Match_Ge_Sgn_Int = 355
- Ieee_Numeric_Std_Match_Ge_Int_Sgn = 356
- Ieee_Numeric_Std_Match_Eq_Uns_Uns = 357
- Ieee_Numeric_Std_Match_Eq_Uns_Nat = 358
- Ieee_Numeric_Std_Match_Eq_Nat_Uns = 359
- Ieee_Numeric_Std_Match_Eq_Sgn_Sgn = 360
- Ieee_Numeric_Std_Match_Eq_Sgn_Int = 361
- Ieee_Numeric_Std_Match_Eq_Int_Sgn = 362
- Ieee_Numeric_Std_Match_Ne_Uns_Uns = 363
- Ieee_Numeric_Std_Match_Ne_Uns_Nat = 364
- Ieee_Numeric_Std_Match_Ne_Nat_Uns = 365
- Ieee_Numeric_Std_Match_Ne_Sgn_Sgn = 366
- Ieee_Numeric_Std_Match_Ne_Sgn_Int = 367
- Ieee_Numeric_Std_Match_Ne_Int_Sgn = 368
- Ieee_Numeric_Std_Sll_Uns_Int = 369
- Ieee_Numeric_Std_Sll_Sgn_Int = 370
- Ieee_Numeric_Std_Srl_Uns_Int = 371
- Ieee_Numeric_Std_Srl_Sgn_Int = 372
- Ieee_Numeric_Std_Sla_Uns_Int = 373
- Ieee_Numeric_Std_Sla_Sgn_Int = 374
- Ieee_Numeric_Std_Sra_Uns_Int = 375
- Ieee_Numeric_Std_Sra_Sgn_Int = 376
- Ieee_Numeric_Std_And_Uns_Uns = 377
- Ieee_Numeric_Std_And_Sgn_Sgn = 378
- Ieee_Numeric_Std_Or_Uns_Uns = 379
- Ieee_Numeric_Std_Or_Sgn_Sgn = 380
- Ieee_Numeric_Std_Nand_Uns_Uns = 381
- Ieee_Numeric_Std_Nand_Sgn_Sgn = 382
- Ieee_Numeric_Std_Nor_Uns_Uns = 383
- Ieee_Numeric_Std_Nor_Sgn_Sgn = 384
- Ieee_Numeric_Std_Xor_Uns_Uns = 385
- Ieee_Numeric_Std_Xor_Sgn_Sgn = 386
- Ieee_Numeric_Std_Xnor_Uns_Uns = 387
- Ieee_Numeric_Std_Xnor_Sgn_Sgn = 388
- Ieee_Numeric_Std_Not_Uns = 389
- Ieee_Numeric_Std_Not_Sgn = 390
- Ieee_Numeric_Std_Abs_Sgn = 391
- Ieee_Numeric_Std_Neg_Uns = 392
- Ieee_Numeric_Std_Neg_Sgn = 393
- Ieee_Numeric_Std_Min_Uns_Uns = 394
- Ieee_Numeric_Std_Min_Uns_Nat = 395
- Ieee_Numeric_Std_Min_Nat_Uns = 396
- Ieee_Numeric_Std_Min_Sgn_Sgn = 397
- Ieee_Numeric_Std_Min_Sgn_Int = 398
- Ieee_Numeric_Std_Min_Int_Sgn = 399
- Ieee_Numeric_Std_Max_Uns_Uns = 400
- Ieee_Numeric_Std_Max_Uns_Nat = 401
- Ieee_Numeric_Std_Max_Nat_Uns = 402
- Ieee_Numeric_Std_Max_Sgn_Sgn = 403
- Ieee_Numeric_Std_Max_Sgn_Int = 404
- Ieee_Numeric_Std_Max_Int_Sgn = 405
- Ieee_Numeric_Std_Shf_Left_Uns_Nat = 406
- Ieee_Numeric_Std_Shf_Right_Uns_Nat = 407
- Ieee_Numeric_Std_Shf_Left_Sgn_Nat = 408
- Ieee_Numeric_Std_Shf_Right_Sgn_Nat = 409
- Ieee_Numeric_Std_Rot_Left_Uns_Nat = 410
- Ieee_Numeric_Std_Rot_Right_Uns_Nat = 411
- Ieee_Numeric_Std_Rot_Left_Sgn_Nat = 412
- Ieee_Numeric_Std_Rot_Right_Sgn_Nat = 413
- Ieee_Numeric_Std_And_Sgn = 414
- Ieee_Numeric_Std_Nand_Sgn = 415
- Ieee_Numeric_Std_Or_Sgn = 416
- Ieee_Numeric_Std_Nor_Sgn = 417
- Ieee_Numeric_Std_Xor_Sgn = 418
- Ieee_Numeric_Std_Xnor_Sgn = 419
- Ieee_Numeric_Std_And_Uns = 420
- Ieee_Numeric_Std_Nand_Uns = 421
- Ieee_Numeric_Std_Or_Uns = 422
- Ieee_Numeric_Std_Nor_Uns = 423
- Ieee_Numeric_Std_Xor_Uns = 424
- Ieee_Numeric_Std_Xnor_Uns = 425
- Ieee_Numeric_Std_Find_Leftmost_Uns = 426
- Ieee_Numeric_Std_Find_Rightmost_Uns = 427
- Ieee_Numeric_Std_Find_Leftmost_Sgn = 428
- Ieee_Numeric_Std_Find_Rightmost_Sgn = 429
- Ieee_Numeric_Std_Match_Log = 430
- Ieee_Numeric_Std_Match_Uns = 431
- Ieee_Numeric_Std_Match_Sgn = 432
- Ieee_Numeric_Std_Match_Slv = 433
- Ieee_Numeric_Std_Match_Suv = 434
- Ieee_Numeric_Std_To_01_Uns = 435
- Ieee_Numeric_Std_To_01_Sgn = 436
- Ieee_Math_Real_Ceil = 437
- Ieee_Math_Real_Floor = 438
- Ieee_Math_Real_Round = 439
- Ieee_Math_Real_Log2 = 440
- Ieee_Math_Real_Sin = 441
- Ieee_Math_Real_Cos = 442
- Ieee_Std_Logic_Unsigned_Add_Slv_Slv = 443
- Ieee_Std_Logic_Unsigned_Add_Slv_Int = 444
- Ieee_Std_Logic_Unsigned_Add_Int_Slv = 445
- Ieee_Std_Logic_Unsigned_Add_Slv_Log = 446
- Ieee_Std_Logic_Unsigned_Add_Log_Slv = 447
- Ieee_Std_Logic_Unsigned_Sub_Slv_Slv = 448
- Ieee_Std_Logic_Unsigned_Sub_Slv_Int = 449
- Ieee_Std_Logic_Unsigned_Sub_Int_Slv = 450
- Ieee_Std_Logic_Unsigned_Sub_Slv_Log = 451
- Ieee_Std_Logic_Unsigned_Sub_Log_Slv = 452
- Ieee_Std_Logic_Unsigned_Id_Slv = 453
- Ieee_Std_Logic_Unsigned_Mul_Slv_Slv = 454
- Ieee_Std_Logic_Unsigned_Lt_Slv_Slv = 455
- Ieee_Std_Logic_Unsigned_Lt_Slv_Int = 456
- Ieee_Std_Logic_Unsigned_Lt_Int_Slv = 457
- Ieee_Std_Logic_Unsigned_Le_Slv_Slv = 458
- Ieee_Std_Logic_Unsigned_Le_Slv_Int = 459
- Ieee_Std_Logic_Unsigned_Le_Int_Slv = 460
- Ieee_Std_Logic_Unsigned_Gt_Slv_Slv = 461
- Ieee_Std_Logic_Unsigned_Gt_Slv_Int = 462
- Ieee_Std_Logic_Unsigned_Gt_Int_Slv = 463
- Ieee_Std_Logic_Unsigned_Ge_Slv_Slv = 464
- Ieee_Std_Logic_Unsigned_Ge_Slv_Int = 465
- Ieee_Std_Logic_Unsigned_Ge_Int_Slv = 466
- Ieee_Std_Logic_Unsigned_Eq_Slv_Slv = 467
- Ieee_Std_Logic_Unsigned_Eq_Slv_Int = 468
- Ieee_Std_Logic_Unsigned_Eq_Int_Slv = 469
- Ieee_Std_Logic_Unsigned_Ne_Slv_Slv = 470
- Ieee_Std_Logic_Unsigned_Ne_Slv_Int = 471
- Ieee_Std_Logic_Unsigned_Ne_Int_Slv = 472
- Ieee_Std_Logic_Unsigned_Conv_Integer = 473
- Ieee_Std_Logic_Unsigned_Shl = 474
- Ieee_Std_Logic_Unsigned_Shr = 475
- Ieee_Std_Logic_Signed_Add_Slv_Slv = 476
- Ieee_Std_Logic_Signed_Add_Slv_Int = 477
- Ieee_Std_Logic_Signed_Add_Int_Slv = 478
- Ieee_Std_Logic_Signed_Add_Slv_Log = 479
- Ieee_Std_Logic_Signed_Add_Log_Slv = 480
- Ieee_Std_Logic_Signed_Sub_Slv_Slv = 481
- Ieee_Std_Logic_Signed_Sub_Slv_Int = 482
- Ieee_Std_Logic_Signed_Sub_Int_Slv = 483
- Ieee_Std_Logic_Signed_Sub_Slv_Log = 484
- Ieee_Std_Logic_Signed_Sub_Log_Slv = 485
- Ieee_Std_Logic_Signed_Id_Slv = 486
- Ieee_Std_Logic_Signed_Neg_Slv = 487
- Ieee_Std_Logic_Signed_Abs_Slv = 488
- Ieee_Std_Logic_Signed_Mul_Slv_Slv = 489
- Ieee_Std_Logic_Signed_Lt_Slv_Slv = 490
- Ieee_Std_Logic_Signed_Lt_Slv_Int = 491
- Ieee_Std_Logic_Signed_Lt_Int_Slv = 492
- Ieee_Std_Logic_Signed_Le_Slv_Slv = 493
- Ieee_Std_Logic_Signed_Le_Slv_Int = 494
- Ieee_Std_Logic_Signed_Le_Int_Slv = 495
- Ieee_Std_Logic_Signed_Gt_Slv_Slv = 496
- Ieee_Std_Logic_Signed_Gt_Slv_Int = 497
- Ieee_Std_Logic_Signed_Gt_Int_Slv = 498
- Ieee_Std_Logic_Signed_Ge_Slv_Slv = 499
- Ieee_Std_Logic_Signed_Ge_Slv_Int = 500
- Ieee_Std_Logic_Signed_Ge_Int_Slv = 501
- Ieee_Std_Logic_Signed_Eq_Slv_Slv = 502
- Ieee_Std_Logic_Signed_Eq_Slv_Int = 503
- Ieee_Std_Logic_Signed_Eq_Int_Slv = 504
- Ieee_Std_Logic_Signed_Ne_Slv_Slv = 505
- Ieee_Std_Logic_Signed_Ne_Slv_Int = 506
- Ieee_Std_Logic_Signed_Ne_Int_Slv = 507
- Ieee_Std_Logic_Signed_Conv_Integer = 508
- Ieee_Std_Logic_Signed_Shl = 509
- Ieee_Std_Logic_Signed_Shr = 510
- Ieee_Std_Logic_Arith_Conv_Unsigned_Int = 511
- Ieee_Std_Logic_Arith_Conv_Unsigned_Uns = 512
- Ieee_Std_Logic_Arith_Conv_Unsigned_Sgn = 513
- Ieee_Std_Logic_Arith_Conv_Unsigned_Log = 514
- Ieee_Std_Logic_Arith_Conv_Integer_Int = 515
- Ieee_Std_Logic_Arith_Conv_Integer_Uns = 516
- Ieee_Std_Logic_Arith_Conv_Integer_Sgn = 517
- Ieee_Std_Logic_Arith_Conv_Integer_Log = 518
- Ieee_Std_Logic_Arith_Conv_Vector_Int = 519
- Ieee_Std_Logic_Arith_Conv_Vector_Uns = 520
- Ieee_Std_Logic_Arith_Conv_Vector_Sgn = 521
- Ieee_Std_Logic_Arith_Conv_Vector_Log = 522
- Ieee_Std_Logic_Arith_Ext = 523
- Ieee_Std_Logic_Arith_Sxt = 524
- Ieee_Std_Logic_Arith_Id_Uns_Uns = 525
- Ieee_Std_Logic_Arith_Id_Sgn_Sgn = 526
- Ieee_Std_Logic_Arith_Neg_Sgn_Sgn = 527
- Ieee_Std_Logic_Arith_Abs_Sgn_Sgn = 528
- Ieee_Std_Logic_Arith_Shl_Uns = 529
- Ieee_Std_Logic_Arith_Shl_Sgn = 530
- Ieee_Std_Logic_Arith_Shr_Uns = 531
- Ieee_Std_Logic_Arith_Shr_Sgn = 532
- Ieee_Std_Logic_Arith_Id_Uns_Slv = 533
- Ieee_Std_Logic_Arith_Id_Sgn_Slv = 534
- Ieee_Std_Logic_Arith_Neg_Sgn_Slv = 535
- Ieee_Std_Logic_Arith_Abs_Sgn_Slv = 536
- Ieee_Std_Logic_Arith_Mul_Uns_Uns_Uns = 537
- Ieee_Std_Logic_Arith_Mul_Sgn_Sgn_Sgn = 538
- Ieee_Std_Logic_Arith_Mul_Sgn_Uns_Sgn = 539
- Ieee_Std_Logic_Arith_Mul_Uns_Sgn_Sgn = 540
- Ieee_Std_Logic_Arith_Mul_Uns_Uns_Slv = 541
- Ieee_Std_Logic_Arith_Mul_Sgn_Sgn_Slv = 542
- Ieee_Std_Logic_Arith_Mul_Sgn_Uns_Slv = 543
- Ieee_Std_Logic_Arith_Mul_Uns_Sgn_Slv = 544
- Ieee_Std_Logic_Arith_Add_Uns_Uns_Uns = 545
- Ieee_Std_Logic_Arith_Add_Sgn_Sgn_Sgn = 546
- Ieee_Std_Logic_Arith_Add_Uns_Sgn_Sgn = 547
- Ieee_Std_Logic_Arith_Add_Sgn_Uns_Sgn = 548
- Ieee_Std_Logic_Arith_Add_Uns_Int_Uns = 549
- Ieee_Std_Logic_Arith_Add_Int_Uns_Uns = 550
- Ieee_Std_Logic_Arith_Add_Sgn_Int_Sgn = 551
- Ieee_Std_Logic_Arith_Add_Int_Sgn_Sgn = 552
- Ieee_Std_Logic_Arith_Add_Uns_Log_Uns = 553
- Ieee_Std_Logic_Arith_Add_Log_Uns_Uns = 554
- Ieee_Std_Logic_Arith_Add_Sgn_Log_Sgn = 555
- Ieee_Std_Logic_Arith_Add_Log_Sgn_Sgn = 556
- Ieee_Std_Logic_Arith_Add_Uns_Uns_Slv = 557
- Ieee_Std_Logic_Arith_Add_Sgn_Sgn_Slv = 558
- Ieee_Std_Logic_Arith_Add_Uns_Sgn_Slv = 559
- Ieee_Std_Logic_Arith_Add_Sgn_Uns_Slv = 560
- Ieee_Std_Logic_Arith_Add_Uns_Int_Slv = 561
- Ieee_Std_Logic_Arith_Add_Int_Uns_Slv = 562
- Ieee_Std_Logic_Arith_Add_Sgn_Int_Slv = 563
- Ieee_Std_Logic_Arith_Add_Int_Sgn_Slv = 564
- Ieee_Std_Logic_Arith_Add_Uns_Log_Slv = 565
- Ieee_Std_Logic_Arith_Add_Log_Uns_Slv = 566
- Ieee_Std_Logic_Arith_Add_Sgn_Log_Slv = 567
- Ieee_Std_Logic_Arith_Add_Log_Sgn_Slv = 568
- Ieee_Std_Logic_Arith_Sub_Uns_Uns_Uns = 569
- Ieee_Std_Logic_Arith_Sub_Sgn_Sgn_Sgn = 570
- Ieee_Std_Logic_Arith_Sub_Uns_Sgn_Sgn = 571
- Ieee_Std_Logic_Arith_Sub_Sgn_Uns_Sgn = 572
- Ieee_Std_Logic_Arith_Sub_Uns_Int_Uns = 573
- Ieee_Std_Logic_Arith_Sub_Int_Uns_Uns = 574
- Ieee_Std_Logic_Arith_Sub_Sgn_Int_Sgn = 575
- Ieee_Std_Logic_Arith_Sub_Int_Sgn_Sgn = 576
- Ieee_Std_Logic_Arith_Sub_Uns_Log_Uns = 577
- Ieee_Std_Logic_Arith_Sub_Log_Uns_Uns = 578
- Ieee_Std_Logic_Arith_Sub_Sgn_Log_Sgn = 579
- Ieee_Std_Logic_Arith_Sub_Log_Sgn_Sgn = 580
- Ieee_Std_Logic_Arith_Sub_Uns_Uns_Slv = 581
- Ieee_Std_Logic_Arith_Sub_Sgn_Sgn_Slv = 582
- Ieee_Std_Logic_Arith_Sub_Uns_Sgn_Slv = 583
- Ieee_Std_Logic_Arith_Sub_Sgn_Uns_Slv = 584
- Ieee_Std_Logic_Arith_Sub_Uns_Int_Slv = 585
- Ieee_Std_Logic_Arith_Sub_Int_Uns_Slv = 586
- Ieee_Std_Logic_Arith_Sub_Sgn_Int_Slv = 587
- Ieee_Std_Logic_Arith_Sub_Int_Sgn_Slv = 588
- Ieee_Std_Logic_Arith_Sub_Uns_Log_Slv = 589
- Ieee_Std_Logic_Arith_Sub_Log_Uns_Slv = 590
- Ieee_Std_Logic_Arith_Sub_Sgn_Log_Slv = 591
- Ieee_Std_Logic_Arith_Sub_Log_Sgn_Slv = 592
- Ieee_Std_Logic_Arith_Lt_Uns_Uns = 593
- Ieee_Std_Logic_Arith_Lt_Sgn_Sgn = 594
- Ieee_Std_Logic_Arith_Lt_Uns_Sgn = 595
- Ieee_Std_Logic_Arith_Lt_Sgn_Uns = 596
- Ieee_Std_Logic_Arith_Lt_Uns_Int = 597
- Ieee_Std_Logic_Arith_Lt_Int_Uns = 598
- Ieee_Std_Logic_Arith_Lt_Sgn_Int = 599
- Ieee_Std_Logic_Arith_Lt_Int_Sgn = 600
- Ieee_Std_Logic_Arith_Le_Uns_Uns = 601
- Ieee_Std_Logic_Arith_Le_Sgn_Sgn = 602
- Ieee_Std_Logic_Arith_Le_Uns_Sgn = 603
- Ieee_Std_Logic_Arith_Le_Sgn_Uns = 604
- Ieee_Std_Logic_Arith_Le_Uns_Int = 605
- Ieee_Std_Logic_Arith_Le_Int_Uns = 606
- Ieee_Std_Logic_Arith_Le_Sgn_Int = 607
- Ieee_Std_Logic_Arith_Le_Int_Sgn = 608
- Ieee_Std_Logic_Arith_Gt_Uns_Uns = 609
- Ieee_Std_Logic_Arith_Gt_Sgn_Sgn = 610
- Ieee_Std_Logic_Arith_Gt_Uns_Sgn = 611
- Ieee_Std_Logic_Arith_Gt_Sgn_Uns = 612
- Ieee_Std_Logic_Arith_Gt_Uns_Int = 613
- Ieee_Std_Logic_Arith_Gt_Int_Uns = 614
- Ieee_Std_Logic_Arith_Gt_Sgn_Int = 615
- Ieee_Std_Logic_Arith_Gt_Int_Sgn = 616
- Ieee_Std_Logic_Arith_Ge_Uns_Uns = 617
- Ieee_Std_Logic_Arith_Ge_Sgn_Sgn = 618
- Ieee_Std_Logic_Arith_Ge_Uns_Sgn = 619
- Ieee_Std_Logic_Arith_Ge_Sgn_Uns = 620
- Ieee_Std_Logic_Arith_Ge_Uns_Int = 621
- Ieee_Std_Logic_Arith_Ge_Int_Uns = 622
- Ieee_Std_Logic_Arith_Ge_Sgn_Int = 623
- Ieee_Std_Logic_Arith_Ge_Int_Sgn = 624
- Ieee_Std_Logic_Arith_Eq_Uns_Uns = 625
- Ieee_Std_Logic_Arith_Eq_Sgn_Sgn = 626
- Ieee_Std_Logic_Arith_Eq_Uns_Sgn = 627
- Ieee_Std_Logic_Arith_Eq_Sgn_Uns = 628
- Ieee_Std_Logic_Arith_Eq_Uns_Int = 629
- Ieee_Std_Logic_Arith_Eq_Int_Uns = 630
- Ieee_Std_Logic_Arith_Eq_Sgn_Int = 631
- Ieee_Std_Logic_Arith_Eq_Int_Sgn = 632
- Ieee_Std_Logic_Arith_Ne_Uns_Uns = 633
- Ieee_Std_Logic_Arith_Ne_Sgn_Sgn = 634
- Ieee_Std_Logic_Arith_Ne_Uns_Sgn = 635
- Ieee_Std_Logic_Arith_Ne_Sgn_Uns = 636
- Ieee_Std_Logic_Arith_Ne_Uns_Int = 637
- Ieee_Std_Logic_Arith_Ne_Int_Uns = 638
- Ieee_Std_Logic_Arith_Ne_Sgn_Int = 639
- Ieee_Std_Logic_Arith_Ne_Int_Sgn = 640
- Ieee_Std_Logic_Misc_And_Reduce_Slv = 641
- Ieee_Std_Logic_Misc_And_Reduce_Suv = 642
- Ieee_Std_Logic_Misc_Nand_Reduce_Slv = 643
- Ieee_Std_Logic_Misc_Nand_Reduce_Suv = 644
- Ieee_Std_Logic_Misc_Or_Reduce_Slv = 645
- Ieee_Std_Logic_Misc_Or_Reduce_Suv = 646
- Ieee_Std_Logic_Misc_Nor_Reduce_Slv = 647
- Ieee_Std_Logic_Misc_Nor_Reduce_Suv = 648
- Ieee_Std_Logic_Misc_Xor_Reduce_Slv = 649
- Ieee_Std_Logic_Misc_Xor_Reduce_Suv = 650
- Ieee_Std_Logic_Misc_Xnor_Reduce_Slv = 651
- Ieee_Std_Logic_Misc_Xnor_Reduce_Suv = 652
-
-
-Get_Kind = libghdl.vhdl__nodes__get_kind
-Get_Location = libghdl.vhdl__nodes__get_location
-
-Get_First_Design_Unit = libghdl.vhdl__nodes__get_first_design_unit
-
-Set_First_Design_Unit = libghdl.vhdl__nodes__set_first_design_unit
-
-Get_Last_Design_Unit = libghdl.vhdl__nodes__get_last_design_unit
-
-Set_Last_Design_Unit = libghdl.vhdl__nodes__set_last_design_unit
-
-Get_Library_Declaration = libghdl.vhdl__nodes__get_library_declaration
-
-Set_Library_Declaration = libghdl.vhdl__nodes__set_library_declaration
-
-Get_File_Checksum = libghdl.vhdl__nodes__get_file_checksum
-
-Set_File_Checksum = libghdl.vhdl__nodes__set_file_checksum
-
-Get_Analysis_Time_Stamp = libghdl.vhdl__nodes__get_analysis_time_stamp
-
-Set_Analysis_Time_Stamp = libghdl.vhdl__nodes__set_analysis_time_stamp
-
-Get_Design_File_Source = libghdl.vhdl__nodes__get_design_file_source
-
-Set_Design_File_Source = libghdl.vhdl__nodes__set_design_file_source
-
-Get_Library = libghdl.vhdl__nodes__get_library
-
-Set_Library = libghdl.vhdl__nodes__set_library
-
-Get_File_Dependence_List = libghdl.vhdl__nodes__get_file_dependence_list
-
-Set_File_Dependence_List = libghdl.vhdl__nodes__set_file_dependence_list
-
-Get_Design_File_Filename = libghdl.vhdl__nodes__get_design_file_filename
-
-Set_Design_File_Filename = libghdl.vhdl__nodes__set_design_file_filename
-
-Get_Design_File_Directory = libghdl.vhdl__nodes__get_design_file_directory
-
-Set_Design_File_Directory = libghdl.vhdl__nodes__set_design_file_directory
-
-Get_Design_File = libghdl.vhdl__nodes__get_design_file
-
-Set_Design_File = libghdl.vhdl__nodes__set_design_file
-
-Get_Design_File_Chain = libghdl.vhdl__nodes__get_design_file_chain
-
-Set_Design_File_Chain = libghdl.vhdl__nodes__set_design_file_chain
-
-Get_Library_Directory = libghdl.vhdl__nodes__get_library_directory
-
-Set_Library_Directory = libghdl.vhdl__nodes__set_library_directory
-
-Get_Date = libghdl.vhdl__nodes__get_date
-
-Set_Date = libghdl.vhdl__nodes__set_date
-
-Get_Context_Items = libghdl.vhdl__nodes__get_context_items
-
-Set_Context_Items = libghdl.vhdl__nodes__set_context_items
-
-Get_Dependence_List = libghdl.vhdl__nodes__get_dependence_list
-
-Set_Dependence_List = libghdl.vhdl__nodes__set_dependence_list
-
-Get_Analysis_Checks_List = libghdl.vhdl__nodes__get_analysis_checks_list
-
-Set_Analysis_Checks_List = libghdl.vhdl__nodes__set_analysis_checks_list
-
-Get_Date_State = libghdl.vhdl__nodes__get_date_state
-
-Set_Date_State = libghdl.vhdl__nodes__set_date_state
-
-Get_Guarded_Target_State = libghdl.vhdl__nodes__get_guarded_target_state
-
-Set_Guarded_Target_State = libghdl.vhdl__nodes__set_guarded_target_state
-
-Get_Library_Unit = libghdl.vhdl__nodes__get_library_unit
-
-Set_Library_Unit = libghdl.vhdl__nodes__set_library_unit
-
-Get_Hash_Chain = libghdl.vhdl__nodes__get_hash_chain
-
-Set_Hash_Chain = libghdl.vhdl__nodes__set_hash_chain
-
-Get_Design_Unit_Source_Pos = libghdl.vhdl__nodes__get_design_unit_source_pos
-
-Set_Design_Unit_Source_Pos = libghdl.vhdl__nodes__set_design_unit_source_pos
-
-Get_Design_Unit_Source_Line = libghdl.vhdl__nodes__get_design_unit_source_line
-
-Set_Design_Unit_Source_Line = libghdl.vhdl__nodes__set_design_unit_source_line
-
-Get_Design_Unit_Source_Col = libghdl.vhdl__nodes__get_design_unit_source_col
-
-Set_Design_Unit_Source_Col = libghdl.vhdl__nodes__set_design_unit_source_col
-
-Get_Value = libghdl.vhdl__nodes__get_value
-
-Set_Value = libghdl.vhdl__nodes__set_value
-
-Get_Enum_Pos = libghdl.vhdl__nodes__get_enum_pos
-
-Set_Enum_Pos = libghdl.vhdl__nodes__set_enum_pos
-
-Get_Physical_Literal = libghdl.vhdl__nodes__get_physical_literal
-
-Set_Physical_Literal = libghdl.vhdl__nodes__set_physical_literal
-
-Get_Fp_Value = libghdl.vhdl__nodes__get_fp_value
-
-Set_Fp_Value = libghdl.vhdl__nodes__set_fp_value
-
-Get_Simple_Aggregate_List = libghdl.vhdl__nodes__get_simple_aggregate_list
-
-Set_Simple_Aggregate_List = libghdl.vhdl__nodes__set_simple_aggregate_list
-
-Get_String8_Id = libghdl.vhdl__nodes__get_string8_id
-
-Set_String8_Id = libghdl.vhdl__nodes__set_string8_id
-
-Get_String_Length = libghdl.vhdl__nodes__get_string_length
-
-Set_String_Length = libghdl.vhdl__nodes__set_string_length
-
-Get_Bit_String_Base = libghdl.vhdl__nodes__get_bit_string_base
-
-Set_Bit_String_Base = libghdl.vhdl__nodes__set_bit_string_base
-
-Get_Has_Signed = libghdl.vhdl__nodes__get_has_signed
-
-Set_Has_Signed = libghdl.vhdl__nodes__set_has_signed
-
-Get_Has_Sign = libghdl.vhdl__nodes__get_has_sign
-
-Set_Has_Sign = libghdl.vhdl__nodes__set_has_sign
-
-Get_Has_Length = libghdl.vhdl__nodes__get_has_length
-
-Set_Has_Length = libghdl.vhdl__nodes__set_has_length
-
-Get_Literal_Length = libghdl.vhdl__nodes__get_literal_length
-
-Set_Literal_Length = libghdl.vhdl__nodes__set_literal_length
-
-Get_Literal_Origin = libghdl.vhdl__nodes__get_literal_origin
-
-Set_Literal_Origin = libghdl.vhdl__nodes__set_literal_origin
-
-Get_Range_Origin = libghdl.vhdl__nodes__get_range_origin
-
-Set_Range_Origin = libghdl.vhdl__nodes__set_range_origin
-
-Get_Literal_Subtype = libghdl.vhdl__nodes__get_literal_subtype
-
-Set_Literal_Subtype = libghdl.vhdl__nodes__set_literal_subtype
-
-Get_Allocator_Subtype = libghdl.vhdl__nodes__get_allocator_subtype
-
-Set_Allocator_Subtype = libghdl.vhdl__nodes__set_allocator_subtype
-
-Get_Entity_Class = libghdl.vhdl__nodes__get_entity_class
-
-Set_Entity_Class = libghdl.vhdl__nodes__set_entity_class
-
-Get_Entity_Name_List = libghdl.vhdl__nodes__get_entity_name_list
-
-Set_Entity_Name_List = libghdl.vhdl__nodes__set_entity_name_list
-
-Get_Attribute_Designator = libghdl.vhdl__nodes__get_attribute_designator
-
-Set_Attribute_Designator = libghdl.vhdl__nodes__set_attribute_designator
-
-Get_Attribute_Specification_Chain = (
- libghdl.vhdl__nodes__get_attribute_specification_chain
-)
-
-Set_Attribute_Specification_Chain = (
- libghdl.vhdl__nodes__set_attribute_specification_chain
-)
-
-Get_Attribute_Specification = libghdl.vhdl__nodes__get_attribute_specification
-
-Set_Attribute_Specification = libghdl.vhdl__nodes__set_attribute_specification
-
-Get_Static_Attribute_Flag = libghdl.vhdl__nodes__get_static_attribute_flag
-
-Set_Static_Attribute_Flag = libghdl.vhdl__nodes__set_static_attribute_flag
-
-Get_Signal_List = libghdl.vhdl__nodes__get_signal_list
-
-Set_Signal_List = libghdl.vhdl__nodes__set_signal_list
-
-Get_Quantity_List = libghdl.vhdl__nodes__get_quantity_list
-
-Set_Quantity_List = libghdl.vhdl__nodes__set_quantity_list
-
-Get_Designated_Entity = libghdl.vhdl__nodes__get_designated_entity
-
-Set_Designated_Entity = libghdl.vhdl__nodes__set_designated_entity
-
-Get_Formal = libghdl.vhdl__nodes__get_formal
-
-Set_Formal = libghdl.vhdl__nodes__set_formal
-
-Get_Actual = libghdl.vhdl__nodes__get_actual
-
-Set_Actual = libghdl.vhdl__nodes__set_actual
-
-Get_Actual_Conversion = libghdl.vhdl__nodes__get_actual_conversion
-
-Set_Actual_Conversion = libghdl.vhdl__nodes__set_actual_conversion
-
-Get_Formal_Conversion = libghdl.vhdl__nodes__get_formal_conversion
-
-Set_Formal_Conversion = libghdl.vhdl__nodes__set_formal_conversion
-
-Get_Whole_Association_Flag = libghdl.vhdl__nodes__get_whole_association_flag
-
-Set_Whole_Association_Flag = libghdl.vhdl__nodes__set_whole_association_flag
-
-Get_Collapse_Signal_Flag = libghdl.vhdl__nodes__get_collapse_signal_flag
-
-Set_Collapse_Signal_Flag = libghdl.vhdl__nodes__set_collapse_signal_flag
-
-Get_Artificial_Flag = libghdl.vhdl__nodes__get_artificial_flag
-
-Set_Artificial_Flag = libghdl.vhdl__nodes__set_artificial_flag
-
-Get_Open_Flag = libghdl.vhdl__nodes__get_open_flag
-
-Set_Open_Flag = libghdl.vhdl__nodes__set_open_flag
-
-Get_After_Drivers_Flag = libghdl.vhdl__nodes__get_after_drivers_flag
-
-Set_After_Drivers_Flag = libghdl.vhdl__nodes__set_after_drivers_flag
-
-Get_We_Value = libghdl.vhdl__nodes__get_we_value
-
-Set_We_Value = libghdl.vhdl__nodes__set_we_value
-
-Get_Time = libghdl.vhdl__nodes__get_time
-
-Set_Time = libghdl.vhdl__nodes__set_time
-
-Get_Associated_Expr = libghdl.vhdl__nodes__get_associated_expr
-
-Set_Associated_Expr = libghdl.vhdl__nodes__set_associated_expr
-
-Get_Associated_Block = libghdl.vhdl__nodes__get_associated_block
-
-Set_Associated_Block = libghdl.vhdl__nodes__set_associated_block
-
-Get_Associated_Chain = libghdl.vhdl__nodes__get_associated_chain
-
-Set_Associated_Chain = libghdl.vhdl__nodes__set_associated_chain
-
-Get_Choice_Name = libghdl.vhdl__nodes__get_choice_name
-
-Set_Choice_Name = libghdl.vhdl__nodes__set_choice_name
-
-Get_Choice_Expression = libghdl.vhdl__nodes__get_choice_expression
-
-Set_Choice_Expression = libghdl.vhdl__nodes__set_choice_expression
-
-Get_Choice_Range = libghdl.vhdl__nodes__get_choice_range
-
-Set_Choice_Range = libghdl.vhdl__nodes__set_choice_range
-
-Get_Same_Alternative_Flag = libghdl.vhdl__nodes__get_same_alternative_flag
-
-Set_Same_Alternative_Flag = libghdl.vhdl__nodes__set_same_alternative_flag
-
-Get_Element_Type_Flag = libghdl.vhdl__nodes__get_element_type_flag
-
-Set_Element_Type_Flag = libghdl.vhdl__nodes__set_element_type_flag
-
-Get_Architecture = libghdl.vhdl__nodes__get_architecture
-
-Set_Architecture = libghdl.vhdl__nodes__set_architecture
-
-Get_Block_Specification = libghdl.vhdl__nodes__get_block_specification
-
-Set_Block_Specification = libghdl.vhdl__nodes__set_block_specification
-
-Get_Prev_Block_Configuration = libghdl.vhdl__nodes__get_prev_block_configuration
-
-Set_Prev_Block_Configuration = libghdl.vhdl__nodes__set_prev_block_configuration
-
-Get_Configuration_Item_Chain = libghdl.vhdl__nodes__get_configuration_item_chain
-
-Set_Configuration_Item_Chain = libghdl.vhdl__nodes__set_configuration_item_chain
-
-Get_Attribute_Value_Chain = libghdl.vhdl__nodes__get_attribute_value_chain
-
-Set_Attribute_Value_Chain = libghdl.vhdl__nodes__set_attribute_value_chain
-
-Get_Spec_Chain = libghdl.vhdl__nodes__get_spec_chain
-
-Set_Spec_Chain = libghdl.vhdl__nodes__set_spec_chain
-
-Get_Value_Chain = libghdl.vhdl__nodes__get_value_chain
-
-Set_Value_Chain = libghdl.vhdl__nodes__set_value_chain
-
-Get_Attribute_Value_Spec_Chain = libghdl.vhdl__nodes__get_attribute_value_spec_chain
-
-Set_Attribute_Value_Spec_Chain = libghdl.vhdl__nodes__set_attribute_value_spec_chain
-
-Get_Entity_Name = libghdl.vhdl__nodes__get_entity_name
-
-Set_Entity_Name = libghdl.vhdl__nodes__set_entity_name
-
-Get_Package = libghdl.vhdl__nodes__get_package
-
-Set_Package = libghdl.vhdl__nodes__set_package
-
-Get_Package_Body = libghdl.vhdl__nodes__get_package_body
-
-Set_Package_Body = libghdl.vhdl__nodes__set_package_body
-
-Get_Instance_Package_Body = libghdl.vhdl__nodes__get_instance_package_body
-
-Set_Instance_Package_Body = libghdl.vhdl__nodes__set_instance_package_body
-
-Get_Need_Body = libghdl.vhdl__nodes__get_need_body
-
-Set_Need_Body = libghdl.vhdl__nodes__set_need_body
-
-Get_Macro_Expanded_Flag = libghdl.vhdl__nodes__get_macro_expanded_flag
-
-Set_Macro_Expanded_Flag = libghdl.vhdl__nodes__set_macro_expanded_flag
-
-Get_Need_Instance_Bodies = libghdl.vhdl__nodes__get_need_instance_bodies
-
-Set_Need_Instance_Bodies = libghdl.vhdl__nodes__set_need_instance_bodies
-
-Get_Hierarchical_Name = libghdl.vhdl__nodes__get_hierarchical_name
-
-Set_Hierarchical_Name = libghdl.vhdl__nodes__set_hierarchical_name
-
-Get_Inherit_Spec_Chain = libghdl.vhdl__nodes__get_inherit_spec_chain
-
-Set_Inherit_Spec_Chain = libghdl.vhdl__nodes__set_inherit_spec_chain
-
-Get_Vunit_Item_Chain = libghdl.vhdl__nodes__get_vunit_item_chain
-
-Set_Vunit_Item_Chain = libghdl.vhdl__nodes__set_vunit_item_chain
-
-Get_Bound_Vunit_Chain = libghdl.vhdl__nodes__get_bound_vunit_chain
-
-Set_Bound_Vunit_Chain = libghdl.vhdl__nodes__set_bound_vunit_chain
-
-Get_Verification_Block_Configuration = (
- libghdl.vhdl__nodes__get_verification_block_configuration
-)
-
-Set_Verification_Block_Configuration = (
- libghdl.vhdl__nodes__set_verification_block_configuration
-)
-
-Get_Block_Configuration = libghdl.vhdl__nodes__get_block_configuration
-
-Set_Block_Configuration = libghdl.vhdl__nodes__set_block_configuration
-
-Get_Concurrent_Statement_Chain = libghdl.vhdl__nodes__get_concurrent_statement_chain
-
-Set_Concurrent_Statement_Chain = libghdl.vhdl__nodes__set_concurrent_statement_chain
-
-Get_Chain = libghdl.vhdl__nodes__get_chain
-
-Set_Chain = libghdl.vhdl__nodes__set_chain
-
-Get_Port_Chain = libghdl.vhdl__nodes__get_port_chain
-
-Set_Port_Chain = libghdl.vhdl__nodes__set_port_chain
-
-Get_Generic_Chain = libghdl.vhdl__nodes__get_generic_chain
-
-Set_Generic_Chain = libghdl.vhdl__nodes__set_generic_chain
-
-Get_Type = libghdl.vhdl__nodes__get_type
-
-Set_Type = libghdl.vhdl__nodes__set_type
-
-Get_Subtype_Indication = libghdl.vhdl__nodes__get_subtype_indication
-
-Set_Subtype_Indication = libghdl.vhdl__nodes__set_subtype_indication
-
-Get_Discrete_Range = libghdl.vhdl__nodes__get_discrete_range
-
-Set_Discrete_Range = libghdl.vhdl__nodes__set_discrete_range
-
-Get_Type_Definition = libghdl.vhdl__nodes__get_type_definition
-
-Set_Type_Definition = libghdl.vhdl__nodes__set_type_definition
-
-Get_Subtype_Definition = libghdl.vhdl__nodes__get_subtype_definition
-
-Set_Subtype_Definition = libghdl.vhdl__nodes__set_subtype_definition
-
-Get_Incomplete_Type_Declaration = libghdl.vhdl__nodes__get_incomplete_type_declaration
-
-Set_Incomplete_Type_Declaration = libghdl.vhdl__nodes__set_incomplete_type_declaration
-
-Get_Interface_Type_Subprograms = libghdl.vhdl__nodes__get_interface_type_subprograms
-
-Set_Interface_Type_Subprograms = libghdl.vhdl__nodes__set_interface_type_subprograms
-
-Get_Nature_Definition = libghdl.vhdl__nodes__get_nature_definition
-
-Set_Nature_Definition = libghdl.vhdl__nodes__set_nature_definition
-
-Get_Nature = libghdl.vhdl__nodes__get_nature
-
-Set_Nature = libghdl.vhdl__nodes__set_nature
-
-Get_Subnature_Indication = libghdl.vhdl__nodes__get_subnature_indication
-
-Set_Subnature_Indication = libghdl.vhdl__nodes__set_subnature_indication
-
-Get_Mode = libghdl.vhdl__nodes__get_mode
-
-Set_Mode = libghdl.vhdl__nodes__set_mode
-
-Get_Guarded_Signal_Flag = libghdl.vhdl__nodes__get_guarded_signal_flag
-
-Set_Guarded_Signal_Flag = libghdl.vhdl__nodes__set_guarded_signal_flag
-
-Get_Signal_Kind = libghdl.vhdl__nodes__get_signal_kind
-
-Set_Signal_Kind = libghdl.vhdl__nodes__set_signal_kind
-
-Get_Base_Name = libghdl.vhdl__nodes__get_base_name
-
-Set_Base_Name = libghdl.vhdl__nodes__set_base_name
-
-Get_Interface_Declaration_Chain = libghdl.vhdl__nodes__get_interface_declaration_chain
-
-Set_Interface_Declaration_Chain = libghdl.vhdl__nodes__set_interface_declaration_chain
-
-Get_Subprogram_Specification = libghdl.vhdl__nodes__get_subprogram_specification
-
-Set_Subprogram_Specification = libghdl.vhdl__nodes__set_subprogram_specification
-
-Get_Sequential_Statement_Chain = libghdl.vhdl__nodes__get_sequential_statement_chain
-
-Set_Sequential_Statement_Chain = libghdl.vhdl__nodes__set_sequential_statement_chain
-
-Get_Simultaneous_Statement_Chain = libghdl.vhdl__nodes__get_simultaneous_statement_chain
-
-Set_Simultaneous_Statement_Chain = libghdl.vhdl__nodes__set_simultaneous_statement_chain
-
-Get_Subprogram_Body = libghdl.vhdl__nodes__get_subprogram_body
-
-Set_Subprogram_Body = libghdl.vhdl__nodes__set_subprogram_body
-
-Get_Overload_Number = libghdl.vhdl__nodes__get_overload_number
-
-Set_Overload_Number = libghdl.vhdl__nodes__set_overload_number
-
-Get_Subprogram_Depth = libghdl.vhdl__nodes__get_subprogram_depth
-
-Set_Subprogram_Depth = libghdl.vhdl__nodes__set_subprogram_depth
-
-Get_Subprogram_Hash = libghdl.vhdl__nodes__get_subprogram_hash
-
-Set_Subprogram_Hash = libghdl.vhdl__nodes__set_subprogram_hash
-
-Get_Impure_Depth = libghdl.vhdl__nodes__get_impure_depth
-
-Set_Impure_Depth = libghdl.vhdl__nodes__set_impure_depth
-
-Get_Return_Type = libghdl.vhdl__nodes__get_return_type
-
-Set_Return_Type = libghdl.vhdl__nodes__set_return_type
-
-Get_Implicit_Definition = libghdl.vhdl__nodes__get_implicit_definition
-
-Set_Implicit_Definition = libghdl.vhdl__nodes__set_implicit_definition
-
-Get_Uninstantiated_Subprogram_Name = (
- libghdl.vhdl__nodes__get_uninstantiated_subprogram_name
-)
-
-Set_Uninstantiated_Subprogram_Name = (
- libghdl.vhdl__nodes__set_uninstantiated_subprogram_name
-)
-
-Get_Default_Value = libghdl.vhdl__nodes__get_default_value
-
-Set_Default_Value = libghdl.vhdl__nodes__set_default_value
-
-Get_Deferred_Declaration = libghdl.vhdl__nodes__get_deferred_declaration
-
-Set_Deferred_Declaration = libghdl.vhdl__nodes__set_deferred_declaration
-
-Get_Deferred_Declaration_Flag = libghdl.vhdl__nodes__get_deferred_declaration_flag
-
-Set_Deferred_Declaration_Flag = libghdl.vhdl__nodes__set_deferred_declaration_flag
-
-Get_Shared_Flag = libghdl.vhdl__nodes__get_shared_flag
-
-Set_Shared_Flag = libghdl.vhdl__nodes__set_shared_flag
-
-Get_Design_Unit = libghdl.vhdl__nodes__get_design_unit
-
-Set_Design_Unit = libghdl.vhdl__nodes__set_design_unit
-
-Get_Block_Statement = libghdl.vhdl__nodes__get_block_statement
-
-Set_Block_Statement = libghdl.vhdl__nodes__set_block_statement
-
-Get_Signal_Driver = libghdl.vhdl__nodes__get_signal_driver
-
-Set_Signal_Driver = libghdl.vhdl__nodes__set_signal_driver
-
-Get_Declaration_Chain = libghdl.vhdl__nodes__get_declaration_chain
-
-Set_Declaration_Chain = libghdl.vhdl__nodes__set_declaration_chain
-
-Get_File_Logical_Name = libghdl.vhdl__nodes__get_file_logical_name
-
-Set_File_Logical_Name = libghdl.vhdl__nodes__set_file_logical_name
-
-Get_File_Open_Kind = libghdl.vhdl__nodes__get_file_open_kind
-
-Set_File_Open_Kind = libghdl.vhdl__nodes__set_file_open_kind
-
-Get_Element_Position = libghdl.vhdl__nodes__get_element_position
-
-Set_Element_Position = libghdl.vhdl__nodes__set_element_position
-
-Get_Use_Clause_Chain = libghdl.vhdl__nodes__get_use_clause_chain
-
-Set_Use_Clause_Chain = libghdl.vhdl__nodes__set_use_clause_chain
-
-Get_Context_Reference_Chain = libghdl.vhdl__nodes__get_context_reference_chain
-
-Set_Context_Reference_Chain = libghdl.vhdl__nodes__set_context_reference_chain
-
-Get_Selected_Name = libghdl.vhdl__nodes__get_selected_name
-
-Set_Selected_Name = libghdl.vhdl__nodes__set_selected_name
-
-Get_Type_Declarator = libghdl.vhdl__nodes__get_type_declarator
-
-Set_Type_Declarator = libghdl.vhdl__nodes__set_type_declarator
-
-Get_Complete_Type_Definition = libghdl.vhdl__nodes__get_complete_type_definition
-
-Set_Complete_Type_Definition = libghdl.vhdl__nodes__set_complete_type_definition
-
-Get_Incomplete_Type_Ref_Chain = libghdl.vhdl__nodes__get_incomplete_type_ref_chain
-
-Set_Incomplete_Type_Ref_Chain = libghdl.vhdl__nodes__set_incomplete_type_ref_chain
-
-Get_Associated_Type = libghdl.vhdl__nodes__get_associated_type
-
-Set_Associated_Type = libghdl.vhdl__nodes__set_associated_type
-
-Get_Enumeration_Literal_List = libghdl.vhdl__nodes__get_enumeration_literal_list
-
-Set_Enumeration_Literal_List = libghdl.vhdl__nodes__set_enumeration_literal_list
-
-Get_Entity_Class_Entry_Chain = libghdl.vhdl__nodes__get_entity_class_entry_chain
-
-Set_Entity_Class_Entry_Chain = libghdl.vhdl__nodes__set_entity_class_entry_chain
-
-Get_Group_Constituent_List = libghdl.vhdl__nodes__get_group_constituent_list
-
-Set_Group_Constituent_List = libghdl.vhdl__nodes__set_group_constituent_list
-
-Get_Unit_Chain = libghdl.vhdl__nodes__get_unit_chain
-
-Set_Unit_Chain = libghdl.vhdl__nodes__set_unit_chain
-
-Get_Primary_Unit = libghdl.vhdl__nodes__get_primary_unit
-
-Set_Primary_Unit = libghdl.vhdl__nodes__set_primary_unit
-
-Get_Identifier = libghdl.vhdl__nodes__get_identifier
-
-Set_Identifier = libghdl.vhdl__nodes__set_identifier
-
-Get_Label = libghdl.vhdl__nodes__get_label
-
-Set_Label = libghdl.vhdl__nodes__set_label
-
-Get_Visible_Flag = libghdl.vhdl__nodes__get_visible_flag
-
-Set_Visible_Flag = libghdl.vhdl__nodes__set_visible_flag
-
-Get_Range_Constraint = libghdl.vhdl__nodes__get_range_constraint
-
-Set_Range_Constraint = libghdl.vhdl__nodes__set_range_constraint
-
-Get_Direction = libghdl.vhdl__nodes__get_direction
-
-Set_Direction = libghdl.vhdl__nodes__set_direction
-
-Get_Left_Limit = libghdl.vhdl__nodes__get_left_limit
-
-Set_Left_Limit = libghdl.vhdl__nodes__set_left_limit
-
-Get_Right_Limit = libghdl.vhdl__nodes__get_right_limit
-
-Set_Right_Limit = libghdl.vhdl__nodes__set_right_limit
-
-Get_Left_Limit_Expr = libghdl.vhdl__nodes__get_left_limit_expr
-
-Set_Left_Limit_Expr = libghdl.vhdl__nodes__set_left_limit_expr
-
-Get_Right_Limit_Expr = libghdl.vhdl__nodes__get_right_limit_expr
-
-Set_Right_Limit_Expr = libghdl.vhdl__nodes__set_right_limit_expr
-
-Get_Parent_Type = libghdl.vhdl__nodes__get_parent_type
-
-Set_Parent_Type = libghdl.vhdl__nodes__set_parent_type
-
-Get_Simple_Nature = libghdl.vhdl__nodes__get_simple_nature
-
-Set_Simple_Nature = libghdl.vhdl__nodes__set_simple_nature
-
-Get_Base_Nature = libghdl.vhdl__nodes__get_base_nature
-
-Set_Base_Nature = libghdl.vhdl__nodes__set_base_nature
-
-Get_Resolution_Indication = libghdl.vhdl__nodes__get_resolution_indication
-
-Set_Resolution_Indication = libghdl.vhdl__nodes__set_resolution_indication
-
-Get_Record_Element_Resolution_Chain = (
- libghdl.vhdl__nodes__get_record_element_resolution_chain
-)
-
-Set_Record_Element_Resolution_Chain = (
- libghdl.vhdl__nodes__set_record_element_resolution_chain
-)
-
-Get_Tolerance = libghdl.vhdl__nodes__get_tolerance
-
-Set_Tolerance = libghdl.vhdl__nodes__set_tolerance
-
-Get_Plus_Terminal_Name = libghdl.vhdl__nodes__get_plus_terminal_name
-
-Set_Plus_Terminal_Name = libghdl.vhdl__nodes__set_plus_terminal_name
-
-Get_Minus_Terminal_Name = libghdl.vhdl__nodes__get_minus_terminal_name
-
-Set_Minus_Terminal_Name = libghdl.vhdl__nodes__set_minus_terminal_name
-
-Get_Plus_Terminal = libghdl.vhdl__nodes__get_plus_terminal
-
-Set_Plus_Terminal = libghdl.vhdl__nodes__set_plus_terminal
-
-Get_Minus_Terminal = libghdl.vhdl__nodes__get_minus_terminal
-
-Set_Minus_Terminal = libghdl.vhdl__nodes__set_minus_terminal
-
-Get_Magnitude_Expression = libghdl.vhdl__nodes__get_magnitude_expression
-
-Set_Magnitude_Expression = libghdl.vhdl__nodes__set_magnitude_expression
-
-Get_Phase_Expression = libghdl.vhdl__nodes__get_phase_expression
-
-Set_Phase_Expression = libghdl.vhdl__nodes__set_phase_expression
-
-Get_Power_Expression = libghdl.vhdl__nodes__get_power_expression
-
-Set_Power_Expression = libghdl.vhdl__nodes__set_power_expression
-
-Get_Simultaneous_Left = libghdl.vhdl__nodes__get_simultaneous_left
-
-Set_Simultaneous_Left = libghdl.vhdl__nodes__set_simultaneous_left
-
-Get_Simultaneous_Right = libghdl.vhdl__nodes__get_simultaneous_right
-
-Set_Simultaneous_Right = libghdl.vhdl__nodes__set_simultaneous_right
-
-Get_Text_File_Flag = libghdl.vhdl__nodes__get_text_file_flag
-
-Set_Text_File_Flag = libghdl.vhdl__nodes__set_text_file_flag
-
-Get_Only_Characters_Flag = libghdl.vhdl__nodes__get_only_characters_flag
-
-Set_Only_Characters_Flag = libghdl.vhdl__nodes__set_only_characters_flag
-
-Get_Is_Character_Type = libghdl.vhdl__nodes__get_is_character_type
-
-Set_Is_Character_Type = libghdl.vhdl__nodes__set_is_character_type
-
-Get_Nature_Staticness = libghdl.vhdl__nodes__get_nature_staticness
-
-Set_Nature_Staticness = libghdl.vhdl__nodes__set_nature_staticness
-
-Get_Type_Staticness = libghdl.vhdl__nodes__get_type_staticness
-
-Set_Type_Staticness = libghdl.vhdl__nodes__set_type_staticness
-
-Get_Constraint_State = libghdl.vhdl__nodes__get_constraint_state
-
-Set_Constraint_State = libghdl.vhdl__nodes__set_constraint_state
-
-Get_Index_Subtype_List = libghdl.vhdl__nodes__get_index_subtype_list
-
-Set_Index_Subtype_List = libghdl.vhdl__nodes__set_index_subtype_list
-
-Get_Index_Subtype_Definition_List = (
- libghdl.vhdl__nodes__get_index_subtype_definition_list
-)
-
-Set_Index_Subtype_Definition_List = (
- libghdl.vhdl__nodes__set_index_subtype_definition_list
-)
-
-Get_Element_Subtype_Indication = libghdl.vhdl__nodes__get_element_subtype_indication
-
-Set_Element_Subtype_Indication = libghdl.vhdl__nodes__set_element_subtype_indication
-
-Get_Element_Subtype = libghdl.vhdl__nodes__get_element_subtype
-
-Set_Element_Subtype = libghdl.vhdl__nodes__set_element_subtype
-
-Get_Element_Subnature_Indication = libghdl.vhdl__nodes__get_element_subnature_indication
-
-Set_Element_Subnature_Indication = libghdl.vhdl__nodes__set_element_subnature_indication
-
-Get_Element_Subnature = libghdl.vhdl__nodes__get_element_subnature
-
-Set_Element_Subnature = libghdl.vhdl__nodes__set_element_subnature
-
-Get_Index_Constraint_List = libghdl.vhdl__nodes__get_index_constraint_list
-
-Set_Index_Constraint_List = libghdl.vhdl__nodes__set_index_constraint_list
-
-Get_Array_Element_Constraint = libghdl.vhdl__nodes__get_array_element_constraint
-
-Set_Array_Element_Constraint = libghdl.vhdl__nodes__set_array_element_constraint
-
-Get_Elements_Declaration_List = libghdl.vhdl__nodes__get_elements_declaration_list
-
-Set_Elements_Declaration_List = libghdl.vhdl__nodes__set_elements_declaration_list
-
-Get_Owned_Elements_Chain = libghdl.vhdl__nodes__get_owned_elements_chain
-
-Set_Owned_Elements_Chain = libghdl.vhdl__nodes__set_owned_elements_chain
-
-Get_Designated_Type = libghdl.vhdl__nodes__get_designated_type
-
-Set_Designated_Type = libghdl.vhdl__nodes__set_designated_type
-
-Get_Designated_Subtype_Indication = (
- libghdl.vhdl__nodes__get_designated_subtype_indication
-)
-
-Set_Designated_Subtype_Indication = (
- libghdl.vhdl__nodes__set_designated_subtype_indication
-)
-
-Get_Index_List = libghdl.vhdl__nodes__get_index_list
-
-Set_Index_List = libghdl.vhdl__nodes__set_index_list
-
-Get_Reference = libghdl.vhdl__nodes__get_reference
-
-Set_Reference = libghdl.vhdl__nodes__set_reference
-
-Get_Nature_Declarator = libghdl.vhdl__nodes__get_nature_declarator
-
-Set_Nature_Declarator = libghdl.vhdl__nodes__set_nature_declarator
-
-Get_Across_Type_Mark = libghdl.vhdl__nodes__get_across_type_mark
-
-Set_Across_Type_Mark = libghdl.vhdl__nodes__set_across_type_mark
-
-Get_Through_Type_Mark = libghdl.vhdl__nodes__get_through_type_mark
-
-Set_Through_Type_Mark = libghdl.vhdl__nodes__set_through_type_mark
-
-Get_Across_Type_Definition = libghdl.vhdl__nodes__get_across_type_definition
-
-Set_Across_Type_Definition = libghdl.vhdl__nodes__set_across_type_definition
-
-Get_Through_Type_Definition = libghdl.vhdl__nodes__get_through_type_definition
-
-Set_Through_Type_Definition = libghdl.vhdl__nodes__set_through_type_definition
-
-Get_Across_Type = libghdl.vhdl__nodes__get_across_type
-
-Set_Across_Type = libghdl.vhdl__nodes__set_across_type
-
-Get_Through_Type = libghdl.vhdl__nodes__get_through_type
-
-Set_Through_Type = libghdl.vhdl__nodes__set_through_type
-
-Get_Target = libghdl.vhdl__nodes__get_target
-
-Set_Target = libghdl.vhdl__nodes__set_target
-
-Get_Waveform_Chain = libghdl.vhdl__nodes__get_waveform_chain
-
-Set_Waveform_Chain = libghdl.vhdl__nodes__set_waveform_chain
-
-Get_Guard = libghdl.vhdl__nodes__get_guard
-
-Set_Guard = libghdl.vhdl__nodes__set_guard
-
-Get_Delay_Mechanism = libghdl.vhdl__nodes__get_delay_mechanism
-
-Set_Delay_Mechanism = libghdl.vhdl__nodes__set_delay_mechanism
-
-Get_Reject_Time_Expression = libghdl.vhdl__nodes__get_reject_time_expression
-
-Set_Reject_Time_Expression = libghdl.vhdl__nodes__set_reject_time_expression
-
-Get_Force_Mode = libghdl.vhdl__nodes__get_force_mode
-
-Set_Force_Mode = libghdl.vhdl__nodes__set_force_mode
-
-Get_Has_Force_Mode = libghdl.vhdl__nodes__get_has_force_mode
-
-Set_Has_Force_Mode = libghdl.vhdl__nodes__set_has_force_mode
-
-Get_Sensitivity_List = libghdl.vhdl__nodes__get_sensitivity_list
-
-Set_Sensitivity_List = libghdl.vhdl__nodes__set_sensitivity_list
-
-Get_Process_Origin = libghdl.vhdl__nodes__get_process_origin
-
-Set_Process_Origin = libghdl.vhdl__nodes__set_process_origin
-
-Get_Package_Origin = libghdl.vhdl__nodes__get_package_origin
-
-Set_Package_Origin = libghdl.vhdl__nodes__set_package_origin
-
-Get_Condition_Clause = libghdl.vhdl__nodes__get_condition_clause
-
-Set_Condition_Clause = libghdl.vhdl__nodes__set_condition_clause
-
-Get_Break_Element = libghdl.vhdl__nodes__get_break_element
-
-Set_Break_Element = libghdl.vhdl__nodes__set_break_element
-
-Get_Selector_Quantity = libghdl.vhdl__nodes__get_selector_quantity
-
-Set_Selector_Quantity = libghdl.vhdl__nodes__set_selector_quantity
-
-Get_Break_Quantity = libghdl.vhdl__nodes__get_break_quantity
-
-Set_Break_Quantity = libghdl.vhdl__nodes__set_break_quantity
-
-Get_Timeout_Clause = libghdl.vhdl__nodes__get_timeout_clause
-
-Set_Timeout_Clause = libghdl.vhdl__nodes__set_timeout_clause
-
-Get_Postponed_Flag = libghdl.vhdl__nodes__get_postponed_flag
-
-Set_Postponed_Flag = libghdl.vhdl__nodes__set_postponed_flag
-
-Get_Callees_List = libghdl.vhdl__nodes__get_callees_list
-
-Set_Callees_List = libghdl.vhdl__nodes__set_callees_list
-
-Get_Passive_Flag = libghdl.vhdl__nodes__get_passive_flag
-
-Set_Passive_Flag = libghdl.vhdl__nodes__set_passive_flag
-
-Get_Resolution_Function_Flag = libghdl.vhdl__nodes__get_resolution_function_flag
-
-Set_Resolution_Function_Flag = libghdl.vhdl__nodes__set_resolution_function_flag
-
-Get_Wait_State = libghdl.vhdl__nodes__get_wait_state
-
-Set_Wait_State = libghdl.vhdl__nodes__set_wait_state
-
-Get_All_Sensitized_State = libghdl.vhdl__nodes__get_all_sensitized_state
-
-Set_All_Sensitized_State = libghdl.vhdl__nodes__set_all_sensitized_state
-
-Get_Seen_Flag = libghdl.vhdl__nodes__get_seen_flag
-
-Set_Seen_Flag = libghdl.vhdl__nodes__set_seen_flag
-
-Get_Pure_Flag = libghdl.vhdl__nodes__get_pure_flag
-
-Set_Pure_Flag = libghdl.vhdl__nodes__set_pure_flag
-
-Get_Foreign_Flag = libghdl.vhdl__nodes__get_foreign_flag
-
-Set_Foreign_Flag = libghdl.vhdl__nodes__set_foreign_flag
-
-Get_Resolved_Flag = libghdl.vhdl__nodes__get_resolved_flag
-
-Set_Resolved_Flag = libghdl.vhdl__nodes__set_resolved_flag
-
-Get_Signal_Type_Flag = libghdl.vhdl__nodes__get_signal_type_flag
-
-Set_Signal_Type_Flag = libghdl.vhdl__nodes__set_signal_type_flag
-
-Get_Has_Signal_Flag = libghdl.vhdl__nodes__get_has_signal_flag
-
-Set_Has_Signal_Flag = libghdl.vhdl__nodes__set_has_signal_flag
-
-Get_Purity_State = libghdl.vhdl__nodes__get_purity_state
-
-Set_Purity_State = libghdl.vhdl__nodes__set_purity_state
-
-Get_Elab_Flag = libghdl.vhdl__nodes__get_elab_flag
-
-Set_Elab_Flag = libghdl.vhdl__nodes__set_elab_flag
-
-Get_Vendor_Library_Flag = libghdl.vhdl__nodes__get_vendor_library_flag
-
-Set_Vendor_Library_Flag = libghdl.vhdl__nodes__set_vendor_library_flag
-
-Get_Configuration_Mark_Flag = libghdl.vhdl__nodes__get_configuration_mark_flag
-
-Set_Configuration_Mark_Flag = libghdl.vhdl__nodes__set_configuration_mark_flag
-
-Get_Configuration_Done_Flag = libghdl.vhdl__nodes__get_configuration_done_flag
-
-Set_Configuration_Done_Flag = libghdl.vhdl__nodes__set_configuration_done_flag
-
-Get_Index_Constraint_Flag = libghdl.vhdl__nodes__get_index_constraint_flag
-
-Set_Index_Constraint_Flag = libghdl.vhdl__nodes__set_index_constraint_flag
-
-Get_Hide_Implicit_Flag = libghdl.vhdl__nodes__get_hide_implicit_flag
-
-Set_Hide_Implicit_Flag = libghdl.vhdl__nodes__set_hide_implicit_flag
-
-Get_Assertion_Condition = libghdl.vhdl__nodes__get_assertion_condition
-
-Set_Assertion_Condition = libghdl.vhdl__nodes__set_assertion_condition
-
-Get_Report_Expression = libghdl.vhdl__nodes__get_report_expression
-
-Set_Report_Expression = libghdl.vhdl__nodes__set_report_expression
-
-Get_Severity_Expression = libghdl.vhdl__nodes__get_severity_expression
-
-Set_Severity_Expression = libghdl.vhdl__nodes__set_severity_expression
-
-Get_Instantiated_Unit = libghdl.vhdl__nodes__get_instantiated_unit
-
-Set_Instantiated_Unit = libghdl.vhdl__nodes__set_instantiated_unit
-
-Get_Generic_Map_Aspect_Chain = libghdl.vhdl__nodes__get_generic_map_aspect_chain
-
-Set_Generic_Map_Aspect_Chain = libghdl.vhdl__nodes__set_generic_map_aspect_chain
-
-Get_Port_Map_Aspect_Chain = libghdl.vhdl__nodes__get_port_map_aspect_chain
-
-Set_Port_Map_Aspect_Chain = libghdl.vhdl__nodes__set_port_map_aspect_chain
-
-Get_Configuration_Name = libghdl.vhdl__nodes__get_configuration_name
-
-Set_Configuration_Name = libghdl.vhdl__nodes__set_configuration_name
-
-Get_Component_Configuration = libghdl.vhdl__nodes__get_component_configuration
-
-Set_Component_Configuration = libghdl.vhdl__nodes__set_component_configuration
-
-Get_Configuration_Specification = libghdl.vhdl__nodes__get_configuration_specification
-
-Set_Configuration_Specification = libghdl.vhdl__nodes__set_configuration_specification
-
-Get_Default_Binding_Indication = libghdl.vhdl__nodes__get_default_binding_indication
-
-Set_Default_Binding_Indication = libghdl.vhdl__nodes__set_default_binding_indication
-
-Get_Default_Configuration_Declaration = (
- libghdl.vhdl__nodes__get_default_configuration_declaration
-)
-
-Set_Default_Configuration_Declaration = (
- libghdl.vhdl__nodes__set_default_configuration_declaration
-)
-
-Get_Expression = libghdl.vhdl__nodes__get_expression
-
-Set_Expression = libghdl.vhdl__nodes__set_expression
-
-Get_Conditional_Expression_Chain = libghdl.vhdl__nodes__get_conditional_expression_chain
-
-Set_Conditional_Expression_Chain = libghdl.vhdl__nodes__set_conditional_expression_chain
-
-Get_Allocator_Designated_Type = libghdl.vhdl__nodes__get_allocator_designated_type
-
-Set_Allocator_Designated_Type = libghdl.vhdl__nodes__set_allocator_designated_type
-
-Get_Selected_Waveform_Chain = libghdl.vhdl__nodes__get_selected_waveform_chain
-
-Set_Selected_Waveform_Chain = libghdl.vhdl__nodes__set_selected_waveform_chain
-
-Get_Conditional_Waveform_Chain = libghdl.vhdl__nodes__get_conditional_waveform_chain
-
-Set_Conditional_Waveform_Chain = libghdl.vhdl__nodes__set_conditional_waveform_chain
-
-Get_Guard_Expression = libghdl.vhdl__nodes__get_guard_expression
-
-Set_Guard_Expression = libghdl.vhdl__nodes__set_guard_expression
-
-Get_Guard_Decl = libghdl.vhdl__nodes__get_guard_decl
-
-Set_Guard_Decl = libghdl.vhdl__nodes__set_guard_decl
-
-Get_Guard_Sensitivity_List = libghdl.vhdl__nodes__get_guard_sensitivity_list
-
-Set_Guard_Sensitivity_List = libghdl.vhdl__nodes__set_guard_sensitivity_list
-
-Get_Signal_Attribute_Chain = libghdl.vhdl__nodes__get_signal_attribute_chain
-
-Set_Signal_Attribute_Chain = libghdl.vhdl__nodes__set_signal_attribute_chain
-
-Get_Block_Block_Configuration = libghdl.vhdl__nodes__get_block_block_configuration
-
-Set_Block_Block_Configuration = libghdl.vhdl__nodes__set_block_block_configuration
-
-Get_Package_Header = libghdl.vhdl__nodes__get_package_header
-
-Set_Package_Header = libghdl.vhdl__nodes__set_package_header
-
-Get_Block_Header = libghdl.vhdl__nodes__get_block_header
-
-Set_Block_Header = libghdl.vhdl__nodes__set_block_header
-
-Get_Uninstantiated_Package_Name = libghdl.vhdl__nodes__get_uninstantiated_package_name
-
-Set_Uninstantiated_Package_Name = libghdl.vhdl__nodes__set_uninstantiated_package_name
-
-Get_Uninstantiated_Package_Decl = libghdl.vhdl__nodes__get_uninstantiated_package_decl
-
-Set_Uninstantiated_Package_Decl = libghdl.vhdl__nodes__set_uninstantiated_package_decl
-
-Get_Instance_Source_File = libghdl.vhdl__nodes__get_instance_source_file
-
-Set_Instance_Source_File = libghdl.vhdl__nodes__set_instance_source_file
-
-Get_Generate_Block_Configuration = libghdl.vhdl__nodes__get_generate_block_configuration
-
-Set_Generate_Block_Configuration = libghdl.vhdl__nodes__set_generate_block_configuration
-
-Get_Generate_Statement_Body = libghdl.vhdl__nodes__get_generate_statement_body
-
-Set_Generate_Statement_Body = libghdl.vhdl__nodes__set_generate_statement_body
-
-Get_Alternative_Label = libghdl.vhdl__nodes__get_alternative_label
-
-Set_Alternative_Label = libghdl.vhdl__nodes__set_alternative_label
-
-Get_Generate_Else_Clause = libghdl.vhdl__nodes__get_generate_else_clause
-
-Set_Generate_Else_Clause = libghdl.vhdl__nodes__set_generate_else_clause
-
-Get_Condition = libghdl.vhdl__nodes__get_condition
-
-Set_Condition = libghdl.vhdl__nodes__set_condition
-
-Get_Else_Clause = libghdl.vhdl__nodes__get_else_clause
-
-Set_Else_Clause = libghdl.vhdl__nodes__set_else_clause
-
-Get_Parameter_Specification = libghdl.vhdl__nodes__get_parameter_specification
-
-Set_Parameter_Specification = libghdl.vhdl__nodes__set_parameter_specification
-
-Get_Parent = libghdl.vhdl__nodes__get_parent
-
-Set_Parent = libghdl.vhdl__nodes__set_parent
-
-Get_Loop_Label = libghdl.vhdl__nodes__get_loop_label
-
-Set_Loop_Label = libghdl.vhdl__nodes__set_loop_label
-
-Get_Exit_Flag = libghdl.vhdl__nodes__get_exit_flag
-
-Set_Exit_Flag = libghdl.vhdl__nodes__set_exit_flag
-
-Get_Next_Flag = libghdl.vhdl__nodes__get_next_flag
-
-Set_Next_Flag = libghdl.vhdl__nodes__set_next_flag
-
-Get_Component_Name = libghdl.vhdl__nodes__get_component_name
-
-Set_Component_Name = libghdl.vhdl__nodes__set_component_name
-
-Get_Instantiation_List = libghdl.vhdl__nodes__get_instantiation_list
-
-Set_Instantiation_List = libghdl.vhdl__nodes__set_instantiation_list
-
-Get_Entity_Aspect = libghdl.vhdl__nodes__get_entity_aspect
-
-Set_Entity_Aspect = libghdl.vhdl__nodes__set_entity_aspect
-
-Get_Default_Entity_Aspect = libghdl.vhdl__nodes__get_default_entity_aspect
-
-Set_Default_Entity_Aspect = libghdl.vhdl__nodes__set_default_entity_aspect
-
-Get_Binding_Indication = libghdl.vhdl__nodes__get_binding_indication
-
-Set_Binding_Indication = libghdl.vhdl__nodes__set_binding_indication
-
-Get_Named_Entity = libghdl.vhdl__nodes__get_named_entity
-
-Set_Named_Entity = libghdl.vhdl__nodes__set_named_entity
-
-Get_Alias_Declaration = libghdl.vhdl__nodes__get_alias_declaration
-
-Set_Alias_Declaration = libghdl.vhdl__nodes__set_alias_declaration
-
-Get_Referenced_Name = libghdl.vhdl__nodes__get_referenced_name
-
-Set_Referenced_Name = libghdl.vhdl__nodes__set_referenced_name
-
-Get_Expr_Staticness = libghdl.vhdl__nodes__get_expr_staticness
-
-Set_Expr_Staticness = libghdl.vhdl__nodes__set_expr_staticness
-
-Get_Scalar_Size = libghdl.vhdl__nodes__get_scalar_size
-
-Set_Scalar_Size = libghdl.vhdl__nodes__set_scalar_size
-
-Get_Error_Origin = libghdl.vhdl__nodes__get_error_origin
-
-Set_Error_Origin = libghdl.vhdl__nodes__set_error_origin
-
-Get_Operand = libghdl.vhdl__nodes__get_operand
-
-Set_Operand = libghdl.vhdl__nodes__set_operand
-
-Get_Left = libghdl.vhdl__nodes__get_left
-
-Set_Left = libghdl.vhdl__nodes__set_left
-
-Get_Right = libghdl.vhdl__nodes__get_right
-
-Set_Right = libghdl.vhdl__nodes__set_right
-
-Get_Unit_Name = libghdl.vhdl__nodes__get_unit_name
-
-Set_Unit_Name = libghdl.vhdl__nodes__set_unit_name
-
-Get_Name = libghdl.vhdl__nodes__get_name
-
-Set_Name = libghdl.vhdl__nodes__set_name
-
-Get_Group_Template_Name = libghdl.vhdl__nodes__get_group_template_name
-
-Set_Group_Template_Name = libghdl.vhdl__nodes__set_group_template_name
-
-Get_Name_Staticness = libghdl.vhdl__nodes__get_name_staticness
-
-Set_Name_Staticness = libghdl.vhdl__nodes__set_name_staticness
-
-Get_Prefix = libghdl.vhdl__nodes__get_prefix
-
-Set_Prefix = libghdl.vhdl__nodes__set_prefix
-
-Get_Signature_Prefix = libghdl.vhdl__nodes__get_signature_prefix
-
-Set_Signature_Prefix = libghdl.vhdl__nodes__set_signature_prefix
-
-Get_External_Pathname = libghdl.vhdl__nodes__get_external_pathname
-
-Set_External_Pathname = libghdl.vhdl__nodes__set_external_pathname
-
-Get_Pathname_Suffix = libghdl.vhdl__nodes__get_pathname_suffix
-
-Set_Pathname_Suffix = libghdl.vhdl__nodes__set_pathname_suffix
-
-Get_Pathname_Expression = libghdl.vhdl__nodes__get_pathname_expression
-
-Set_Pathname_Expression = libghdl.vhdl__nodes__set_pathname_expression
-
-Get_In_Formal_Flag = libghdl.vhdl__nodes__get_in_formal_flag
-
-Set_In_Formal_Flag = libghdl.vhdl__nodes__set_in_formal_flag
-
-Get_Slice_Subtype = libghdl.vhdl__nodes__get_slice_subtype
-
-Set_Slice_Subtype = libghdl.vhdl__nodes__set_slice_subtype
-
-Get_Suffix = libghdl.vhdl__nodes__get_suffix
-
-Set_Suffix = libghdl.vhdl__nodes__set_suffix
-
-Get_Index_Subtype = libghdl.vhdl__nodes__get_index_subtype
-
-Set_Index_Subtype = libghdl.vhdl__nodes__set_index_subtype
-
-Get_Parameter = libghdl.vhdl__nodes__get_parameter
-
-Set_Parameter = libghdl.vhdl__nodes__set_parameter
-
-Get_Parameter_2 = libghdl.vhdl__nodes__get_parameter_2
-
-Set_Parameter_2 = libghdl.vhdl__nodes__set_parameter_2
-
-Get_Parameter_3 = libghdl.vhdl__nodes__get_parameter_3
-
-Set_Parameter_3 = libghdl.vhdl__nodes__set_parameter_3
-
-Get_Parameter_4 = libghdl.vhdl__nodes__get_parameter_4
-
-Set_Parameter_4 = libghdl.vhdl__nodes__set_parameter_4
-
-Get_Attr_Chain = libghdl.vhdl__nodes__get_attr_chain
-
-Set_Attr_Chain = libghdl.vhdl__nodes__set_attr_chain
-
-Get_Signal_Attribute_Declaration = libghdl.vhdl__nodes__get_signal_attribute_declaration
-
-Set_Signal_Attribute_Declaration = libghdl.vhdl__nodes__set_signal_attribute_declaration
-
-Get_Actual_Type = libghdl.vhdl__nodes__get_actual_type
-
-Set_Actual_Type = libghdl.vhdl__nodes__set_actual_type
-
-Get_Actual_Type_Definition = libghdl.vhdl__nodes__get_actual_type_definition
-
-Set_Actual_Type_Definition = libghdl.vhdl__nodes__set_actual_type_definition
-
-Get_Association_Chain = libghdl.vhdl__nodes__get_association_chain
-
-Set_Association_Chain = libghdl.vhdl__nodes__set_association_chain
-
-Get_Individual_Association_Chain = libghdl.vhdl__nodes__get_individual_association_chain
-
-Set_Individual_Association_Chain = libghdl.vhdl__nodes__set_individual_association_chain
-
-Get_Subprogram_Association_Chain = libghdl.vhdl__nodes__get_subprogram_association_chain
-
-Set_Subprogram_Association_Chain = libghdl.vhdl__nodes__set_subprogram_association_chain
-
-Get_Aggregate_Info = libghdl.vhdl__nodes__get_aggregate_info
-
-Set_Aggregate_Info = libghdl.vhdl__nodes__set_aggregate_info
-
-Get_Sub_Aggregate_Info = libghdl.vhdl__nodes__get_sub_aggregate_info
-
-Set_Sub_Aggregate_Info = libghdl.vhdl__nodes__set_sub_aggregate_info
-
-Get_Aggr_Dynamic_Flag = libghdl.vhdl__nodes__get_aggr_dynamic_flag
-
-Set_Aggr_Dynamic_Flag = libghdl.vhdl__nodes__set_aggr_dynamic_flag
-
-Get_Aggr_Min_Length = libghdl.vhdl__nodes__get_aggr_min_length
-
-Set_Aggr_Min_Length = libghdl.vhdl__nodes__set_aggr_min_length
-
-Get_Aggr_Low_Limit = libghdl.vhdl__nodes__get_aggr_low_limit
-
-Set_Aggr_Low_Limit = libghdl.vhdl__nodes__set_aggr_low_limit
-
-Get_Aggr_High_Limit = libghdl.vhdl__nodes__get_aggr_high_limit
-
-Set_Aggr_High_Limit = libghdl.vhdl__nodes__set_aggr_high_limit
-
-Get_Aggr_Others_Flag = libghdl.vhdl__nodes__get_aggr_others_flag
-
-Set_Aggr_Others_Flag = libghdl.vhdl__nodes__set_aggr_others_flag
-
-Get_Aggr_Named_Flag = libghdl.vhdl__nodes__get_aggr_named_flag
-
-Set_Aggr_Named_Flag = libghdl.vhdl__nodes__set_aggr_named_flag
-
-Get_Aggregate_Expand_Flag = libghdl.vhdl__nodes__get_aggregate_expand_flag
-
-Set_Aggregate_Expand_Flag = libghdl.vhdl__nodes__set_aggregate_expand_flag
-
-Get_Association_Choices_Chain = libghdl.vhdl__nodes__get_association_choices_chain
-
-Set_Association_Choices_Chain = libghdl.vhdl__nodes__set_association_choices_chain
-
-Get_Case_Statement_Alternative_Chain = (
- libghdl.vhdl__nodes__get_case_statement_alternative_chain
-)
-
-Set_Case_Statement_Alternative_Chain = (
- libghdl.vhdl__nodes__set_case_statement_alternative_chain
-)
-
-Get_Choice_Staticness = libghdl.vhdl__nodes__get_choice_staticness
-
-Set_Choice_Staticness = libghdl.vhdl__nodes__set_choice_staticness
-
-Get_Procedure_Call = libghdl.vhdl__nodes__get_procedure_call
-
-Set_Procedure_Call = libghdl.vhdl__nodes__set_procedure_call
-
-Get_Implementation = libghdl.vhdl__nodes__get_implementation
-
-Set_Implementation = libghdl.vhdl__nodes__set_implementation
-
-Get_Parameter_Association_Chain = libghdl.vhdl__nodes__get_parameter_association_chain
-
-Set_Parameter_Association_Chain = libghdl.vhdl__nodes__set_parameter_association_chain
-
-Get_Method_Object = libghdl.vhdl__nodes__get_method_object
-
-Set_Method_Object = libghdl.vhdl__nodes__set_method_object
-
-Get_Subtype_Type_Mark = libghdl.vhdl__nodes__get_subtype_type_mark
-
-Set_Subtype_Type_Mark = libghdl.vhdl__nodes__set_subtype_type_mark
-
-Get_Subnature_Nature_Mark = libghdl.vhdl__nodes__get_subnature_nature_mark
-
-Set_Subnature_Nature_Mark = libghdl.vhdl__nodes__set_subnature_nature_mark
-
-Get_Type_Conversion_Subtype = libghdl.vhdl__nodes__get_type_conversion_subtype
-
-Set_Type_Conversion_Subtype = libghdl.vhdl__nodes__set_type_conversion_subtype
-
-Get_Type_Mark = libghdl.vhdl__nodes__get_type_mark
-
-Set_Type_Mark = libghdl.vhdl__nodes__set_type_mark
-
-Get_File_Type_Mark = libghdl.vhdl__nodes__get_file_type_mark
-
-Set_File_Type_Mark = libghdl.vhdl__nodes__set_file_type_mark
-
-Get_Return_Type_Mark = libghdl.vhdl__nodes__get_return_type_mark
-
-Set_Return_Type_Mark = libghdl.vhdl__nodes__set_return_type_mark
-
-Get_Has_Disconnect_Flag = libghdl.vhdl__nodes__get_has_disconnect_flag
-
-Set_Has_Disconnect_Flag = libghdl.vhdl__nodes__set_has_disconnect_flag
-
-Get_Has_Active_Flag = libghdl.vhdl__nodes__get_has_active_flag
-
-Set_Has_Active_Flag = libghdl.vhdl__nodes__set_has_active_flag
-
-Get_Is_Within_Flag = libghdl.vhdl__nodes__get_is_within_flag
-
-Set_Is_Within_Flag = libghdl.vhdl__nodes__set_is_within_flag
-
-Get_Type_Marks_List = libghdl.vhdl__nodes__get_type_marks_list
-
-Set_Type_Marks_List = libghdl.vhdl__nodes__set_type_marks_list
-
-Get_Implicit_Alias_Flag = libghdl.vhdl__nodes__get_implicit_alias_flag
-
-Set_Implicit_Alias_Flag = libghdl.vhdl__nodes__set_implicit_alias_flag
-
-Get_Alias_Signature = libghdl.vhdl__nodes__get_alias_signature
-
-Set_Alias_Signature = libghdl.vhdl__nodes__set_alias_signature
-
-Get_Attribute_Signature = libghdl.vhdl__nodes__get_attribute_signature
-
-Set_Attribute_Signature = libghdl.vhdl__nodes__set_attribute_signature
-
-Get_Overload_List = libghdl.vhdl__nodes__get_overload_list
-
-Set_Overload_List = libghdl.vhdl__nodes__set_overload_list
-
-Get_Simple_Name_Identifier = libghdl.vhdl__nodes__get_simple_name_identifier
-
-Set_Simple_Name_Identifier = libghdl.vhdl__nodes__set_simple_name_identifier
-
-Get_Simple_Name_Subtype = libghdl.vhdl__nodes__get_simple_name_subtype
-
-Set_Simple_Name_Subtype = libghdl.vhdl__nodes__set_simple_name_subtype
-
-Get_Protected_Type_Body = libghdl.vhdl__nodes__get_protected_type_body
-
-Set_Protected_Type_Body = libghdl.vhdl__nodes__set_protected_type_body
-
-Get_Protected_Type_Declaration = libghdl.vhdl__nodes__get_protected_type_declaration
-
-Set_Protected_Type_Declaration = libghdl.vhdl__nodes__set_protected_type_declaration
-
-Get_Use_Flag = libghdl.vhdl__nodes__get_use_flag
-
-Set_Use_Flag = libghdl.vhdl__nodes__set_use_flag
-
-Get_End_Has_Reserved_Id = libghdl.vhdl__nodes__get_end_has_reserved_id
-
-Set_End_Has_Reserved_Id = libghdl.vhdl__nodes__set_end_has_reserved_id
-
-Get_End_Has_Identifier = libghdl.vhdl__nodes__get_end_has_identifier
-
-Set_End_Has_Identifier = libghdl.vhdl__nodes__set_end_has_identifier
-
-Get_End_Has_Postponed = libghdl.vhdl__nodes__get_end_has_postponed
-
-Set_End_Has_Postponed = libghdl.vhdl__nodes__set_end_has_postponed
-
-Get_Has_Label = libghdl.vhdl__nodes__get_has_label
-
-Set_Has_Label = libghdl.vhdl__nodes__set_has_label
-
-Get_Has_Begin = libghdl.vhdl__nodes__get_has_begin
-
-Set_Has_Begin = libghdl.vhdl__nodes__set_has_begin
-
-Get_Has_End = libghdl.vhdl__nodes__get_has_end
-
-Set_Has_End = libghdl.vhdl__nodes__set_has_end
-
-Get_Has_Is = libghdl.vhdl__nodes__get_has_is
-
-Set_Has_Is = libghdl.vhdl__nodes__set_has_is
-
-Get_Has_Pure = libghdl.vhdl__nodes__get_has_pure
-
-Set_Has_Pure = libghdl.vhdl__nodes__set_has_pure
-
-Get_Has_Body = libghdl.vhdl__nodes__get_has_body
-
-Set_Has_Body = libghdl.vhdl__nodes__set_has_body
-
-Get_Has_Parameter = libghdl.vhdl__nodes__get_has_parameter
-
-Set_Has_Parameter = libghdl.vhdl__nodes__set_has_parameter
-
-Get_Has_Component = libghdl.vhdl__nodes__get_has_component
-
-Set_Has_Component = libghdl.vhdl__nodes__set_has_component
-
-Get_Has_Identifier_List = libghdl.vhdl__nodes__get_has_identifier_list
-
-Set_Has_Identifier_List = libghdl.vhdl__nodes__set_has_identifier_list
-
-Get_Has_Mode = libghdl.vhdl__nodes__get_has_mode
-
-Set_Has_Mode = libghdl.vhdl__nodes__set_has_mode
-
-Get_Has_Class = libghdl.vhdl__nodes__get_has_class
-
-Set_Has_Class = libghdl.vhdl__nodes__set_has_class
-
-Get_Has_Delay_Mechanism = libghdl.vhdl__nodes__get_has_delay_mechanism
-
-Set_Has_Delay_Mechanism = libghdl.vhdl__nodes__set_has_delay_mechanism
-
-Get_Suspend_Flag = libghdl.vhdl__nodes__get_suspend_flag
-
-Set_Suspend_Flag = libghdl.vhdl__nodes__set_suspend_flag
-
-Get_Is_Ref = libghdl.vhdl__nodes__get_is_ref
-
-Set_Is_Ref = libghdl.vhdl__nodes__set_is_ref
-
-Get_Is_Forward_Ref = libghdl.vhdl__nodes__get_is_forward_ref
-
-Set_Is_Forward_Ref = libghdl.vhdl__nodes__set_is_forward_ref
-
-Get_Psl_Property = libghdl.vhdl__nodes__get_psl_property
-
-Set_Psl_Property = libghdl.vhdl__nodes__set_psl_property
-
-Get_Psl_Sequence = libghdl.vhdl__nodes__get_psl_sequence
-
-Set_Psl_Sequence = libghdl.vhdl__nodes__set_psl_sequence
-
-Get_Psl_Declaration = libghdl.vhdl__nodes__get_psl_declaration
-
-Set_Psl_Declaration = libghdl.vhdl__nodes__set_psl_declaration
-
-Get_Psl_Expression = libghdl.vhdl__nodes__get_psl_expression
-
-Set_Psl_Expression = libghdl.vhdl__nodes__set_psl_expression
-
-Get_Psl_Boolean = libghdl.vhdl__nodes__get_psl_boolean
-
-Set_Psl_Boolean = libghdl.vhdl__nodes__set_psl_boolean
-
-Get_PSL_Clock = libghdl.vhdl__nodes__get_psl_clock
-
-Set_PSL_Clock = libghdl.vhdl__nodes__set_psl_clock
-
-Get_PSL_NFA = libghdl.vhdl__nodes__get_psl_nfa
-
-Set_PSL_NFA = libghdl.vhdl__nodes__set_psl_nfa
-
-Get_PSL_Nbr_States = libghdl.vhdl__nodes__get_psl_nbr_states
-
-Set_PSL_Nbr_States = libghdl.vhdl__nodes__set_psl_nbr_states
-
-Get_PSL_Clock_Sensitivity = libghdl.vhdl__nodes__get_psl_clock_sensitivity
-
-Set_PSL_Clock_Sensitivity = libghdl.vhdl__nodes__set_psl_clock_sensitivity
-
-Get_PSL_EOS_Flag = libghdl.vhdl__nodes__get_psl_eos_flag
-
-Set_PSL_EOS_Flag = libghdl.vhdl__nodes__set_psl_eos_flag
-
-Get_Count_Expression = libghdl.vhdl__nodes__get_count_expression
-
-Set_Count_Expression = libghdl.vhdl__nodes__set_count_expression
-
-Get_Clock_Expression = libghdl.vhdl__nodes__get_clock_expression
-
-Set_Clock_Expression = libghdl.vhdl__nodes__set_clock_expression
-
-Get_Default_Clock = libghdl.vhdl__nodes__get_default_clock
-
-Set_Default_Clock = libghdl.vhdl__nodes__set_default_clock
diff --git a/python/libghdl/thin/vhdl/nodes_meta.py b/python/libghdl/thin/vhdl/nodes_meta.py
deleted file mode 100644
index 245a847cf..000000000
--- a/python/libghdl/thin/vhdl/nodes_meta.py
+++ /dev/null
@@ -1,1294 +0,0 @@
-from libghdl import libghdl
-
-
-# From nodes_meta
-get_fields_first = libghdl.vhdl__nodes_meta__get_fields_first
-
-get_fields_last = libghdl.vhdl__nodes_meta__get_fields_last
-
-get_field_by_index = libghdl.vhdl__nodes_meta__get_field_by_index
-
-get_field_type = libghdl.vhdl__nodes_meta__get_field_type
-
-get_field_attribute = libghdl.vhdl__nodes_meta__get_field_attribute
-
-
-class types:
- Boolean = 0
- Date_State_Type = 1
- Date_Type = 2
- Direction_Type = 3
- File_Checksum_Id = 4
- Fp64 = 5
- Iir = 6
- Iir_All_Sensitized = 7
- Iir_Constraint = 8
- Iir_Delay_Mechanism = 9
- Iir_Flist = 10
- Iir_Force_Mode = 11
- Iir_Index32 = 12
- Iir_Int32 = 13
- Iir_List = 14
- Iir_Mode = 15
- Iir_Predefined_Functions = 16
- Iir_Pure_State = 17
- Iir_Signal_Kind = 18
- Iir_Staticness = 19
- Int32 = 20
- Int64 = 21
- Name_Id = 22
- Number_Base_Type = 23
- PSL_NFA = 24
- PSL_Node = 25
- Scalar_Size = 26
- Source_File_Entry = 27
- Source_Ptr = 28
- String8_Id = 29
- Time_Stamp_Id = 30
- Token_Type = 31
- Tri_State_Type = 32
-
-
-class Attr:
- ANone = 0
- Chain = 1
- Chain_Next = 2
- Forward_Ref = 3
- Maybe_Forward_Ref = 4
- Maybe_Ref = 5
- Of_Maybe_Ref = 6
- Of_Ref = 7
- Ref = 8
-
-
-class fields:
- First_Design_Unit = 0
- Last_Design_Unit = 1
- Library_Declaration = 2
- File_Checksum = 3
- Analysis_Time_Stamp = 4
- Design_File_Source = 5
- Library = 6
- File_Dependence_List = 7
- Design_File_Filename = 8
- Design_File_Directory = 9
- Design_File = 10
- Design_File_Chain = 11
- Library_Directory = 12
- Date = 13
- Context_Items = 14
- Dependence_List = 15
- Analysis_Checks_List = 16
- Date_State = 17
- Guarded_Target_State = 18
- Library_Unit = 19
- Hash_Chain = 20
- Design_Unit_Source_Pos = 21
- Design_Unit_Source_Line = 22
- Design_Unit_Source_Col = 23
- Value = 24
- Enum_Pos = 25
- Physical_Literal = 26
- Fp_Value = 27
- Simple_Aggregate_List = 28
- String8_Id = 29
- String_Length = 30
- Bit_String_Base = 31
- Has_Signed = 32
- Has_Sign = 33
- Has_Length = 34
- Literal_Length = 35
- Literal_Origin = 36
- Range_Origin = 37
- Literal_Subtype = 38
- Allocator_Subtype = 39
- Entity_Class = 40
- Entity_Name_List = 41
- Attribute_Designator = 42
- Attribute_Specification_Chain = 43
- Attribute_Specification = 44
- Static_Attribute_Flag = 45
- Signal_List = 46
- Quantity_List = 47
- Designated_Entity = 48
- Formal = 49
- Actual = 50
- Actual_Conversion = 51
- Formal_Conversion = 52
- Whole_Association_Flag = 53
- Collapse_Signal_Flag = 54
- Artificial_Flag = 55
- Open_Flag = 56
- After_Drivers_Flag = 57
- We_Value = 58
- Time = 59
- Associated_Expr = 60
- Associated_Block = 61
- Associated_Chain = 62
- Choice_Name = 63
- Choice_Expression = 64
- Choice_Range = 65
- Same_Alternative_Flag = 66
- Element_Type_Flag = 67
- Architecture = 68
- Block_Specification = 69
- Prev_Block_Configuration = 70
- Configuration_Item_Chain = 71
- Attribute_Value_Chain = 72
- Spec_Chain = 73
- Value_Chain = 74
- Attribute_Value_Spec_Chain = 75
- Entity_Name = 76
- Package = 77
- Package_Body = 78
- Instance_Package_Body = 79
- Need_Body = 80
- Macro_Expanded_Flag = 81
- Need_Instance_Bodies = 82
- Hierarchical_Name = 83
- Inherit_Spec_Chain = 84
- Vunit_Item_Chain = 85
- Bound_Vunit_Chain = 86
- Verification_Block_Configuration = 87
- Block_Configuration = 88
- Concurrent_Statement_Chain = 89
- Chain = 90
- Port_Chain = 91
- Generic_Chain = 92
- Type = 93
- Subtype_Indication = 94
- Discrete_Range = 95
- Type_Definition = 96
- Subtype_Definition = 97
- Incomplete_Type_Declaration = 98
- Interface_Type_Subprograms = 99
- Nature_Definition = 100
- Nature = 101
- Subnature_Indication = 102
- Mode = 103
- Guarded_Signal_Flag = 104
- Signal_Kind = 105
- Base_Name = 106
- Interface_Declaration_Chain = 107
- Subprogram_Specification = 108
- Sequential_Statement_Chain = 109
- Simultaneous_Statement_Chain = 110
- Subprogram_Body = 111
- Overload_Number = 112
- Subprogram_Depth = 113
- Subprogram_Hash = 114
- Impure_Depth = 115
- Return_Type = 116
- Implicit_Definition = 117
- Uninstantiated_Subprogram_Name = 118
- Default_Value = 119
- Deferred_Declaration = 120
- Deferred_Declaration_Flag = 121
- Shared_Flag = 122
- Design_Unit = 123
- Block_Statement = 124
- Signal_Driver = 125
- Declaration_Chain = 126
- File_Logical_Name = 127
- File_Open_Kind = 128
- Element_Position = 129
- Use_Clause_Chain = 130
- Context_Reference_Chain = 131
- Selected_Name = 132
- Type_Declarator = 133
- Complete_Type_Definition = 134
- Incomplete_Type_Ref_Chain = 135
- Associated_Type = 136
- Enumeration_Literal_List = 137
- Entity_Class_Entry_Chain = 138
- Group_Constituent_List = 139
- Unit_Chain = 140
- Primary_Unit = 141
- Identifier = 142
- Label = 143
- Visible_Flag = 144
- Range_Constraint = 145
- Direction = 146
- Left_Limit = 147
- Right_Limit = 148
- Left_Limit_Expr = 149
- Right_Limit_Expr = 150
- Parent_Type = 151
- Simple_Nature = 152
- Base_Nature = 153
- Resolution_Indication = 154
- Record_Element_Resolution_Chain = 155
- Tolerance = 156
- Plus_Terminal_Name = 157
- Minus_Terminal_Name = 158
- Plus_Terminal = 159
- Minus_Terminal = 160
- Magnitude_Expression = 161
- Phase_Expression = 162
- Power_Expression = 163
- Simultaneous_Left = 164
- Simultaneous_Right = 165
- Text_File_Flag = 166
- Only_Characters_Flag = 167
- Is_Character_Type = 168
- Nature_Staticness = 169
- Type_Staticness = 170
- Constraint_State = 171
- Index_Subtype_List = 172
- Index_Subtype_Definition_List = 173
- Element_Subtype_Indication = 174
- Element_Subtype = 175
- Element_Subnature_Indication = 176
- Element_Subnature = 177
- Index_Constraint_List = 178
- Array_Element_Constraint = 179
- Elements_Declaration_List = 180
- Owned_Elements_Chain = 181
- Designated_Type = 182
- Designated_Subtype_Indication = 183
- Index_List = 184
- Reference = 185
- Nature_Declarator = 186
- Across_Type_Mark = 187
- Through_Type_Mark = 188
- Across_Type_Definition = 189
- Through_Type_Definition = 190
- Across_Type = 191
- Through_Type = 192
- Target = 193
- Waveform_Chain = 194
- Guard = 195
- Delay_Mechanism = 196
- Reject_Time_Expression = 197
- Force_Mode = 198
- Has_Force_Mode = 199
- Sensitivity_List = 200
- Process_Origin = 201
- Package_Origin = 202
- Condition_Clause = 203
- Break_Element = 204
- Selector_Quantity = 205
- Break_Quantity = 206
- Timeout_Clause = 207
- Postponed_Flag = 208
- Callees_List = 209
- Passive_Flag = 210
- Resolution_Function_Flag = 211
- Wait_State = 212
- All_Sensitized_State = 213
- Seen_Flag = 214
- Pure_Flag = 215
- Foreign_Flag = 216
- Resolved_Flag = 217
- Signal_Type_Flag = 218
- Has_Signal_Flag = 219
- Purity_State = 220
- Elab_Flag = 221
- Vendor_Library_Flag = 222
- Configuration_Mark_Flag = 223
- Configuration_Done_Flag = 224
- Index_Constraint_Flag = 225
- Hide_Implicit_Flag = 226
- Assertion_Condition = 227
- Report_Expression = 228
- Severity_Expression = 229
- Instantiated_Unit = 230
- Generic_Map_Aspect_Chain = 231
- Port_Map_Aspect_Chain = 232
- Configuration_Name = 233
- Component_Configuration = 234
- Configuration_Specification = 235
- Default_Binding_Indication = 236
- Default_Configuration_Declaration = 237
- Expression = 238
- Conditional_Expression_Chain = 239
- Allocator_Designated_Type = 240
- Selected_Waveform_Chain = 241
- Conditional_Waveform_Chain = 242
- Guard_Expression = 243
- Guard_Decl = 244
- Guard_Sensitivity_List = 245
- Signal_Attribute_Chain = 246
- Block_Block_Configuration = 247
- Package_Header = 248
- Block_Header = 249
- Uninstantiated_Package_Name = 250
- Uninstantiated_Package_Decl = 251
- Instance_Source_File = 252
- Generate_Block_Configuration = 253
- Generate_Statement_Body = 254
- Alternative_Label = 255
- Generate_Else_Clause = 256
- Condition = 257
- Else_Clause = 258
- Parameter_Specification = 259
- Parent = 260
- Loop_Label = 261
- Exit_Flag = 262
- Next_Flag = 263
- Component_Name = 264
- Instantiation_List = 265
- Entity_Aspect = 266
- Default_Entity_Aspect = 267
- Binding_Indication = 268
- Named_Entity = 269
- Alias_Declaration = 270
- Referenced_Name = 271
- Expr_Staticness = 272
- Scalar_Size = 273
- Error_Origin = 274
- Operand = 275
- Left = 276
- Right = 277
- Unit_Name = 278
- Name = 279
- Group_Template_Name = 280
- Name_Staticness = 281
- Prefix = 282
- Signature_Prefix = 283
- External_Pathname = 284
- Pathname_Suffix = 285
- Pathname_Expression = 286
- In_Formal_Flag = 287
- Slice_Subtype = 288
- Suffix = 289
- Index_Subtype = 290
- Parameter = 291
- Parameter_2 = 292
- Parameter_3 = 293
- Parameter_4 = 294
- Attr_Chain = 295
- Signal_Attribute_Declaration = 296
- Actual_Type = 297
- Actual_Type_Definition = 298
- Association_Chain = 299
- Individual_Association_Chain = 300
- Subprogram_Association_Chain = 301
- Aggregate_Info = 302
- Sub_Aggregate_Info = 303
- Aggr_Dynamic_Flag = 304
- Aggr_Min_Length = 305
- Aggr_Low_Limit = 306
- Aggr_High_Limit = 307
- Aggr_Others_Flag = 308
- Aggr_Named_Flag = 309
- Aggregate_Expand_Flag = 310
- Association_Choices_Chain = 311
- Case_Statement_Alternative_Chain = 312
- Choice_Staticness = 313
- Procedure_Call = 314
- Implementation = 315
- Parameter_Association_Chain = 316
- Method_Object = 317
- Subtype_Type_Mark = 318
- Subnature_Nature_Mark = 319
- Type_Conversion_Subtype = 320
- Type_Mark = 321
- File_Type_Mark = 322
- Return_Type_Mark = 323
- Has_Disconnect_Flag = 324
- Has_Active_Flag = 325
- Is_Within_Flag = 326
- Type_Marks_List = 327
- Implicit_Alias_Flag = 328
- Alias_Signature = 329
- Attribute_Signature = 330
- Overload_List = 331
- Simple_Name_Identifier = 332
- Simple_Name_Subtype = 333
- Protected_Type_Body = 334
- Protected_Type_Declaration = 335
- Use_Flag = 336
- End_Has_Reserved_Id = 337
- End_Has_Identifier = 338
- End_Has_Postponed = 339
- Has_Label = 340
- Has_Begin = 341
- Has_End = 342
- Has_Is = 343
- Has_Pure = 344
- Has_Body = 345
- Has_Parameter = 346
- Has_Component = 347
- Has_Identifier_List = 348
- Has_Mode = 349
- Has_Class = 350
- Has_Delay_Mechanism = 351
- Suspend_Flag = 352
- Is_Ref = 353
- Is_Forward_Ref = 354
- Psl_Property = 355
- Psl_Sequence = 356
- Psl_Declaration = 357
- Psl_Expression = 358
- Psl_Boolean = 359
- PSL_Clock = 360
- PSL_NFA = 361
- PSL_Nbr_States = 362
- PSL_Clock_Sensitivity = 363
- PSL_EOS_Flag = 364
- Count_Expression = 365
- Clock_Expression = 366
- Default_Clock = 367
-
-
-Get_Boolean = libghdl.vhdl__nodes_meta__get_boolean
-
-Get_Date_State_Type = libghdl.vhdl__nodes_meta__get_date_state_type
-
-Get_Date_Type = libghdl.vhdl__nodes_meta__get_date_type
-
-Get_Direction_Type = libghdl.vhdl__nodes_meta__get_direction_type
-
-Get_File_Checksum_Id = libghdl.vhdl__nodes_meta__get_file_checksum_id
-
-Get_Fp64 = libghdl.vhdl__nodes_meta__get_fp64
-
-Get_Iir = libghdl.vhdl__nodes_meta__get_iir
-
-Get_Iir_All_Sensitized = libghdl.vhdl__nodes_meta__get_iir_all_sensitized
-
-Get_Iir_Constraint = libghdl.vhdl__nodes_meta__get_iir_constraint
-
-Get_Iir_Delay_Mechanism = libghdl.vhdl__nodes_meta__get_iir_delay_mechanism
-
-Get_Iir_Flist = libghdl.vhdl__nodes_meta__get_iir_flist
-
-Get_Iir_Force_Mode = libghdl.vhdl__nodes_meta__get_iir_force_mode
-
-Get_Iir_Index32 = libghdl.vhdl__nodes_meta__get_iir_index32
-
-Get_Iir_Int32 = libghdl.vhdl__nodes_meta__get_iir_int32
-
-Get_Iir_List = libghdl.vhdl__nodes_meta__get_iir_list
-
-Get_Iir_Mode = libghdl.vhdl__nodes_meta__get_iir_mode
-
-Get_Iir_Predefined_Functions = libghdl.vhdl__nodes_meta__get_iir_predefined_functions
-
-Get_Iir_Pure_State = libghdl.vhdl__nodes_meta__get_iir_pure_state
-
-Get_Iir_Signal_Kind = libghdl.vhdl__nodes_meta__get_iir_signal_kind
-
-Get_Iir_Staticness = libghdl.vhdl__nodes_meta__get_iir_staticness
-
-Get_Int32 = libghdl.vhdl__nodes_meta__get_int32
-
-Get_Int64 = libghdl.vhdl__nodes_meta__get_int64
-
-Get_Name_Id = libghdl.vhdl__nodes_meta__get_name_id
-
-Get_Number_Base_Type = libghdl.vhdl__nodes_meta__get_number_base_type
-
-Get_PSL_NFA = libghdl.vhdl__nodes_meta__get_psl_nfa
-
-Get_PSL_Node = libghdl.vhdl__nodes_meta__get_psl_node
-
-Get_Scalar_Size = libghdl.vhdl__nodes_meta__get_scalar_size
-
-Get_Source_File_Entry = libghdl.vhdl__nodes_meta__get_source_file_entry
-
-Get_Source_Ptr = libghdl.vhdl__nodes_meta__get_source_ptr
-
-Get_String8_Id = libghdl.vhdl__nodes_meta__get_string8_id
-
-Get_Time_Stamp_Id = libghdl.vhdl__nodes_meta__get_time_stamp_id
-
-Get_Token_Type = libghdl.vhdl__nodes_meta__get_token_type
-
-Get_Tri_State_Type = libghdl.vhdl__nodes_meta__get_tri_state_type
-
-
-Has_First_Design_Unit = libghdl.vhdl__nodes_meta__has_first_design_unit
-
-Has_Last_Design_Unit = libghdl.vhdl__nodes_meta__has_last_design_unit
-
-Has_Library_Declaration = libghdl.vhdl__nodes_meta__has_library_declaration
-
-Has_File_Checksum = libghdl.vhdl__nodes_meta__has_file_checksum
-
-Has_Analysis_Time_Stamp = libghdl.vhdl__nodes_meta__has_analysis_time_stamp
-
-Has_Design_File_Source = libghdl.vhdl__nodes_meta__has_design_file_source
-
-Has_Library = libghdl.vhdl__nodes_meta__has_library
-
-Has_File_Dependence_List = libghdl.vhdl__nodes_meta__has_file_dependence_list
-
-Has_Design_File_Filename = libghdl.vhdl__nodes_meta__has_design_file_filename
-
-Has_Design_File_Directory = libghdl.vhdl__nodes_meta__has_design_file_directory
-
-Has_Design_File = libghdl.vhdl__nodes_meta__has_design_file
-
-Has_Design_File_Chain = libghdl.vhdl__nodes_meta__has_design_file_chain
-
-Has_Library_Directory = libghdl.vhdl__nodes_meta__has_library_directory
-
-Has_Date = libghdl.vhdl__nodes_meta__has_date
-
-Has_Context_Items = libghdl.vhdl__nodes_meta__has_context_items
-
-Has_Dependence_List = libghdl.vhdl__nodes_meta__has_dependence_list
-
-Has_Analysis_Checks_List = libghdl.vhdl__nodes_meta__has_analysis_checks_list
-
-Has_Date_State = libghdl.vhdl__nodes_meta__has_date_state
-
-Has_Guarded_Target_State = libghdl.vhdl__nodes_meta__has_guarded_target_state
-
-Has_Library_Unit = libghdl.vhdl__nodes_meta__has_library_unit
-
-Has_Hash_Chain = libghdl.vhdl__nodes_meta__has_hash_chain
-
-Has_Design_Unit_Source_Pos = libghdl.vhdl__nodes_meta__has_design_unit_source_pos
-
-Has_Design_Unit_Source_Line = libghdl.vhdl__nodes_meta__has_design_unit_source_line
-
-Has_Design_Unit_Source_Col = libghdl.vhdl__nodes_meta__has_design_unit_source_col
-
-Has_Value = libghdl.vhdl__nodes_meta__has_value
-
-Has_Enum_Pos = libghdl.vhdl__nodes_meta__has_enum_pos
-
-Has_Physical_Literal = libghdl.vhdl__nodes_meta__has_physical_literal
-
-Has_Fp_Value = libghdl.vhdl__nodes_meta__has_fp_value
-
-Has_Simple_Aggregate_List = libghdl.vhdl__nodes_meta__has_simple_aggregate_list
-
-Has_String8_Id = libghdl.vhdl__nodes_meta__has_string8_id
-
-Has_String_Length = libghdl.vhdl__nodes_meta__has_string_length
-
-Has_Bit_String_Base = libghdl.vhdl__nodes_meta__has_bit_string_base
-
-Has_Has_Signed = libghdl.vhdl__nodes_meta__has_has_signed
-
-Has_Has_Sign = libghdl.vhdl__nodes_meta__has_has_sign
-
-Has_Has_Length = libghdl.vhdl__nodes_meta__has_has_length
-
-Has_Literal_Length = libghdl.vhdl__nodes_meta__has_literal_length
-
-Has_Literal_Origin = libghdl.vhdl__nodes_meta__has_literal_origin
-
-Has_Range_Origin = libghdl.vhdl__nodes_meta__has_range_origin
-
-Has_Literal_Subtype = libghdl.vhdl__nodes_meta__has_literal_subtype
-
-Has_Allocator_Subtype = libghdl.vhdl__nodes_meta__has_allocator_subtype
-
-Has_Entity_Class = libghdl.vhdl__nodes_meta__has_entity_class
-
-Has_Entity_Name_List = libghdl.vhdl__nodes_meta__has_entity_name_list
-
-Has_Attribute_Designator = libghdl.vhdl__nodes_meta__has_attribute_designator
-
-Has_Attribute_Specification_Chain = (
- libghdl.vhdl__nodes_meta__has_attribute_specification_chain
-)
-
-Has_Attribute_Specification = libghdl.vhdl__nodes_meta__has_attribute_specification
-
-Has_Static_Attribute_Flag = libghdl.vhdl__nodes_meta__has_static_attribute_flag
-
-Has_Signal_List = libghdl.vhdl__nodes_meta__has_signal_list
-
-Has_Quantity_List = libghdl.vhdl__nodes_meta__has_quantity_list
-
-Has_Designated_Entity = libghdl.vhdl__nodes_meta__has_designated_entity
-
-Has_Formal = libghdl.vhdl__nodes_meta__has_formal
-
-Has_Actual = libghdl.vhdl__nodes_meta__has_actual
-
-Has_Actual_Conversion = libghdl.vhdl__nodes_meta__has_actual_conversion
-
-Has_Formal_Conversion = libghdl.vhdl__nodes_meta__has_formal_conversion
-
-Has_Whole_Association_Flag = libghdl.vhdl__nodes_meta__has_whole_association_flag
-
-Has_Collapse_Signal_Flag = libghdl.vhdl__nodes_meta__has_collapse_signal_flag
-
-Has_Artificial_Flag = libghdl.vhdl__nodes_meta__has_artificial_flag
-
-Has_Open_Flag = libghdl.vhdl__nodes_meta__has_open_flag
-
-Has_After_Drivers_Flag = libghdl.vhdl__nodes_meta__has_after_drivers_flag
-
-Has_We_Value = libghdl.vhdl__nodes_meta__has_we_value
-
-Has_Time = libghdl.vhdl__nodes_meta__has_time
-
-Has_Associated_Expr = libghdl.vhdl__nodes_meta__has_associated_expr
-
-Has_Associated_Block = libghdl.vhdl__nodes_meta__has_associated_block
-
-Has_Associated_Chain = libghdl.vhdl__nodes_meta__has_associated_chain
-
-Has_Choice_Name = libghdl.vhdl__nodes_meta__has_choice_name
-
-Has_Choice_Expression = libghdl.vhdl__nodes_meta__has_choice_expression
-
-Has_Choice_Range = libghdl.vhdl__nodes_meta__has_choice_range
-
-Has_Same_Alternative_Flag = libghdl.vhdl__nodes_meta__has_same_alternative_flag
-
-Has_Element_Type_Flag = libghdl.vhdl__nodes_meta__has_element_type_flag
-
-Has_Architecture = libghdl.vhdl__nodes_meta__has_architecture
-
-Has_Block_Specification = libghdl.vhdl__nodes_meta__has_block_specification
-
-Has_Prev_Block_Configuration = libghdl.vhdl__nodes_meta__has_prev_block_configuration
-
-Has_Configuration_Item_Chain = libghdl.vhdl__nodes_meta__has_configuration_item_chain
-
-Has_Attribute_Value_Chain = libghdl.vhdl__nodes_meta__has_attribute_value_chain
-
-Has_Spec_Chain = libghdl.vhdl__nodes_meta__has_spec_chain
-
-Has_Value_Chain = libghdl.vhdl__nodes_meta__has_value_chain
-
-Has_Attribute_Value_Spec_Chain = (
- libghdl.vhdl__nodes_meta__has_attribute_value_spec_chain
-)
-
-Has_Entity_Name = libghdl.vhdl__nodes_meta__has_entity_name
-
-Has_Package = libghdl.vhdl__nodes_meta__has_package
-
-Has_Package_Body = libghdl.vhdl__nodes_meta__has_package_body
-
-Has_Instance_Package_Body = libghdl.vhdl__nodes_meta__has_instance_package_body
-
-Has_Need_Body = libghdl.vhdl__nodes_meta__has_need_body
-
-Has_Macro_Expanded_Flag = libghdl.vhdl__nodes_meta__has_macro_expanded_flag
-
-Has_Need_Instance_Bodies = libghdl.vhdl__nodes_meta__has_need_instance_bodies
-
-Has_Hierarchical_Name = libghdl.vhdl__nodes_meta__has_hierarchical_name
-
-Has_Inherit_Spec_Chain = libghdl.vhdl__nodes_meta__has_inherit_spec_chain
-
-Has_Vunit_Item_Chain = libghdl.vhdl__nodes_meta__has_vunit_item_chain
-
-Has_Bound_Vunit_Chain = libghdl.vhdl__nodes_meta__has_bound_vunit_chain
-
-Has_Verification_Block_Configuration = (
- libghdl.vhdl__nodes_meta__has_verification_block_configuration
-)
-
-Has_Block_Configuration = libghdl.vhdl__nodes_meta__has_block_configuration
-
-Has_Concurrent_Statement_Chain = (
- libghdl.vhdl__nodes_meta__has_concurrent_statement_chain
-)
-
-Has_Chain = libghdl.vhdl__nodes_meta__has_chain
-
-Has_Port_Chain = libghdl.vhdl__nodes_meta__has_port_chain
-
-Has_Generic_Chain = libghdl.vhdl__nodes_meta__has_generic_chain
-
-Has_Type = libghdl.vhdl__nodes_meta__has_type
-
-Has_Subtype_Indication = libghdl.vhdl__nodes_meta__has_subtype_indication
-
-Has_Discrete_Range = libghdl.vhdl__nodes_meta__has_discrete_range
-
-Has_Type_Definition = libghdl.vhdl__nodes_meta__has_type_definition
-
-Has_Subtype_Definition = libghdl.vhdl__nodes_meta__has_subtype_definition
-
-Has_Incomplete_Type_Declaration = (
- libghdl.vhdl__nodes_meta__has_incomplete_type_declaration
-)
-
-Has_Interface_Type_Subprograms = (
- libghdl.vhdl__nodes_meta__has_interface_type_subprograms
-)
-
-Has_Nature_Definition = libghdl.vhdl__nodes_meta__has_nature_definition
-
-Has_Nature = libghdl.vhdl__nodes_meta__has_nature
-
-Has_Subnature_Indication = libghdl.vhdl__nodes_meta__has_subnature_indication
-
-Has_Mode = libghdl.vhdl__nodes_meta__has_mode
-
-Has_Guarded_Signal_Flag = libghdl.vhdl__nodes_meta__has_guarded_signal_flag
-
-Has_Signal_Kind = libghdl.vhdl__nodes_meta__has_signal_kind
-
-Has_Base_Name = libghdl.vhdl__nodes_meta__has_base_name
-
-Has_Interface_Declaration_Chain = (
- libghdl.vhdl__nodes_meta__has_interface_declaration_chain
-)
-
-Has_Subprogram_Specification = libghdl.vhdl__nodes_meta__has_subprogram_specification
-
-Has_Sequential_Statement_Chain = (
- libghdl.vhdl__nodes_meta__has_sequential_statement_chain
-)
-
-Has_Simultaneous_Statement_Chain = (
- libghdl.vhdl__nodes_meta__has_simultaneous_statement_chain
-)
-
-Has_Subprogram_Body = libghdl.vhdl__nodes_meta__has_subprogram_body
-
-Has_Overload_Number = libghdl.vhdl__nodes_meta__has_overload_number
-
-Has_Subprogram_Depth = libghdl.vhdl__nodes_meta__has_subprogram_depth
-
-Has_Subprogram_Hash = libghdl.vhdl__nodes_meta__has_subprogram_hash
-
-Has_Impure_Depth = libghdl.vhdl__nodes_meta__has_impure_depth
-
-Has_Return_Type = libghdl.vhdl__nodes_meta__has_return_type
-
-Has_Implicit_Definition = libghdl.vhdl__nodes_meta__has_implicit_definition
-
-Has_Uninstantiated_Subprogram_Name = (
- libghdl.vhdl__nodes_meta__has_uninstantiated_subprogram_name
-)
-
-Has_Default_Value = libghdl.vhdl__nodes_meta__has_default_value
-
-Has_Deferred_Declaration = libghdl.vhdl__nodes_meta__has_deferred_declaration
-
-Has_Deferred_Declaration_Flag = libghdl.vhdl__nodes_meta__has_deferred_declaration_flag
-
-Has_Shared_Flag = libghdl.vhdl__nodes_meta__has_shared_flag
-
-Has_Design_Unit = libghdl.vhdl__nodes_meta__has_design_unit
-
-Has_Block_Statement = libghdl.vhdl__nodes_meta__has_block_statement
-
-Has_Signal_Driver = libghdl.vhdl__nodes_meta__has_signal_driver
-
-Has_Declaration_Chain = libghdl.vhdl__nodes_meta__has_declaration_chain
-
-Has_File_Logical_Name = libghdl.vhdl__nodes_meta__has_file_logical_name
-
-Has_File_Open_Kind = libghdl.vhdl__nodes_meta__has_file_open_kind
-
-Has_Element_Position = libghdl.vhdl__nodes_meta__has_element_position
-
-Has_Use_Clause_Chain = libghdl.vhdl__nodes_meta__has_use_clause_chain
-
-Has_Context_Reference_Chain = libghdl.vhdl__nodes_meta__has_context_reference_chain
-
-Has_Selected_Name = libghdl.vhdl__nodes_meta__has_selected_name
-
-Has_Type_Declarator = libghdl.vhdl__nodes_meta__has_type_declarator
-
-Has_Complete_Type_Definition = libghdl.vhdl__nodes_meta__has_complete_type_definition
-
-Has_Incomplete_Type_Ref_Chain = libghdl.vhdl__nodes_meta__has_incomplete_type_ref_chain
-
-Has_Associated_Type = libghdl.vhdl__nodes_meta__has_associated_type
-
-Has_Enumeration_Literal_List = libghdl.vhdl__nodes_meta__has_enumeration_literal_list
-
-Has_Entity_Class_Entry_Chain = libghdl.vhdl__nodes_meta__has_entity_class_entry_chain
-
-Has_Group_Constituent_List = libghdl.vhdl__nodes_meta__has_group_constituent_list
-
-Has_Unit_Chain = libghdl.vhdl__nodes_meta__has_unit_chain
-
-Has_Primary_Unit = libghdl.vhdl__nodes_meta__has_primary_unit
-
-Has_Identifier = libghdl.vhdl__nodes_meta__has_identifier
-
-Has_Label = libghdl.vhdl__nodes_meta__has_label
-
-Has_Visible_Flag = libghdl.vhdl__nodes_meta__has_visible_flag
-
-Has_Range_Constraint = libghdl.vhdl__nodes_meta__has_range_constraint
-
-Has_Direction = libghdl.vhdl__nodes_meta__has_direction
-
-Has_Left_Limit = libghdl.vhdl__nodes_meta__has_left_limit
-
-Has_Right_Limit = libghdl.vhdl__nodes_meta__has_right_limit
-
-Has_Left_Limit_Expr = libghdl.vhdl__nodes_meta__has_left_limit_expr
-
-Has_Right_Limit_Expr = libghdl.vhdl__nodes_meta__has_right_limit_expr
-
-Has_Parent_Type = libghdl.vhdl__nodes_meta__has_parent_type
-
-Has_Simple_Nature = libghdl.vhdl__nodes_meta__has_simple_nature
-
-Has_Base_Nature = libghdl.vhdl__nodes_meta__has_base_nature
-
-Has_Resolution_Indication = libghdl.vhdl__nodes_meta__has_resolution_indication
-
-Has_Record_Element_Resolution_Chain = (
- libghdl.vhdl__nodes_meta__has_record_element_resolution_chain
-)
-
-Has_Tolerance = libghdl.vhdl__nodes_meta__has_tolerance
-
-Has_Plus_Terminal_Name = libghdl.vhdl__nodes_meta__has_plus_terminal_name
-
-Has_Minus_Terminal_Name = libghdl.vhdl__nodes_meta__has_minus_terminal_name
-
-Has_Plus_Terminal = libghdl.vhdl__nodes_meta__has_plus_terminal
-
-Has_Minus_Terminal = libghdl.vhdl__nodes_meta__has_minus_terminal
-
-Has_Magnitude_Expression = libghdl.vhdl__nodes_meta__has_magnitude_expression
-
-Has_Phase_Expression = libghdl.vhdl__nodes_meta__has_phase_expression
-
-Has_Power_Expression = libghdl.vhdl__nodes_meta__has_power_expression
-
-Has_Simultaneous_Left = libghdl.vhdl__nodes_meta__has_simultaneous_left
-
-Has_Simultaneous_Right = libghdl.vhdl__nodes_meta__has_simultaneous_right
-
-Has_Text_File_Flag = libghdl.vhdl__nodes_meta__has_text_file_flag
-
-Has_Only_Characters_Flag = libghdl.vhdl__nodes_meta__has_only_characters_flag
-
-Has_Is_Character_Type = libghdl.vhdl__nodes_meta__has_is_character_type
-
-Has_Nature_Staticness = libghdl.vhdl__nodes_meta__has_nature_staticness
-
-Has_Type_Staticness = libghdl.vhdl__nodes_meta__has_type_staticness
-
-Has_Constraint_State = libghdl.vhdl__nodes_meta__has_constraint_state
-
-Has_Index_Subtype_List = libghdl.vhdl__nodes_meta__has_index_subtype_list
-
-Has_Index_Subtype_Definition_List = (
- libghdl.vhdl__nodes_meta__has_index_subtype_definition_list
-)
-
-Has_Element_Subtype_Indication = (
- libghdl.vhdl__nodes_meta__has_element_subtype_indication
-)
-
-Has_Element_Subtype = libghdl.vhdl__nodes_meta__has_element_subtype
-
-Has_Element_Subnature_Indication = (
- libghdl.vhdl__nodes_meta__has_element_subnature_indication
-)
-
-Has_Element_Subnature = libghdl.vhdl__nodes_meta__has_element_subnature
-
-Has_Index_Constraint_List = libghdl.vhdl__nodes_meta__has_index_constraint_list
-
-Has_Array_Element_Constraint = libghdl.vhdl__nodes_meta__has_array_element_constraint
-
-Has_Elements_Declaration_List = libghdl.vhdl__nodes_meta__has_elements_declaration_list
-
-Has_Owned_Elements_Chain = libghdl.vhdl__nodes_meta__has_owned_elements_chain
-
-Has_Designated_Type = libghdl.vhdl__nodes_meta__has_designated_type
-
-Has_Designated_Subtype_Indication = (
- libghdl.vhdl__nodes_meta__has_designated_subtype_indication
-)
-
-Has_Index_List = libghdl.vhdl__nodes_meta__has_index_list
-
-Has_Reference = libghdl.vhdl__nodes_meta__has_reference
-
-Has_Nature_Declarator = libghdl.vhdl__nodes_meta__has_nature_declarator
-
-Has_Across_Type_Mark = libghdl.vhdl__nodes_meta__has_across_type_mark
-
-Has_Through_Type_Mark = libghdl.vhdl__nodes_meta__has_through_type_mark
-
-Has_Across_Type_Definition = libghdl.vhdl__nodes_meta__has_across_type_definition
-
-Has_Through_Type_Definition = libghdl.vhdl__nodes_meta__has_through_type_definition
-
-Has_Across_Type = libghdl.vhdl__nodes_meta__has_across_type
-
-Has_Through_Type = libghdl.vhdl__nodes_meta__has_through_type
-
-Has_Target = libghdl.vhdl__nodes_meta__has_target
-
-Has_Waveform_Chain = libghdl.vhdl__nodes_meta__has_waveform_chain
-
-Has_Guard = libghdl.vhdl__nodes_meta__has_guard
-
-Has_Delay_Mechanism = libghdl.vhdl__nodes_meta__has_delay_mechanism
-
-Has_Reject_Time_Expression = libghdl.vhdl__nodes_meta__has_reject_time_expression
-
-Has_Force_Mode = libghdl.vhdl__nodes_meta__has_force_mode
-
-Has_Has_Force_Mode = libghdl.vhdl__nodes_meta__has_has_force_mode
-
-Has_Sensitivity_List = libghdl.vhdl__nodes_meta__has_sensitivity_list
-
-Has_Process_Origin = libghdl.vhdl__nodes_meta__has_process_origin
-
-Has_Package_Origin = libghdl.vhdl__nodes_meta__has_package_origin
-
-Has_Condition_Clause = libghdl.vhdl__nodes_meta__has_condition_clause
-
-Has_Break_Element = libghdl.vhdl__nodes_meta__has_break_element
-
-Has_Selector_Quantity = libghdl.vhdl__nodes_meta__has_selector_quantity
-
-Has_Break_Quantity = libghdl.vhdl__nodes_meta__has_break_quantity
-
-Has_Timeout_Clause = libghdl.vhdl__nodes_meta__has_timeout_clause
-
-Has_Postponed_Flag = libghdl.vhdl__nodes_meta__has_postponed_flag
-
-Has_Callees_List = libghdl.vhdl__nodes_meta__has_callees_list
-
-Has_Passive_Flag = libghdl.vhdl__nodes_meta__has_passive_flag
-
-Has_Resolution_Function_Flag = libghdl.vhdl__nodes_meta__has_resolution_function_flag
-
-Has_Wait_State = libghdl.vhdl__nodes_meta__has_wait_state
-
-Has_All_Sensitized_State = libghdl.vhdl__nodes_meta__has_all_sensitized_state
-
-Has_Seen_Flag = libghdl.vhdl__nodes_meta__has_seen_flag
-
-Has_Pure_Flag = libghdl.vhdl__nodes_meta__has_pure_flag
-
-Has_Foreign_Flag = libghdl.vhdl__nodes_meta__has_foreign_flag
-
-Has_Resolved_Flag = libghdl.vhdl__nodes_meta__has_resolved_flag
-
-Has_Signal_Type_Flag = libghdl.vhdl__nodes_meta__has_signal_type_flag
-
-Has_Has_Signal_Flag = libghdl.vhdl__nodes_meta__has_has_signal_flag
-
-Has_Purity_State = libghdl.vhdl__nodes_meta__has_purity_state
-
-Has_Elab_Flag = libghdl.vhdl__nodes_meta__has_elab_flag
-
-Has_Vendor_Library_Flag = libghdl.vhdl__nodes_meta__has_vendor_library_flag
-
-Has_Configuration_Mark_Flag = libghdl.vhdl__nodes_meta__has_configuration_mark_flag
-
-Has_Configuration_Done_Flag = libghdl.vhdl__nodes_meta__has_configuration_done_flag
-
-Has_Index_Constraint_Flag = libghdl.vhdl__nodes_meta__has_index_constraint_flag
-
-Has_Hide_Implicit_Flag = libghdl.vhdl__nodes_meta__has_hide_implicit_flag
-
-Has_Assertion_Condition = libghdl.vhdl__nodes_meta__has_assertion_condition
-
-Has_Report_Expression = libghdl.vhdl__nodes_meta__has_report_expression
-
-Has_Severity_Expression = libghdl.vhdl__nodes_meta__has_severity_expression
-
-Has_Instantiated_Unit = libghdl.vhdl__nodes_meta__has_instantiated_unit
-
-Has_Generic_Map_Aspect_Chain = libghdl.vhdl__nodes_meta__has_generic_map_aspect_chain
-
-Has_Port_Map_Aspect_Chain = libghdl.vhdl__nodes_meta__has_port_map_aspect_chain
-
-Has_Configuration_Name = libghdl.vhdl__nodes_meta__has_configuration_name
-
-Has_Component_Configuration = libghdl.vhdl__nodes_meta__has_component_configuration
-
-Has_Configuration_Specification = (
- libghdl.vhdl__nodes_meta__has_configuration_specification
-)
-
-Has_Default_Binding_Indication = (
- libghdl.vhdl__nodes_meta__has_default_binding_indication
-)
-
-Has_Default_Configuration_Declaration = (
- libghdl.vhdl__nodes_meta__has_default_configuration_declaration
-)
-
-Has_Expression = libghdl.vhdl__nodes_meta__has_expression
-
-Has_Conditional_Expression_Chain = (
- libghdl.vhdl__nodes_meta__has_conditional_expression_chain
-)
-
-Has_Allocator_Designated_Type = libghdl.vhdl__nodes_meta__has_allocator_designated_type
-
-Has_Selected_Waveform_Chain = libghdl.vhdl__nodes_meta__has_selected_waveform_chain
-
-Has_Conditional_Waveform_Chain = (
- libghdl.vhdl__nodes_meta__has_conditional_waveform_chain
-)
-
-Has_Guard_Expression = libghdl.vhdl__nodes_meta__has_guard_expression
-
-Has_Guard_Decl = libghdl.vhdl__nodes_meta__has_guard_decl
-
-Has_Guard_Sensitivity_List = libghdl.vhdl__nodes_meta__has_guard_sensitivity_list
-
-Has_Signal_Attribute_Chain = libghdl.vhdl__nodes_meta__has_signal_attribute_chain
-
-Has_Block_Block_Configuration = libghdl.vhdl__nodes_meta__has_block_block_configuration
-
-Has_Package_Header = libghdl.vhdl__nodes_meta__has_package_header
-
-Has_Block_Header = libghdl.vhdl__nodes_meta__has_block_header
-
-Has_Uninstantiated_Package_Name = (
- libghdl.vhdl__nodes_meta__has_uninstantiated_package_name
-)
-
-Has_Uninstantiated_Package_Decl = (
- libghdl.vhdl__nodes_meta__has_uninstantiated_package_decl
-)
-
-Has_Instance_Source_File = libghdl.vhdl__nodes_meta__has_instance_source_file
-
-Has_Generate_Block_Configuration = (
- libghdl.vhdl__nodes_meta__has_generate_block_configuration
-)
-
-Has_Generate_Statement_Body = libghdl.vhdl__nodes_meta__has_generate_statement_body
-
-Has_Alternative_Label = libghdl.vhdl__nodes_meta__has_alternative_label
-
-Has_Generate_Else_Clause = libghdl.vhdl__nodes_meta__has_generate_else_clause
-
-Has_Condition = libghdl.vhdl__nodes_meta__has_condition
-
-Has_Else_Clause = libghdl.vhdl__nodes_meta__has_else_clause
-
-Has_Parameter_Specification = libghdl.vhdl__nodes_meta__has_parameter_specification
-
-Has_Parent = libghdl.vhdl__nodes_meta__has_parent
-
-Has_Loop_Label = libghdl.vhdl__nodes_meta__has_loop_label
-
-Has_Exit_Flag = libghdl.vhdl__nodes_meta__has_exit_flag
-
-Has_Next_Flag = libghdl.vhdl__nodes_meta__has_next_flag
-
-Has_Component_Name = libghdl.vhdl__nodes_meta__has_component_name
-
-Has_Instantiation_List = libghdl.vhdl__nodes_meta__has_instantiation_list
-
-Has_Entity_Aspect = libghdl.vhdl__nodes_meta__has_entity_aspect
-
-Has_Default_Entity_Aspect = libghdl.vhdl__nodes_meta__has_default_entity_aspect
-
-Has_Binding_Indication = libghdl.vhdl__nodes_meta__has_binding_indication
-
-Has_Named_Entity = libghdl.vhdl__nodes_meta__has_named_entity
-
-Has_Alias_Declaration = libghdl.vhdl__nodes_meta__has_alias_declaration
-
-Has_Referenced_Name = libghdl.vhdl__nodes_meta__has_referenced_name
-
-Has_Expr_Staticness = libghdl.vhdl__nodes_meta__has_expr_staticness
-
-Has_Scalar_Size = libghdl.vhdl__nodes_meta__has_scalar_size
-
-Has_Error_Origin = libghdl.vhdl__nodes_meta__has_error_origin
-
-Has_Operand = libghdl.vhdl__nodes_meta__has_operand
-
-Has_Left = libghdl.vhdl__nodes_meta__has_left
-
-Has_Right = libghdl.vhdl__nodes_meta__has_right
-
-Has_Unit_Name = libghdl.vhdl__nodes_meta__has_unit_name
-
-Has_Name = libghdl.vhdl__nodes_meta__has_name
-
-Has_Group_Template_Name = libghdl.vhdl__nodes_meta__has_group_template_name
-
-Has_Name_Staticness = libghdl.vhdl__nodes_meta__has_name_staticness
-
-Has_Prefix = libghdl.vhdl__nodes_meta__has_prefix
-
-Has_Signature_Prefix = libghdl.vhdl__nodes_meta__has_signature_prefix
-
-Has_External_Pathname = libghdl.vhdl__nodes_meta__has_external_pathname
-
-Has_Pathname_Suffix = libghdl.vhdl__nodes_meta__has_pathname_suffix
-
-Has_Pathname_Expression = libghdl.vhdl__nodes_meta__has_pathname_expression
-
-Has_In_Formal_Flag = libghdl.vhdl__nodes_meta__has_in_formal_flag
-
-Has_Slice_Subtype = libghdl.vhdl__nodes_meta__has_slice_subtype
-
-Has_Suffix = libghdl.vhdl__nodes_meta__has_suffix
-
-Has_Index_Subtype = libghdl.vhdl__nodes_meta__has_index_subtype
-
-Has_Parameter = libghdl.vhdl__nodes_meta__has_parameter
-
-Has_Parameter_2 = libghdl.vhdl__nodes_meta__has_parameter_2
-
-Has_Parameter_3 = libghdl.vhdl__nodes_meta__has_parameter_3
-
-Has_Parameter_4 = libghdl.vhdl__nodes_meta__has_parameter_4
-
-Has_Attr_Chain = libghdl.vhdl__nodes_meta__has_attr_chain
-
-Has_Signal_Attribute_Declaration = (
- libghdl.vhdl__nodes_meta__has_signal_attribute_declaration
-)
-
-Has_Actual_Type = libghdl.vhdl__nodes_meta__has_actual_type
-
-Has_Actual_Type_Definition = libghdl.vhdl__nodes_meta__has_actual_type_definition
-
-Has_Association_Chain = libghdl.vhdl__nodes_meta__has_association_chain
-
-Has_Individual_Association_Chain = (
- libghdl.vhdl__nodes_meta__has_individual_association_chain
-)
-
-Has_Subprogram_Association_Chain = (
- libghdl.vhdl__nodes_meta__has_subprogram_association_chain
-)
-
-Has_Aggregate_Info = libghdl.vhdl__nodes_meta__has_aggregate_info
-
-Has_Sub_Aggregate_Info = libghdl.vhdl__nodes_meta__has_sub_aggregate_info
-
-Has_Aggr_Dynamic_Flag = libghdl.vhdl__nodes_meta__has_aggr_dynamic_flag
-
-Has_Aggr_Min_Length = libghdl.vhdl__nodes_meta__has_aggr_min_length
-
-Has_Aggr_Low_Limit = libghdl.vhdl__nodes_meta__has_aggr_low_limit
-
-Has_Aggr_High_Limit = libghdl.vhdl__nodes_meta__has_aggr_high_limit
-
-Has_Aggr_Others_Flag = libghdl.vhdl__nodes_meta__has_aggr_others_flag
-
-Has_Aggr_Named_Flag = libghdl.vhdl__nodes_meta__has_aggr_named_flag
-
-Has_Aggregate_Expand_Flag = libghdl.vhdl__nodes_meta__has_aggregate_expand_flag
-
-Has_Association_Choices_Chain = libghdl.vhdl__nodes_meta__has_association_choices_chain
-
-Has_Case_Statement_Alternative_Chain = (
- libghdl.vhdl__nodes_meta__has_case_statement_alternative_chain
-)
-
-Has_Choice_Staticness = libghdl.vhdl__nodes_meta__has_choice_staticness
-
-Has_Procedure_Call = libghdl.vhdl__nodes_meta__has_procedure_call
-
-Has_Implementation = libghdl.vhdl__nodes_meta__has_implementation
-
-Has_Parameter_Association_Chain = (
- libghdl.vhdl__nodes_meta__has_parameter_association_chain
-)
-
-Has_Method_Object = libghdl.vhdl__nodes_meta__has_method_object
-
-Has_Subtype_Type_Mark = libghdl.vhdl__nodes_meta__has_subtype_type_mark
-
-Has_Subnature_Nature_Mark = libghdl.vhdl__nodes_meta__has_subnature_nature_mark
-
-Has_Type_Conversion_Subtype = libghdl.vhdl__nodes_meta__has_type_conversion_subtype
-
-Has_Type_Mark = libghdl.vhdl__nodes_meta__has_type_mark
-
-Has_File_Type_Mark = libghdl.vhdl__nodes_meta__has_file_type_mark
-
-Has_Return_Type_Mark = libghdl.vhdl__nodes_meta__has_return_type_mark
-
-Has_Has_Disconnect_Flag = libghdl.vhdl__nodes_meta__has_has_disconnect_flag
-
-Has_Has_Active_Flag = libghdl.vhdl__nodes_meta__has_has_active_flag
-
-Has_Is_Within_Flag = libghdl.vhdl__nodes_meta__has_is_within_flag
-
-Has_Type_Marks_List = libghdl.vhdl__nodes_meta__has_type_marks_list
-
-Has_Implicit_Alias_Flag = libghdl.vhdl__nodes_meta__has_implicit_alias_flag
-
-Has_Alias_Signature = libghdl.vhdl__nodes_meta__has_alias_signature
-
-Has_Attribute_Signature = libghdl.vhdl__nodes_meta__has_attribute_signature
-
-Has_Overload_List = libghdl.vhdl__nodes_meta__has_overload_list
-
-Has_Simple_Name_Identifier = libghdl.vhdl__nodes_meta__has_simple_name_identifier
-
-Has_Simple_Name_Subtype = libghdl.vhdl__nodes_meta__has_simple_name_subtype
-
-Has_Protected_Type_Body = libghdl.vhdl__nodes_meta__has_protected_type_body
-
-Has_Protected_Type_Declaration = (
- libghdl.vhdl__nodes_meta__has_protected_type_declaration
-)
-
-Has_Use_Flag = libghdl.vhdl__nodes_meta__has_use_flag
-
-Has_End_Has_Reserved_Id = libghdl.vhdl__nodes_meta__has_end_has_reserved_id
-
-Has_End_Has_Identifier = libghdl.vhdl__nodes_meta__has_end_has_identifier
-
-Has_End_Has_Postponed = libghdl.vhdl__nodes_meta__has_end_has_postponed
-
-Has_Has_Label = libghdl.vhdl__nodes_meta__has_has_label
-
-Has_Has_Begin = libghdl.vhdl__nodes_meta__has_has_begin
-
-Has_Has_End = libghdl.vhdl__nodes_meta__has_has_end
-
-Has_Has_Is = libghdl.vhdl__nodes_meta__has_has_is
-
-Has_Has_Pure = libghdl.vhdl__nodes_meta__has_has_pure
-
-Has_Has_Body = libghdl.vhdl__nodes_meta__has_has_body
-
-Has_Has_Parameter = libghdl.vhdl__nodes_meta__has_has_parameter
-
-Has_Has_Component = libghdl.vhdl__nodes_meta__has_has_component
-
-Has_Has_Identifier_List = libghdl.vhdl__nodes_meta__has_has_identifier_list
-
-Has_Has_Mode = libghdl.vhdl__nodes_meta__has_has_mode
-
-Has_Has_Class = libghdl.vhdl__nodes_meta__has_has_class
-
-Has_Has_Delay_Mechanism = libghdl.vhdl__nodes_meta__has_has_delay_mechanism
-
-Has_Suspend_Flag = libghdl.vhdl__nodes_meta__has_suspend_flag
-
-Has_Is_Ref = libghdl.vhdl__nodes_meta__has_is_ref
-
-Has_Is_Forward_Ref = libghdl.vhdl__nodes_meta__has_is_forward_ref
-
-Has_Psl_Property = libghdl.vhdl__nodes_meta__has_psl_property
-
-Has_Psl_Sequence = libghdl.vhdl__nodes_meta__has_psl_sequence
-
-Has_Psl_Declaration = libghdl.vhdl__nodes_meta__has_psl_declaration
-
-Has_Psl_Expression = libghdl.vhdl__nodes_meta__has_psl_expression
-
-Has_Psl_Boolean = libghdl.vhdl__nodes_meta__has_psl_boolean
-
-Has_PSL_Clock = libghdl.vhdl__nodes_meta__has_psl_clock
-
-Has_PSL_NFA = libghdl.vhdl__nodes_meta__has_psl_nfa
-
-Has_PSL_Nbr_States = libghdl.vhdl__nodes_meta__has_psl_nbr_states
-
-Has_PSL_Clock_Sensitivity = libghdl.vhdl__nodes_meta__has_psl_clock_sensitivity
-
-Has_PSL_EOS_Flag = libghdl.vhdl__nodes_meta__has_psl_eos_flag
-
-Has_Count_Expression = libghdl.vhdl__nodes_meta__has_count_expression
-
-Has_Clock_Expression = libghdl.vhdl__nodes_meta__has_clock_expression
-
-Has_Default_Clock = libghdl.vhdl__nodes_meta__has_default_clock
diff --git a/python/libghdl/thin/vhdl/nodes_utils.py b/python/libghdl/thin/vhdl/nodes_utils.py
deleted file mode 100644
index caee7ac4a..000000000
--- a/python/libghdl/thin/vhdl/nodes_utils.py
+++ /dev/null
@@ -1,13 +0,0 @@
-from libghdl import libghdl
-
-Strip_Denoting_Name = libghdl.vhdl__utils__strip_denoting_name
-
-Get_Entity = libghdl.vhdl__utils__get_entity
-
-Is_Second_Subprogram_Specification = (
- libghdl.vhdl__utils__is_second_subprogram_specification
-)
-
-Get_Entity_From_Entity_Aspect = libghdl.vhdl__utils__get_entity_from_entity_aspect
-
-Get_Interface_Of_Formal = libghdl.vhdl__utils__get_interface_of_formal
diff --git a/python/libghdl/thin/vhdl/parse.py b/python/libghdl/thin/vhdl/parse.py
deleted file mode 100644
index 4fff64b84..000000000
--- a/python/libghdl/thin/vhdl/parse.py
+++ /dev/null
@@ -1,6 +0,0 @@
-from libghdl import libghdl
-from ctypes import c_bool
-
-Parse_Design_File = libghdl.vhdl__parse__parse_design_file
-
-Flag_Parse_Parenthesis = c_bool.in_dll(libghdl, "vhdl__parse__flag_parse_parenthesis")
diff --git a/python/libghdl/thin/vhdl/pyutils.py b/python/libghdl/thin/vhdl/pyutils.py
deleted file mode 100644
index ba041d323..000000000
--- a/python/libghdl/thin/vhdl/pyutils.py
+++ /dev/null
@@ -1,416 +0,0 @@
-from ctypes import c_char_p, c_int32, c_int, c_bool, sizeof, c_void_p, byref
-import libghdl.thin.name_table as name_table
-import libghdl.thin.vhdl.nodes as nodes
-import libghdl.thin.vhdl.nodes_meta as nodes_meta
-import libghdl.thin.vhdl.lists as lists
-import libghdl.thin.vhdl.flists as flists
-from libghdl.thin.vhdl.nodes_meta import Attr, types
-
-
-def name_image(nameid):
- return name_table.Get_Name_Ptr(nameid).decode("utf-8")
-
-
-def _build_enum_image(cls):
- d = [e for e in dir(cls) if e[0] != "_"]
- res = [None] * len(d)
- for e in d:
- res[getattr(cls, e)] = e
- return res
-
-
-_fields_image = _build_enum_image(nodes_meta.fields)
-
-
-def fields_image(idx):
- """String representation of field idx"""
- return _fields_image[idx]
-
-
-_kind_image = _build_enum_image(nodes.Iir_Kind)
-
-
-def kind_image(k):
- """String representation of Iir_Kind k"""
- return _kind_image[k]
-
-
-_types_image = _build_enum_image(nodes_meta.types)
-
-
-def types_image(t):
- """String representation of Nodes_Meta.Types t"""
- return _types_image[t]
-
-
-_attr_image = _build_enum_image(nodes_meta.Attr)
-
-
-def attr_image(a):
- """String representation of Nodes_Meta.Attr a"""
- return _attr_image[a]
-
-
-def leftest_location(n):
- while True:
- if n == Null_Iir:
- return No_Location
- k = nodes.Get_Kind(n)
- if k == nodes.Iir_Kind.Array_Subtype_Definition:
- n = nodes.Get_Subtype_Type_Mark(n)
- else:
- return nodes.Get_Location(n)
-
-
-def fields_iter(n):
- """Iterate on fields of node n"""
- if n == nodes.Null_Iir:
- return
- k = nodes.Get_Kind(n)
- first = nodes_meta.get_fields_first(k)
- last = nodes_meta.get_fields_last(k)
- for i in range(first, last + 1):
- yield nodes_meta.get_field_by_index(i)
-
-
-def chain_iter(n):
- """Iterate of a chain headed by node n"""
- while n != nodes.Null_Iir:
- yield n
- n = nodes.Get_Chain(n)
-
-
-def chain_to_list(n):
- """Convert a chain headed by node n to a python list"""
- return [e for e in chain_iter(n)]
-
-
-def nodes_iter(n):
- """Iterate of all nodes of n, including n.
- Nodes are returned only once."""
- if n == nodes.Null_Iir:
- return
- # print 'nodes_iter for {0}'.format(n)
- yield n
- for f in fields_iter(n):
- typ = nodes_meta.get_field_type(f)
- # print ' {0}: field {1} (type: {2})'.format(
- # n, fields_image(f), types_image(typ))
- if typ == nodes_meta.types.Iir:
- attr = nodes_meta.get_field_attribute(f)
- if attr == Attr.ANone:
- for n1 in nodes_iter(nodes_meta.Get_Iir(n, f)):
- yield n1
- elif attr == Attr.Chain:
- n2 = nodes_meta.Get_Iir(n, f)
- while n2 != nodes.Null_Iir:
- for n1 in nodes_iter(n2):
- yield n1
- n2 = nodes.Get_Chain(n2)
- elif attr == Attr.Maybe_Ref:
- if not nodes.Get_Is_Ref(n, f):
- for n1 in nodes_iter(nodes_meta.Get_Iir(n, f)):
- yield n1
- elif typ == types.Iir_List:
- attr = nodes_meta.get_field_attribute(f)
- if attr == Attr.ANone:
- for n1 in list_iter(nodes_meta.Get_Iir_List(n, f)):
- for n2 in nodes_iter(n1):
- yield n2
- elif typ == types.Iir_Flist:
- attr = nodes_meta.get_field_attribute(f)
- if attr == Attr.ANone:
- for n1 in flist_iter(nodes_meta.Get_Iir_Flist(n, f)):
- for n2 in nodes_iter(n1):
- yield n2
-
-
-def list_iter(lst):
- """Iterate of all element of Iir_List lst."""
- if lst <= nodes.Iir_List_All:
- return
- iter = lists.Iterate(lst)
- while lists.Is_Valid(byref(iter)):
- yield lists.Get_Element(byref(iter))
- lists.Next(byref(iter))
-
-
-def flist_iter(lst):
- """Iterate of all element of Iir_List lst."""
- if lst <= nodes.Iir_Flist_All:
- return
- for i in range(flists.Flast(lst) + 1):
- yield flists.Get_Nth_Element(lst, i)
-
-
-def declarations_iter(n):
- """Iterator on all declarations in n."""
- k = nodes.Get_Kind(n)
- if nodes_meta.Has_Generic_Chain(k):
- for n1 in chain_iter(nodes.Get_Generic_Chain(n)):
- yield n1
- if nodes_meta.Has_Port_Chain(k):
- for n1 in chain_iter(nodes.Get_Port_Chain(n)):
- yield n1
- if nodes_meta.Has_Interface_Declaration_Chain(k):
- for n1 in chain_iter(nodes.Get_Interface_Declaration_Chain(n)):
- yield n1
- if nodes_meta.Has_Declaration_Chain(k):
- for n1 in chain_iter(nodes.Get_Declaration_Chain(n)):
- k1 = nodes.Get_Kind(n1)
- if k1 in nodes.Iir_Kinds.Specification or k1 == nodes.Iir_Kind.Use_Clause:
- # Not a declaration
- pass
- elif k1 == nodes.Iir_Kind.Signal_Attribute_Declaration:
- # Not a declaration
- pass
- elif k1 in [
- nodes.Iir_Kind.Type_Declaration,
- nodes.Iir_Kind.Anonymous_Type_Declaration,
- ]:
- yield n1
- # Handle nested declarations: record elements, physical units,
- # enumeration literals...
- typ = nodes.Get_Type_Definition(n1)
- for n2 in declarations_iter(n1):
- yield n2
- else:
- yield n1
- # There can be nested declarations (subprograms)
- for n2 in declarations_iter(n1):
- yield n2
- if nodes_meta.Has_Concurrent_Statement_Chain(k):
- for n1 in chain_iter(nodes.Get_Concurrent_Statement_Chain(n)):
- for n2 in declarations_iter(n1):
- yield n2
- if nodes_meta.Has_Sequential_Statement_Chain(k):
- for n1 in chain_iter(nodes.Get_Sequential_Statement_Chain(n)):
- for n2 in declarations_iter(n1):
- yield n2
- if nodes_meta.Has_Parameter_Specification(k):
- yield nodes.Get_Parameter_Specification(n)
- if nodes_meta.Has_Generate_Statement_Body(k):
- for n1 in declarations_iter(nodes.Get_Generate_Statement_Body(n)):
- yield n1
- if nodes_meta.Has_Else_Clause(k):
- n1 = nodes.Get_Else_Clause(n)
- if n1 != Null_Iir:
- for n2 in declarations_iter(n1):
- yield n2
- if nodes_meta.Has_Generate_Else_Clause(k):
- n1 = nodes.Get_Generate_Else_Clause(n)
- if n1 != Null_Iir:
- for n2 in declarations_iter(n1):
- yield n2
- if nodes_meta.Has_Block_Header(k):
- n1 = nodes.Get_Block_Header(n)
- if n1 != Null_Iir:
- for n2 in declarations_iter(n1):
- yield n2
- # All these nodes are handled:
- if k in [
- nodes.Iir_Kind.Entity_Declaration,
- nodes.Iir_Kind.Architecture_Body,
- nodes.Iir_Kind.Package_Declaration,
- nodes.Iir_Kind.Package_Body,
- nodes.Iir_Kind.Process_Statement,
- nodes.Iir_Kind.Sensitized_Process_Statement,
- nodes.Iir_Kind.Concurrent_Assertion_Statement,
- nodes.Iir_Kind.Concurrent_Simple_Signal_Assignment,
- nodes.Iir_Kind.Concurrent_Selected_Signal_Assignment,
- nodes.Iir_Kind.Concurrent_Conditional_Signal_Assignment,
- nodes.Iir_Kind.Concurrent_Procedure_Call_Statement,
- nodes.Iir_Kind.Block_Statement,
- nodes.Iir_Kind.Block_Header,
- nodes.Iir_Kind.For_Generate_Statement,
- nodes.Iir_Kind.If_Generate_Statement,
- nodes.Iir_Kind.Generate_Statement_Body,
- nodes.Iir_Kind.Assertion_Statement,
- nodes.Iir_Kind.Wait_Statement,
- nodes.Iir_Kind.Simple_Signal_Assignment_Statement,
- nodes.Iir_Kind.Variable_Assignment_Statement,
- nodes.Iir_Kind.For_Loop_Statement,
- nodes.Iir_Kind.While_Loop_Statement,
- nodes.Iir_Kind.Case_Statement,
- nodes.Iir_Kind.Null_Statement,
- nodes.Iir_Kind.Exit_Statement,
- nodes.Iir_Kind.Next_Statement,
- nodes.Iir_Kind.Procedure_Call_Statement,
- nodes.Iir_Kind.Signal_Declaration,
- nodes.Iir_Kind.Constant_Declaration,
- nodes.Iir_Kind.Variable_Declaration,
- nodes.Iir_Kind.File_Declaration,
- nodes.Iir_Kind.Object_Alias_Declaration,
- nodes.Iir_Kind.Attribute_Declaration,
- nodes.Iir_Kind.Component_Declaration,
- nodes.Iir_Kind.Use_Clause,
- nodes.Iir_Kind.If_Statement,
- nodes.Iir_Kind.Elsif,
- nodes.Iir_Kind.Return_Statement,
- nodes.Iir_Kind.Type_Declaration,
- nodes.Iir_Kind.Anonymous_Type_Declaration,
- nodes.Iir_Kind.Subtype_Declaration,
- nodes.Iir_Kind.Function_Declaration,
- nodes.Iir_Kind.Function_Body,
- nodes.Iir_Kind.Procedure_Declaration,
- nodes.Iir_Kind.Procedure_Body,
- nodes.Iir_Kind.Component_Instantiation_Statement,
- ]:
- return
- assert False, "unknown node of kind {}".format(kind_image(k))
-
-
-def concurrent_stmts_iter(n):
- """Iterator on concurrent statements in n."""
- k = nodes.Get_Kind(n)
- if k == nodes.Iir_Kind.Design_File:
- for n1 in chain_iter(nodes.Get_First_Design_Unit(n)):
- for n2 in concurrent_stmts_iter(n1):
- yield n2
- elif k == nodes.Iir_Kind.Design_Unit:
- for n1 in concurrent_stmts_iter(nodes.Get_Library_Unit(n)):
- yield n1
- elif (
- k == nodes.Iir_Kind.Entity_Declaration
- or k == nodes.Iir_Kind.Architecture_Body
- or k == nodes.Iir_Kind.Block_Statement
- ):
- for n1 in chain_iter(nodes.Get_Concurrent_Statement_Chain(n)):
- yield n1
- for n2 in concurrent_stmts_iter(n1):
- yield n2
- elif k == nodes.Iir_Kind.For_Generate_Statement:
- for n1 in concurrent_stmts_iter(nodes.Get_Generate_Statement_Body(n)):
- yield n1
- elif k == nodes.Iir_Kind.If_Generate_Statement:
- while n != Null_Iir:
- for n1 in concurrent_stmts_iter(nodes.Get_Generate_Statement_Body(n)):
- yield n1
- n = nodes.Get_Generate_Else_Clause(n)
- elif k == nodes.Iir_Kind.Case_Generate_Statement:
- alt = nodes.Get_Case_Statement_Alternative_Chain(n)
- for n1 in chain_iter(alt):
- blk = nodes.Get_Associated_Block(n1)
- if blk != Null_Iir:
- for n2 in concurrent_stmts_iter(nodes.Get_Generate_Statement_Body(n)):
- yield n2
-
-
-def constructs_iter(n):
- """Iterator on library unit, concurrent statements and declarations
- that appear directly within a declarative part."""
- if n == thin.Null_Iir:
- return
- k = nodes.Get_Kind(n)
- if k == nodes.Iir_Kind.Design_File:
- for n1 in chain_iter(nodes.Get_First_Design_Unit(n)):
- for n2 in constructs_iter(n1):
- yield n2
- elif k == nodes.Iir_Kind.Design_Unit:
- n1 = nodes.Get_Library_Unit(n)
- yield n1
- for n2 in constructs_iter(n1):
- yield n2
- elif k in [
- nodes.Iir_Kind.Entity_Declaration,
- nodes.Iir_Kind.Architecture_Body,
- nodes.Iir_Kind.Block_Statement,
- nodes.Iir_Kind.Generate_Statement_Body,
- ]:
- for n1 in chain_iter(nodes.Get_Declaration_Chain(n)):
- yield n1
- for n2 in constructs_iter(n1):
- yield n2
- for n1 in chain_iter(nodes.Get_Concurrent_Statement_Chain(n)):
- yield n1
- for n2 in constructs_iter(n1):
- yield n2
- elif k in [
- nodes.Iir_Kind.Configuration_Declaration,
- nodes.Iir_Kind.Package_Declaration,
- nodes.Iir_Kind.Package_Body,
- nodes.Iir_Kind.Function_Body,
- nodes.Iir_Kind.Procedure_Body,
- nodes.Iir_Kind.Protected_Type_Declaration,
- nodes.Iir_Kind.Protected_Type_Body,
- nodes.Iir_Kind.Process_Statement,
- nodes.Iir_Kind.Sensitized_Process_Statement,
- ]:
- for n1 in chain_iter(nodes.Get_Declaration_Chain(n)):
- yield n1
- for n2 in constructs_iter(n1):
- yield n2
- elif k == nodes.Iir_Kind.For_Generate_Statement:
- n1 = nodes.Get_Generate_Statement_Body(n)
- yield n1
- for n2 in constructs_iter(n1):
- yield n2
- elif k == nodes.Iir_Kind.If_Generate_Statement:
- while n != Null_Iir:
- n1 = nodes.Get_Generate_Statement_Body(n)
- yield n1
- for n2 in constructs_iter(n1):
- yield n2
- n = nodes.Get_Generate_Else_Clause(n)
- elif k == nodes.Iir_Kind.Case_Generate_Statement:
- alt = nodes.Get_Case_Statement_Alternative_Chain(n)
- for n1 in chain_iter(alt):
- blk = nodes.Get_Associated_Block(n1)
- if blk != Null_Iir:
- n2 = nodes.Get_Generate_Statement_Body(blk)
- yield n2
- for n3 in constructs_iter(n2):
- yield n3
-
-
-def sequential_iter(n):
- """Iterator on sequential statements. The first node must be either
- a process or a subprogram body."""
- if n == thin.Null_Iir:
- return
- k = nodes.Get_Kind(n)
- if k in [
- nodes.Iir_Kind.Process_Statement,
- nodes.Iir_Kind.Sensitized_Process_Statement,
- nodes.Iir_Kind.Function_Body,
- nodes.Iir_Kind.Procedure_Body,
- ]:
- for n1 in chain_iter(nodes.Get_Sequential_Statement_Chain(n)):
- yield n1
- for n2 in sequential_iter(n1):
- yield n2
- elif k == nodes.Iir_Kind.If_Statement:
- while True:
- n = nodes.Get_Chain(n)
- if n == thin.Null_Iir:
- break
- yield n
- for n1 in sequential_iter(n):
- yield n1
- elif k == nodes.Iir_Kind.Case_Statement:
- for ch in chain_iter(nodes.Get_Case_Statement_Alternative_Chain(n)):
- stmt = nodes.Get_Associated_Chain(ch)
- if stmt != thin.Null_Iir:
- for n1 in chain_iter(stmt):
- yield n1
- for n2 in sequential_iter(n1):
- yield n2
- elif k in [nodes.Iir_Kind.For_Loop_Statement, nodes.Iir_Kind.While_Loop_Statement]:
- for n1 in chain_iter(nodes.Get_Sequential_Statement_Chain(n)):
- yield n1
- for n2 in sequential_iter(n1):
- yield n2
- elif k in [
- nodes.Iir_Kind.Assertion_Statement,
- nodes.Iir_Kind.Wait_Statement,
- nodes.Iir_Kind.Null_Statement,
- nodes.Iir_Kind.Exit_Statement,
- nodes.Iir_Kind.Next_Statement,
- nodes.Iir_Kind.Return_Statement,
- nodes.Iir_Kind.Variable_Assignment_Statement,
- nodes.Iir_Kind.Simple_Signal_Assignment_Statement,
- nodes.Iir_Kind.Procedure_Call_Statement,
- ]:
- return
- else:
- assert False, "unknown node of kind {}".format(kind_image(k))
diff --git a/python/libghdl/thin/vhdl/scanner.py b/python/libghdl/thin/vhdl/scanner.py
deleted file mode 100644
index 8cea66ba3..000000000
--- a/python/libghdl/thin/vhdl/scanner.py
+++ /dev/null
@@ -1,23 +0,0 @@
-from libghdl import libghdl
-from ctypes import c_int, c_bool
-
-Set_File = libghdl.vhdl__scanner__set_file
-
-Close_File = libghdl.vhdl__scanner__close_file
-
-Scan = libghdl.vhdl__scanner__scan
-
-# This is a c_int, so you want to use its .value
-Current_Token = c_int.in_dll(libghdl, "vhdl__scanner__current_token")
-
-Flag_Comment = c_bool.in_dll(libghdl, "vhdl__scanner__flag_comment")
-
-Get_Current_Line = libghdl.vhdl__scanner__get_current_line
-
-Get_Token_Offset = libghdl.vhdl__scanner__get_token_offset
-
-Get_Token_Position = libghdl.vhdl__scanner__get_token_position
-
-Get_Position = libghdl.vhdl__scanner__get_position
-
-Current_Identifier = libghdl.vhdl__scanner__current_identifier
diff --git a/python/libghdl/thin/vhdl/sem.py b/python/libghdl/thin/vhdl/sem.py
deleted file mode 100644
index df82435da..000000000
--- a/python/libghdl/thin/vhdl/sem.py
+++ /dev/null
@@ -1,3 +0,0 @@
-from libghdl import libghdl
-
-Semantic = libghdl.vhdl__sem__semantic
diff --git a/python/libghdl/thin/vhdl/sem_lib.py b/python/libghdl/thin/vhdl/sem_lib.py
deleted file mode 100644
index 36559ec5e..000000000
--- a/python/libghdl/thin/vhdl/sem_lib.py
+++ /dev/null
@@ -1,7 +0,0 @@
-from libghdl import libghdl
-
-Load_File = libghdl.vhdl__sem_lib__load_file
-
-Finish_Compilation = libghdl.vhdl__sem_lib__finish_compilation
-
-Free_Dependence_List = libghdl.vhdl__sem_lib__free_dependence_list
diff --git a/python/libghdl/thin/vhdl/std_package.py b/python/libghdl/thin/vhdl/std_package.py
deleted file mode 100644
index d999ae8b9..000000000
--- a/python/libghdl/thin/vhdl/std_package.py
+++ /dev/null
@@ -1,13 +0,0 @@
-from libghdl import libghdl
-from ctypes import c_int32
-
-# Use .value
-Std_Location = c_int32.in_dll(libghdl, "vhdl__std_package__std_location")
-
-# Use .value
-Standard_Package = c_int32.in_dll(libghdl, "vhdl__std_package__standard_package")
-
-# Use .value
-Character_Type_Definition = c_int32.in_dll(
- libghdl, "vhdl__std_package__character_type_definition"
-)
diff --git a/python/libghdl/thin/vhdl/tokens.py b/python/libghdl/thin/vhdl/tokens.py
deleted file mode 100644
index 002e7ca82..000000000
--- a/python/libghdl/thin/vhdl/tokens.py
+++ /dev/null
@@ -1,220 +0,0 @@
-class Tok:
- Invalid = 0
- Left_Paren = 1
- Right_Paren = 2
- Left_Bracket = 3
- Right_Bracket = 4
- Colon = 5
- Semi_Colon = 6
- Comma = 7
- Double_Arrow = 8
- Tick = 9
- Double_Star = 10
- Assign = 11
- Bar = 12
- Box = 13
- Dot = 14
- Equal_Equal = 15
- Eof = 16
- Newline = 17
- Line_Comment = 18
- Block_Comment = 19
- Character = 20
- Identifier = 21
- Integer = 22
- Real = 23
- String = 24
- Bit_String = 25
- Integer_Letter = 26
- Equal = 27
- Not_Equal = 28
- Less = 29
- Less_Equal = 30
- Greater = 31
- Greater_Equal = 32
- Match_Equal = 33
- Match_Not_Equal = 34
- Match_Less = 35
- Match_Less_Equal = 36
- Match_Greater = 37
- Match_Greater_Equal = 38
- Plus = 39
- Minus = 40
- Ampersand = 41
- Condition = 42
- Double_Less = 43
- Double_Greater = 44
- Caret = 45
- And_And = 46
- Bar_Bar = 47
- Left_Curly = 48
- Right_Curly = 49
- Exclam_Mark = 50
- Brack_Star = 51
- Brack_Plus_Brack = 52
- Brack_Arrow = 53
- Brack_Equal = 54
- Bar_Arrow = 55
- Bar_Double_Arrow = 56
- Minus_Greater = 57
- Equiv_Arrow = 58
- Arobase = 59
- Star = 60
- Slash = 61
- Mod = 62
- Rem = 63
- Abs = 64
- Not = 65
- Access = 66
- After = 67
- Alias = 68
- All = 69
- Architecture = 70
- Array = 71
- Assert = 72
- Attribute = 73
- Begin = 74
- Block = 75
- Body = 76
- Buffer = 77
- Bus = 78
- Case = 79
- Component = 80
- Configuration = 81
- Constant = 82
- Disconnect = 83
- Downto = 84
- Else = 85
- Elsif = 86
- End = 87
- Entity = 88
- Exit = 89
- File = 90
- For = 91
- Function = 92
- Generate = 93
- Generic = 94
- Guarded = 95
- If = 96
- In = 97
- Inout = 98
- Is = 99
- Label = 100
- Library = 101
- Linkage = 102
- Loop = 103
- Map = 104
- New = 105
- Next = 106
- Null = 107
- Of = 108
- On = 109
- Open = 110
- Others = 111
- Out = 112
- Package = 113
- Port = 114
- Procedure = 115
- Process = 116
- Range = 117
- Record = 118
- Register = 119
- Report = 120
- Return = 121
- Select = 122
- Severity = 123
- Signal = 124
- Subtype = 125
- Then = 126
- To = 127
- Transport = 128
- Type = 129
- Units = 130
- Until = 131
- Use = 132
- Variable = 133
- Wait = 134
- When = 135
- While = 136
- With = 137
- And = 138
- Or = 139
- Xor = 140
- Nand = 141
- Nor = 142
- Xnor = 143
- Group = 144
- Impure = 145
- Inertial = 146
- Literal = 147
- Postponed = 148
- Pure = 149
- Reject = 150
- Shared = 151
- Unaffected = 152
- Sll = 153
- Sla = 154
- Sra = 155
- Srl = 156
- Rol = 157
- Ror = 158
- Protected = 159
- Assume = 160
- Context = 161
- Cover = 162
- Default = 163
- Force = 164
- Parameter = 165
- Property = 166
- Release = 167
- Restrict = 168
- Restrict_Guarantee = 169
- Sequence = 170
- Vmode = 171
- Vprop = 172
- Vunit = 173
- Across = 174
- Break = 175
- Limit = 176
- Nature = 177
- Noise = 178
- Procedural = 179
- Quantity = 180
- Reference = 181
- Spectrum = 182
- Subnature = 183
- Terminal = 184
- Through = 185
- Tolerance = 186
- Psl_Clock = 187
- Psl_Endpoint = 188
- Psl_Const = 189
- Psl_Boolean = 190
- Inf = 191
- Within = 192
- Abort = 193
- Before = 194
- Before_Em = 195
- Before_Un = 196
- Before_Em_Un = 197
- Always = 198
- Never = 199
- Eventually_Em = 200
- Next_Em = 201
- Next_A = 202
- Next_A_Em = 203
- Next_E = 204
- Next_E_Em = 205
- Next_Event = 206
- Next_Event_Em = 207
- Next_Event_A = 208
- Next_Event_A_Em = 209
- Next_Event_E = 210
- Next_Event_E_Em = 211
- Until_Em = 212
- Until_Un = 213
- Until_Em_Un = 214
- Prev = 215
- Stable = 216
- Fell = 217
- Rose = 218
diff --git a/python/libghdl/version.py b/python/libghdl/version.py
deleted file mode 100644
index fcc6d13d8..000000000
--- a/python/libghdl/version.py
+++ /dev/null
@@ -1 +0,0 @@
-__version__ = "1.0-dev"
diff --git a/python/setup.py b/python/setup.py
deleted file mode 100644
index 1eec3bcf5..000000000
--- a/python/setup.py
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/usr/bin/env python
-
-from setuptools import setup
-import re
-
-
-def get_version():
- # Try from version.py. Reads it to avoid loading the shared library.
- r = re.compile('^__version__ = "(.*)"\n')
- try:
- l = open("libghdl/version.py").read()
- m = r.match(l)
- if m:
- return m.group(1)
- except:
- pass
- raise Exception("Cannot find version")
-
-
-# Extract the version now, as setup() may change the current directory.
-version = get_version()
-
-setup(
- name="pyghdl",
- version=version,
- description="VHDL Language Server and interface to ghdl, a VHDL analyzer",
- long_description=open("README").read(),
- author="Tristan Gingold",
- author_email="tgingold@free.fr",
- url="http://github.com/ghdl/ghdl",
- license="GPL-2.0-or-later",
- package_dir={"libghdl": "libghdl", "vhdl_langserver": "vhdl_langserver"},
- packages=["libghdl", "libghdl.thin", "libghdl.thin.vhdl", "vhdl_langserver"],
- # List run-time dependencies here. For an analysis of "install_requires"
- # vs pip's requirements files see:
- # https://packaging.python.org/en/latest/requirements.html
- install_requires=["attrs"],
- # To provide executable scripts, use entry points in preference to the
- # "scripts" keyword. Entry points provide cross-platform support and allow
- # pip to create the appropriate form of executable for the target platform.
- entry_points={
- "console_scripts": [
- "ghdl-ls = vhdl_langserver.main:main",
- ]
- },
-)
diff --git a/python/vhdl_langserver/__init__.py b/python/vhdl_langserver/__init__.py
deleted file mode 100644
index e69de29bb..000000000
--- a/python/vhdl_langserver/__init__.py
+++ /dev/null
diff --git a/python/vhdl_langserver/document.py b/python/vhdl_langserver/document.py
deleted file mode 100644
index 82d11fe56..000000000
--- a/python/vhdl_langserver/document.py
+++ /dev/null
@@ -1,226 +0,0 @@
-import ctypes
-import logging
-import os
-import libghdl.thin.name_table as name_table
-import libghdl.thin.files_map as files_map
-import libghdl.thin.files_map_editor as files_map_editor
-import libghdl.thin.libraries as libraries
-import libghdl.thin.vhdl.nodes as nodes
-import libghdl.thin.vhdl.sem_lib as sem_lib
-import libghdl.thin.vhdl.sem as sem
-import libghdl.thin.vhdl.formatters as formatters
-
-from . import symbols, references
-
-log = logging.getLogger(__name__)
-
-
-class Document(object):
- # The encoding used for the files.
- # Unfortunately this is not fully reliable. The client can read the
- # file using its own view of the encoding. It then pass the document
- # to the server using unicode(utf-8). Then the document is converted
- # back to bytes using this encoding. And we hope the result would be
- # the same as the file. Because VHDL uses the iso 8859-1 character
- # set, we use the same encoding. The client should also use 8859-1.
- encoding = "iso-8859-1"
-
- initial_gap_size = 4096
-
- def __init__(self, uri, sfe=None, version=None):
- self.uri = uri
- self.version = version
- self._fe = sfe
- self.gap_size = Document.initial_gap_size
- self._tree = nodes.Null_Iir
-
- @staticmethod
- def load(source, dirname, filename):
- # Write text to file buffer.
- src_bytes = source.encode(Document.encoding, "replace")
- src_len = len(src_bytes)
- buf_len = src_len + Document.initial_gap_size
- fileid = name_table.Get_Identifier(filename.encode("utf-8"))
- if os.path.isabs(filename):
- dirid = name_table.Null_Identifier
- else:
- dirid = name_table.Get_Identifier(dirname.encode("utf-8"))
- sfe = files_map.Reserve_Source_File(dirid, fileid, buf_len)
- files_map_editor.Fill_Text(sfe, ctypes.c_char_p(src_bytes), src_len)
- return sfe
-
- def reload(self, source):
- """Reload the source of a document. """
- src_bytes = source.encode(Document.encoding, "replace")
- files_map_editor.Fill_Text(self._fe, ctypes.c_char_p(src_bytes), len(src_bytes))
-
- def __str__(self):
- return str(self.uri)
-
- def apply_change(self, change):
- """Apply a change to the document."""
- text = change["text"]
- change_range = change.get("range")
-
- text_bytes = text.encode(Document.encoding, "replace")
-
- if not change_range:
- # The whole file has changed
- raise AssertionError
- # if len(text_bytes) < thin.Files_Map.Get_Buffer_Length(self._fe):
- # xxxx_replace
- # else:
- # xxxx_free
- # xxxx_allocate
- # return
-
- start_line = change_range["start"]["line"]
- start_col = change_range["start"]["character"]
- end_line = change_range["end"]["line"]
- end_col = change_range["end"]["character"]
-
- status = files_map_editor.Replace_Text(
- self._fe,
- start_line + 1,
- start_col,
- end_line + 1,
- end_col,
- ctypes.c_char_p(text_bytes),
- len(text_bytes),
- )
- if status:
- return
-
- # Failed to replace text.
- # Increase size
- self.gap_size *= 2
- fileid = files_map.Get_File_Name(self._fe)
- dirid = files_map.Get_Directory_Name(self._fe)
- buf_len = files_map.Get_File_Length(self._fe) + len(text_bytes) + self.gap_size
- files_map.Discard_Source_File(self._fe)
- new_sfe = files_map.Reserve_Source_File(dirid, fileid, buf_len)
- files_map_editor.Copy_Source_File(new_sfe, self._fe)
- files_map.Free_Source_File(self._fe)
- self._fe = new_sfe
- status = files_map_editor.Replace_Text(
- self._fe,
- start_line + 1,
- start_col,
- end_line + 1,
- end_col,
- ctypes.c_char_p(text_bytes),
- len(text_bytes),
- )
- assert status
-
- def check_document(self, text):
- log.debug("Checking document: %s", self.uri)
-
- text_bytes = text.encode(Document.encoding, "replace")
-
- files_map_editor.Check_Buffer_Content(
- self._fe, ctypes.c_char_p(text_bytes), len(text_bytes)
- )
-
- @staticmethod
- def add_to_library(tree):
- # Detach the chain of units.
- unit = nodes.Get_First_Design_Unit(tree)
- nodes.Set_First_Design_Unit(tree, nodes.Null_Iir)
- # FIXME: free the design file ?
- tree = nodes.Null_Iir
- # Analyze unit after unit.
- while unit != nodes.Null_Iir:
- # Pop the first unit.
- next_unit = nodes.Get_Chain(unit)
- nodes.Set_Chain(unit, nodes.Null_Iir)
- lib_unit = nodes.Get_Library_Unit(unit)
- if (
- lib_unit != nodes.Null_Iir
- and nodes.Get_Identifier(unit) != name_table.Null_Identifier
- ):
- # Put the unit (only if it has a library unit) in the library.
- libraries.Add_Design_Unit_Into_Library(unit, False)
- tree = nodes.Get_Design_File(unit)
- unit = next_unit
- return tree
-
- def parse_document(self):
- """Parse a document and put the units in the library"""
- assert self._tree == nodes.Null_Iir
- tree = sem_lib.Load_File(self._fe)
- if tree == nodes.Null_Iir:
- return
- self._tree = Document.add_to_library(tree)
- log.debug("add_to_library(%u) -> %u", tree, self._tree)
- if self._tree == nodes.Null_Iir:
- return
- nodes.Set_Design_File_Source(self._tree, self._fe)
-
- def compute_diags(self):
- log.debug("parse doc %d %s", self._fe, self.uri)
- self.parse_document()
- if self._tree == nodes.Null_Iir:
- # No units, nothing to add.
- return
- # Semantic analysis.
- unit = nodes.Get_First_Design_Unit(self._tree)
- while unit != nodes.Null_Iir:
- sem.Semantic(unit)
- nodes.Set_Date_State(unit, nodes.Date_State.Analyze)
- unit = nodes.Get_Chain(unit)
-
- def flatten_symbols(self, syms, parent):
- res = []
- for s in syms:
- s["location"] = {"uri": self.uri, "range": s["range"]}
- del s["range"]
- s.pop("detail", None)
- if parent is not None:
- s["containerName"] = parent
- res.append(s)
- children = s.pop("children", None)
- if children is not None:
- res.extend(self.flatten_symbols(children, s))
- return res
-
- def document_symbols(self):
- log.debug("document_symbols")
- if self._tree == nodes.Null_Iir:
- return []
- syms = symbols.get_symbols_chain(
- self._fe, nodes.Get_First_Design_Unit(self._tree)
- )
- return self.flatten_symbols(syms, None)
-
- def position_to_location(self, position):
- pos = files_map.File_Line_To_Position(self._fe, position["line"] + 1)
- return files_map.File_Pos_To_Location(self._fe, pos) + position["character"]
-
- def goto_definition(self, position):
- loc = self.position_to_location(position)
- return references.goto_definition(self._tree, loc)
-
- def format_range(self, rng):
- first_line = rng["start"]["line"] + 1
- last_line = rng["end"]["line"] + (1 if rng["end"]["character"] != 0 else 0)
- if last_line < first_line:
- return None
- if self._tree == nodes.Null_Iir:
- return None
- hand = formatters.Allocate_Handle()
- formatters.Indent_String(self._tree, hand, first_line, last_line)
- buffer = formatters.Get_C_String(hand)
- buf_len = formatters.Get_Length(hand)
- newtext = buffer[:buf_len].decode(Document.encoding)
- res = [
- {
- "range": {
- "start": {"line": first_line - 1, "character": 0},
- "end": {"line": last_line, "character": 0},
- },
- "newText": newtext,
- }
- ]
- formatters.Free_Handle(hand)
- return res
diff --git a/python/vhdl_langserver/lsp.py b/python/vhdl_langserver/lsp.py
deleted file mode 100644
index 60f32be76..000000000
--- a/python/vhdl_langserver/lsp.py
+++ /dev/null
@@ -1,311 +0,0 @@
-import os
-import logging
-import json
-import attr
-from attr.validators import instance_of
-
-try:
- from urllib.parse import unquote, quote
-except ImportError:
- from urllib2 import quote
- from urlparse import unquote
-
-log = logging.getLogger("ghdl-ls")
-
-
-class ProtocolError(Exception):
- pass
-
-
-class LSPConn:
- def __init__(self, reader, writer):
- self.reader = reader
- self.writer = writer
-
- def readline(self):
- data = self.reader.readline()
- return data.decode("utf-8")
-
- def read(self, size):
- data = self.reader.read(size)
- return data.decode("utf-8")
-
- def write(self, out):
- self.writer.write(out.encode())
- self.writer.flush()
-
-
-def path_from_uri(uri):
- # Convert file uri to path (strip html like head part)
- if not uri.startswith("file://"):
- return uri
- if os.name == "nt":
- _, path = uri.split("file:///", 1)
- else:
- _, path = uri.split("file://", 1)
- return os.path.normpath(unquote(path))
-
-
-def path_to_uri(path):
- # Convert path to file uri (add html like head part)
- if os.name == "nt":
- return "file:///" + quote(path.replace("\\", "/"))
- else:
- return "file://" + quote(path)
-
-
-class LanguageProtocolServer(object):
- def __init__(self, handler, conn):
- self.conn = conn
- self.handler = handler
- if handler is not None:
- handler.set_lsp(self)
- self.running = True
- self._next_id = 0
-
- def read_request(self):
- headers = {}
- while True:
- # Read a line
- line = self.conn.readline()
- # Return on EOF.
- if not line:
- return None
- if line[-2:] != "\r\n":
- raise ProtocolError("invalid end of line in header")
- line = line[:-2]
- if not line:
- # End of headers.
- log.debug("Headers: %r", headers)
- length = headers.get("Content-Length", None)
- if length is not None:
- body = self.conn.read(int(length))
- return body
- else:
- raise ProtocolError("missing Content-Length in header")
- else:
- key, value = line.split(": ", 1)
- headers[key] = value
-
- def run(self):
- while self.running:
- body = self.read_request()
- if body is None:
- # EOF
- break
-
- # Text to JSON
- msg = json.loads(body)
- log.debug("Read msg: %s", msg)
-
- reply = self.handle(msg)
- if reply is not None:
- self.write_output(reply)
-
- def handle(self, msg):
- if msg.get("jsonrpc", None) != "2.0":
- raise ProtocolError("invalid jsonrpc version")
- tid = msg.get("id", None)
- method = msg.get("method", None)
- if method is None:
- # This is a reply.
- log.error("Unexpected reply for %s", tid)
- return
- params = msg.get("params", None)
- fmethod = self.handler.dispatcher.get(method, None)
- if fmethod:
- if params is None:
- params = {}
- try:
- response = fmethod(**params)
- except Exception as e:
- log.exception(
- "Caught exception while handling %s with params %s:", method, params
- )
- self.show_message(
- MessageType.Error,
- (
- "Caught exception while handling {}, "
- + "see VHDL language server output for details."
- ).format(method),
- )
- response = None
- if tid is None:
- # If this was just a notification, discard it
- return None
- log.debug("Response: %s", response)
- rbody = {
- "jsonrpc": "2.0",
- "id": tid,
- "result": response,
- }
- else:
- # Unknown method.
- log.error("Unknown method %s", method)
- # If this was just a notification, discard it
- if tid is None:
- return None
- # Otherwise create an error.
- rbody = {
- "jsonrpc": "2.0",
- "id": tid,
- "error": {
- "code": JSONErrorCodes.MethodNotFound,
- "message": "unknown method {}".format(method),
- },
- }
- return rbody
-
- def write_output(self, body):
- output = json.dumps(body, separators=(",", ":"))
- self.conn.write("Content-Length: {}\r\n".format(len(output)))
- self.conn.write("\r\n")
- self.conn.write(output)
-
- def notify(self, method, params):
- """Send a notification"""
- body = {
- "jsonrpc": "2.0",
- "method": method,
- "params": params,
- }
- self.write_output(body)
-
- def send_request(self, method, params):
- """Send a request"""
- self._next_id += 1
- body = {
- "jsonrpc": "2.0",
- "id": self._next_id,
- "method": method,
- "params": params,
- }
- self.write_output(body)
-
- def shutdown(self):
- """Prepare to shutdown the server"""
- self.running = False
-
- def show_message(self, typ, message):
- self.notify("window/showMessage", {"type": typ, "message": message})
-
- def configuration(self, items):
- return self.send_request("workspace/configuration", {"items": items})
-
-
-# ----------------------------------------------------------------------
-# Standard defines and object types
-#
-
-
-class JSONErrorCodes(object):
- # Defined by JSON RPC
- ParseError = -32700
- InvalidRequest = -32600
- MethodNotFound = -32601
- InvalidParams = -32602
- InternalError = -32603
- serverErrorStart = -32099
- serverErrorEnd = -32000
- ServerNotInitialized = -32002
- UnknownErrorCode = -32001
-
- # Defined by the protocol.
- RequestCancelled = -32800
- ContentModified = -32801
-
-
-class CompletionKind(object):
- Text = 1
- Method = 2
- Function = 3
- Constructor = 4
- Field = 5
- Variable = 6
- Class = 7
- Interface = 8
- Module = 9
- Property = 10
- Unit = 11
- Value = 12
- Enum = 13
- Keyword = 14
- Snippet = 15
- Color = 16
- File = 17
- Reference = 18
-
-
-class DiagnosticSeverity(object):
- Error = 1
- Warning = 2
- Information = 3
- Hint = 4
-
-
-class TextDocumentSyncKind(object):
- NONE = (0,)
- FULL = 1
- INCREMENTAL = 2
-
-
-class MessageType(object):
- Error = 1
- Warning = 2
- Info = 3
- Log = 4
-
-
-class SymbolKind(object):
- File = 1
- Module = 2
- Namespace = 3
- Package = 4
- Class = 5
- Method = 6
- Property = 7
- Field = 8
- Constructor = 9
- Enum = 10
- Interface = 11
- Function = 12
- Variable = 13
- Constant = 14
- String = 15
- Number = 16
- Boolean = 17
- Array = 18
-
-
-@attr.s
-class HoverInfo(object):
- language = attr.ib()
- value = attr.ib()
-
-
-@attr.s
-class Completion(object):
- label = attr.ib()
- kind = attr.ib()
- detail = attr.ib()
- documentation = attr.ib()
-
-
-@attr.s
-class Position(object):
- line = attr.ib()
- character = attr.ib()
-
-
-@attr.s
-class Range(object):
- start = attr.ib(validator=instance_of(Position))
- end = attr.ib(validator=instance_of(Position))
-
-
-@attr.s
-class Diagnostic(object):
- range = attr.ib(validator=instance_of(Range))
- severity = attr.ib()
- source = attr.ib()
- message = attr.ib()
diff --git a/python/vhdl_langserver/lsptools.py b/python/vhdl_langserver/lsptools.py
deleted file mode 100644
index 648f0a8c0..000000000
--- a/python/vhdl_langserver/lsptools.py
+++ /dev/null
@@ -1,41 +0,0 @@
-import sys
-import argparse
-import json
-from . import lsp
-
-
-def lsp2json():
- "Utility that transforms lsp log file to a JSON list"
- conn = lsp.LSPConn(sys.stdin.buffer, sys.stdout.buffer)
- ls = lsp.LanguageProtocolServer(None, conn)
- res = []
- while True:
- req = ls.read_request()
- if req is None:
- break
- res.append(json.loads(req))
- print(json.dumps(res, indent=2))
-
-
-def json2lsp():
- "Utility that transform a JSON list to an lsp file"
- res = json.load(sys.stdin)
- conn = lsp.LSPConn(sys.stdin.buffer, sys.stdout.buffer)
- ls = lsp.LanguageProtocolServer(None, conn)
- for req in res:
- ls.write_output(req)
-
-
-def main():
- parser = argparse.ArgumentParser()
- subparsers = parser.add_subparsers(help="sub-command help")
- parser_l2j = subparsers.add_parser("lsp2json", help="convert lsp dump to JSON")
- parser_l2j.set_defaults(func=lsp2json)
- parser_j2l = subparsers.add_parser("json2lsp", help="convert JSON to lsp dump")
- parser_j2l.set_defaults(func=json2lsp)
- args = parser.parse_args()
- args.func()
-
-
-if __name__ == "__main__":
- main()
diff --git a/python/vhdl_langserver/main.py b/python/vhdl_langserver/main.py
deleted file mode 100644
index 5fe0e0549..000000000
--- a/python/vhdl_langserver/main.py
+++ /dev/null
@@ -1,130 +0,0 @@
-#!/usr/bin/env python
-from __future__ import absolute_import
-
-import argparse
-import logging
-import sys
-import os
-
-import libghdl
-import libghdl.thin.errorout_console
-
-from . import version
-from . import lsp
-from . import vhdl_ls
-
-logger = logging.getLogger("ghdl-ls")
-
-
-class LSPConnTrace(object):
- """Wrapper class to save in and out packets"""
-
- def __init__(self, basename, conn):
- self.conn = conn
- self.trace_in = open(basename + ".in", "w")
- self.trace_out = open(basename + ".out", "w")
-
- def readline(self):
- res = self.conn.readline()
- self.trace_in.write(res)
- return res
-
- def read(self, size):
- res = self.conn.read(size)
- self.trace_in.write(res)
- self.trace_in.flush()
- return res
-
- def write(self, out):
- self.conn.write(out)
- self.trace_out.write(out)
- self.trace_out.flush()
-
-
-def rotate_log_files(basename, num):
- for i in range(num, 0, -1):
- oldfile = "{}.{}".format(basename, i - 1)
- if os.path.isfile(oldfile):
- os.rename(oldfile, "{}.{}".format(basename, i))
- if os.path.isfile(basename):
- os.rename(basename, "{}.0".format(basename))
-
-
-def main():
- parser = argparse.ArgumentParser(description="VHDL Language Protocol Server")
- parser.add_argument(
- "--version", "-V", action="version", version="%(prog)s " + version.__version__
- )
- parser.add_argument(
- "--verbose", "-v", action="count", default=0, help="Show debug output"
- )
- parser.add_argument(
- "--log-file", help="Redirect logs to the given file instead of stderr"
- )
- parser.add_argument("--trace-file", help="Save rpc data to FILE.in and FILE.out")
- parser.add_argument("--input", "-i", help="Read request from file")
- parser.add_argument(
- "--disp-config",
- action="store_true",
- help="Disp installation configuration and exit",
- )
-
- args = parser.parse_args()
-
- if args.disp_config:
- libghdl.thin.errorout_console.Install_Handler()
- libghdl.disp_config()
- return
-
- # Setup logging
- if args.verbose >= 2:
- loglevel = logging.DEBUG
- elif args.verbose >= 1:
- loglevel = logging.INFO
- else:
- loglevel = logging.ERROR
-
- if args.log_file:
- rotate_log_files(args.log_file, 5)
- logstream = open(args.log_file, "w")
- else:
- logstream = sys.stderr
- logging.basicConfig(
- format="%(asctime)-15s [%(levelname)s] %(message)s",
- stream=logstream,
- level=loglevel,
- )
-
- if args.verbose != 0:
- sys.stderr.write("Args: {}\n".format(sys.argv))
- sys.stderr.write("Current directory: {}\n".format(os.getcwd()))
-
- logger.info("Args: %s", sys.argv)
- logger.info("Current directory is %s", os.getcwd())
-
- # Connection
- instream = sys.stdin.buffer
- if args.input is not None:
- instream = open(args.input, "rb")
-
- conn = lsp.LSPConn(instream, sys.stdout.buffer)
-
- trace_file = args.trace_file
- if trace_file is None:
- trace_file = os.environ.get("GHDL_LS_TRACE")
- if trace_file is not None:
- if args.input is None:
- rotate_log_files(trace_file + ".in", 5)
- rotate_log_files(trace_file + ".out", 5)
- conn = LSPConnTrace(trace_file, conn)
- else:
- logger.info("Traces disabled when -i/--input")
-
- handler = vhdl_ls.VhdlLanguageServer()
-
- try:
- server = lsp.LanguageProtocolServer(handler, conn)
- server.run()
- except Exception:
- logger.exception("Uncaught error")
- sys.exit(1)
diff --git a/python/vhdl_langserver/references.py b/python/vhdl_langserver/references.py
deleted file mode 100644
index f716548eb..000000000
--- a/python/vhdl_langserver/references.py
+++ /dev/null
@@ -1,100 +0,0 @@
-import logging
-import libghdl.thin.vhdl.nodes as nodes
-import libghdl.thin.vhdl.nodes_meta as nodes_meta
-import libghdl.thin.vhdl.pyutils as pyutils
-import libghdl.thin.name_table as name_table
-
-log = logging.getLogger(__name__)
-
-
-def find_def_chain(first, loc):
- n1 = first
- while n1 != nodes.Null_Iir:
- res = find_def(n1, loc)
- if res is not None:
- return res
- n1 = nodes.Get_Chain(n1)
- return None
-
-
-def find_def(n, loc):
- "Return the node at location :param loc:, or None if not under :param n:"
- if n == nodes.Null_Iir:
- return None
- k = nodes.Get_Kind(n)
- if k in [
- nodes.Iir_Kind.Simple_Name,
- nodes.Iir_Kind.Character_Literal,
- nodes.Iir_Kind.Operator_Symbol,
- nodes.Iir_Kind.Selected_Name,
- nodes.Iir_Kind.Attribute_Name,
- nodes.Iir_Kind.Selected_Element,
- ]:
- n_loc = nodes.Get_Location(n)
- if loc >= n_loc:
- ident = nodes.Get_Identifier(n)
- id_len = name_table.Get_Name_Length(ident)
- if loc < n_loc + id_len:
- return n
- if k == nodes.Iir_Kind.Simple_Name:
- return None
- elif k == nodes.Iir_Kind.Design_File:
- return find_def_chain(nodes.Get_First_Design_Unit(n), loc)
- elif k == nodes.Iir_Kind.Design_Unit:
- # if loc > elocations.Get_End_Location(unit):
- # return None
- res = find_def_chain(nodes.Get_Context_Items(n), loc)
- if res is not None:
- return res
- unit = nodes.Get_Library_Unit(n)
- return find_def(unit, loc)
-
- # This is *much* faster than using node_iter!
- for f in pyutils.fields_iter(n):
- typ = nodes_meta.get_field_type(f)
- if typ == nodes_meta.types.Iir:
- attr = nodes_meta.get_field_attribute(f)
- if attr == nodes_meta.Attr.ANone:
- res = find_def(nodes_meta.Get_Iir(n, f), loc)
- if res is not None:
- return res
- elif attr == nodes_meta.Attr.Chain:
- res = find_def_chain(nodes_meta.Get_Iir(n, f), loc)
- if res is not None:
- return res
- elif attr == nodes_meta.Attr.Maybe_Ref:
- if not nodes.Get_Is_Ref(n, f):
- res = find_def(nodes_meta.Get_Iir(n, f), loc)
- if res is not None:
- return res
- elif typ == nodes_meta.types.Iir_List:
- attr = nodes_meta.get_field_attribute(f)
- if attr == nodes_meta.Attr.ANone:
- for n1 in pyutils.list_iter(nodes_meta.Get_Iir_List(n, f)):
- res = find_def(n1, loc)
- if res is not None:
- return res
- elif typ == nodes_meta.types.Iir_Flist:
- attr = nodes_meta.get_field_attribute(f)
- if attr == nodes_meta.Attr.ANone:
- for n1 in pyutils.flist_iter(nodes_meta.Get_Iir_Flist(n, f)):
- res = find_def(n1, loc)
- if res is not None:
- return res
-
- return None
-
-
-def goto_definition(n, loc):
- "Return the declaration (as a node) under :param loc: or None"
- ref = find_def(n, loc)
- log.debug("for loc %u found node %s", loc, ref)
- if ref is None:
- return None
- log.debug(
- "for loc %u id=%s",
- loc,
- name_table.Get_Name_Ptr(nodes.Get_Identifier(ref)).decode("utf-8"),
- )
- ent = nodes.Get_Named_Entity(ref)
- return None if ent == nodes.Null_Iir else ent
diff --git a/python/vhdl_langserver/symbols.py b/python/vhdl_langserver/symbols.py
deleted file mode 100644
index d0bd269de..000000000
--- a/python/vhdl_langserver/symbols.py
+++ /dev/null
@@ -1,177 +0,0 @@
-import libghdl.thin.name_table as name_table
-import libghdl.thin.files_map as files_map
-import libghdl.thin.vhdl.pyutils as pyutils
-import libghdl.thin.vhdl.nodes as nodes
-import libghdl.thin.vhdl.nodes_meta as nodes_meta
-import libghdl.thin.vhdl.elocations as elocations
-
-from . import lsp
-
-SYMBOLS_MAP = {
- nodes.Iir_Kind.Package_Declaration: {
- "kind": lsp.SymbolKind.Package,
- "detail": "(declaration)",
- },
- nodes.Iir_Kind.Package_Body: {"kind": lsp.SymbolKind.Package, "detail": "(body)"},
- nodes.Iir_Kind.Entity_Declaration: {"kind": lsp.SymbolKind.Module},
- nodes.Iir_Kind.Architecture_Body: {"kind": lsp.SymbolKind.Module},
- nodes.Iir_Kind.Configuration_Declaration: {"kind": lsp.SymbolKind.Module},
- nodes.Iir_Kind.Package_Instantiation_Declaration: {"kind": lsp.SymbolKind.Module},
- nodes.Iir_Kind.Component_Declaration: {"kind": lsp.SymbolKind.Module},
- nodes.Iir_Kind.Context_Declaration: {"kind": lsp.SymbolKind.Module},
- nodes.Iir_Kind.Use_Clause: {"kind": None},
- nodes.Iir_Kind.Library_Clause: {"kind": None},
- nodes.Iir_Kind.Procedure_Declaration: {"kind": lsp.SymbolKind.Function},
- nodes.Iir_Kind.Function_Declaration: {"kind": lsp.SymbolKind.Function},
- nodes.Iir_Kind.Interface_Procedure_Declaration: {"kind": lsp.SymbolKind.Function},
- nodes.Iir_Kind.Interface_Function_Declaration: {"kind": lsp.SymbolKind.Function},
- nodes.Iir_Kind.Procedure_Body: {
- "kind": lsp.SymbolKind.Function,
- "detail": "(body)",
- },
- nodes.Iir_Kind.Function_Body: {"kind": lsp.SymbolKind.Function, "detail": "(body)"},
- nodes.Iir_Kind.Type_Declaration: {"kind": lsp.SymbolKind.Constructor},
- nodes.Iir_Kind.Subtype_Declaration: {"kind": lsp.SymbolKind.Constructor},
- nodes.Iir_Kind.Attribute_Declaration: {"kind": lsp.SymbolKind.Property},
- nodes.Iir_Kind.Attribute_Specification: {"kind": None},
- nodes.Iir_Kind.Disconnection_Specification: {"kind": None},
- nodes.Iir_Kind.Anonymous_Type_Declaration: {"kind": None},
- nodes.Iir_Kind.Variable_Declaration: {"kind": lsp.SymbolKind.Variable},
- nodes.Iir_Kind.Constant_Declaration: {"kind": lsp.SymbolKind.Constant},
- nodes.Iir_Kind.Signal_Declaration: {"kind": lsp.SymbolKind.Variable},
- nodes.Iir_Kind.Signal_Attribute_Declaration: {"kind": None},
- nodes.Iir_Kind.File_Declaration: {"kind": lsp.SymbolKind.File},
- nodes.Iir_Kind.Interface_Variable_Declaration: {"kind": lsp.SymbolKind.Variable},
- nodes.Iir_Kind.Interface_Constant_Declaration: {"kind": lsp.SymbolKind.Constant},
- nodes.Iir_Kind.Interface_Signal_Declaration: {"kind": lsp.SymbolKind.Variable},
- nodes.Iir_Kind.Interface_File_Declaration: {"kind": lsp.SymbolKind.Variable},
- nodes.Iir_Kind.File_Declaration: {"kind": lsp.SymbolKind.File},
- nodes.Iir_Kind.Object_Alias_Declaration: {"kind": lsp.SymbolKind.Variable},
- nodes.Iir_Kind.Non_Object_Alias_Declaration: {"kind": lsp.SymbolKind.Variable},
- nodes.Iir_Kind.Protected_Type_Body: {"kind": lsp.SymbolKind.Class},
- nodes.Iir_Kind.Group_Template_Declaration: {"kind": lsp.SymbolKind.Variable},
- nodes.Iir_Kind.Group_Declaration: {"kind": lsp.SymbolKind.Variable},
- nodes.Iir_Kind.Concurrent_Simple_Signal_Assignment: {"kind": None},
- nodes.Iir_Kind.Concurrent_Conditional_Signal_Assignment: {"kind": None},
- nodes.Iir_Kind.Concurrent_Selected_Signal_Assignment: {"kind": None},
- nodes.Iir_Kind.Concurrent_Procedure_Call_Statement: {"kind": None},
- nodes.Iir_Kind.Concurrent_Assertion_Statement: {"kind": None},
- nodes.Iir_Kind.Component_Instantiation_Statement: {"kind": lsp.SymbolKind.Method},
- nodes.Iir_Kind.Block_Statement: {"kind": lsp.SymbolKind.Method},
- nodes.Iir_Kind.If_Generate_Statement: {"kind": lsp.SymbolKind.Method},
- nodes.Iir_Kind.For_Generate_Statement: {"kind": lsp.SymbolKind.Method},
- nodes.Iir_Kind.Case_Generate_Statement: {"kind": lsp.SymbolKind.Method},
- nodes.Iir_Kind.Sensitized_Process_Statement: {"kind": lsp.SymbolKind.Method},
- nodes.Iir_Kind.Process_Statement: {"kind": lsp.SymbolKind.Method},
- nodes.Iir_Kind.Psl_Assert_Directive: {"kind": lsp.SymbolKind.Method},
- nodes.Iir_Kind.Psl_Assume_Directive: {"kind": lsp.SymbolKind.Method},
- nodes.Iir_Kind.Psl_Cover_Directive: {"kind": lsp.SymbolKind.Method},
- nodes.Iir_Kind.Psl_Restrict_Directive: {"kind": lsp.SymbolKind.Method},
- nodes.Iir_Kind.Psl_Endpoint_Declaration: {"kind": lsp.SymbolKind.Variable},
- nodes.Iir_Kind.Psl_Declaration: {"kind": lsp.SymbolKind.Variable},
- nodes.Iir_Kind.Psl_Assert_Directive: {"kind": lsp.SymbolKind.Method},
- nodes.Iir_Kind.Configuration_Specification: {"kind": None},
-}
-
-
-def location_to_position(fe, loc):
- assert loc != files_map.No_Location
- line = files_map.Location_File_To_Line(loc, fe)
- off = files_map.Location_File_Line_To_Offset(loc, fe, line)
- return {"line": line - 1, "character": off}
-
-
-def get_symbols_chain(fe, n):
- res = [get_symbols(fe, el) for el in pyutils.chain_iter(n)]
- return [e for e in res if e is not None]
-
-
-def get_symbols(fe, n):
- if n == nodes.Null_Iir:
- return None
- k = nodes.Get_Kind(n)
- if k == nodes.Iir_Kind.Design_Unit:
- return get_symbols(fe, nodes.Get_Library_Unit(n))
- m = SYMBOLS_MAP.get(k, None)
- if m is None:
- raise AssertionError("get_symbol: unhandled {}".format(pyutils.kind_image(k)))
- kind = m["kind"]
- if kind is None:
- return None
- if k in [nodes.Iir_Kind.Procedure_Declaration, nodes.Iir_Kind.Function_Declaration]:
- # Discard implicit declarations.
- if nodes.Get_Implicit_Definition(n) < nodes.Iir_Predefined.PNone:
- return None
- if nodes.Get_Has_Body(n):
- # Use the body instead.
- # FIXME: but get interface from the spec!
- return None
- res = {"kind": kind}
- detail = m.get("detail")
- if detail is not None:
- res["detail"] = detail
- # Get the name
- if k in [nodes.Iir_Kind.Function_Body, nodes.Iir_Kind.Procedure_Body]:
- nid = nodes.Get_Identifier(nodes.Get_Subprogram_Specification(n))
- else:
- nid = nodes.Get_Identifier(n)
- if nid == name_table.Null_Identifier:
- name = None
- else:
- name = pyutils.name_image(nid)
- # Get the range. Use elocations when possible.
- if k in (
- nodes.Iir_Kind.Architecture_Body,
- nodes.Iir_Kind.Entity_Declaration,
- nodes.Iir_Kind.Package_Declaration,
- nodes.Iir_Kind.Package_Body,
- nodes.Iir_Kind.Component_Declaration,
- nodes.Iir_Kind.Process_Statement,
- nodes.Iir_Kind.Sensitized_Process_Statement,
- nodes.Iir_Kind.If_Generate_Statement,
- nodes.Iir_Kind.For_Generate_Statement,
- ):
- start_loc = elocations.Get_Start_Location(n)
- end_loc = elocations.Get_End_Location(n)
- if end_loc == files_map.No_Location:
- # Can happen in case of parse error
- end_loc = start_loc
- else:
- start_loc = nodes.Get_Location(n)
- end_loc = start_loc + name_table.Get_Name_Length(nid)
- res["range"] = {
- "start": location_to_position(fe, start_loc),
- "end": location_to_position(fe, end_loc),
- }
-
- # Gather children.
- # FIXME: should we use a list of fields to inspect ?
- children = []
- # if nodes_meta.Has_Generic_Chain(k):
- # children.extend(get_symbols_chain(fe, nodes.Get_Generic_Chain(n)))
- # if nodes_meta.Has_Port_Chain(k):
- # children.extend(get_symbols_chain(fe, nodes.Get_Port_Chain(n)))
- # if nodes_meta.Has_Interface_Declaration_Chain(k):
- # children.extend(get_symbols_chain(fe, nodes.Get_Interface_Declaration_Chain(n)))
- if k in (nodes.Iir_Kind.Package_Declaration, nodes.Iir_Kind.Package_Body):
- children.extend(get_symbols_chain(fe, nodes.Get_Declaration_Chain(n)))
- if nodes_meta.Has_Concurrent_Statement_Chain(k):
- children.extend(get_symbols_chain(fe, nodes.Get_Concurrent_Statement_Chain(n)))
- if nodes_meta.Has_Generate_Statement_Body(k):
- children.extend(
- get_symbols_chain(
- fe,
- nodes.Get_Concurrent_Statement_Chain(
- nodes.Get_Generate_Statement_Body(n)
- ),
- )
- )
-
- if children:
- res["children"] = children
- else:
- # Discard anonymous symbols without children.
- if name is None:
- return None
- res["name"] = name if name is not None else "<anon>"
- return res
diff --git a/python/vhdl_langserver/version.py b/python/vhdl_langserver/version.py
deleted file mode 100644
index 4b0d124d5..000000000
--- a/python/vhdl_langserver/version.py
+++ /dev/null
@@ -1 +0,0 @@
-__version__ = "0.1dev"
diff --git a/python/vhdl_langserver/vhdl_ls.py b/python/vhdl_langserver/vhdl_ls.py
deleted file mode 100644
index 61c4aed23..000000000
--- a/python/vhdl_langserver/vhdl_ls.py
+++ /dev/null
@@ -1,150 +0,0 @@
-import logging
-
-from . import lsp
-from .workspace import Workspace
-
-log = logging.getLogger(__name__)
-
-
-class VhdlLanguageServer(object):
- def __init__(self):
- self.workspace = None
- self.lsp = None
- self._shutdown = False
- self.dispatcher = {
- "initialize": self.initialize,
- "initialized": self.initialized,
- "shutdown": self.shutdown,
- "$/setTraceNotification": self.setTraceNotification,
- "textDocument/didOpen": self.textDocument_didOpen,
- "textDocument/didChange": self.textDocument_didChange,
- "textDocument/didClose": self.textDocument_didClose,
- "textDocument/didSave": self.textDocument_didSave,
- # 'textDocument/hover': self.hover,
- "textDocument/definition": self.textDocument_definition,
- "textDocument/documentSymbol": self.textDocument_documentSymbol,
- # 'textDocument/completion': self.completion,
- "textDocument/rangeFormatting": self.textDocument_rangeFormatting,
- "workspace/xShowAllFiles": self.workspace_xShowAllFiles,
- "workspace/xGetAllEntities": self.workspace_xGetAllEntities,
- "workspace/xGetEntityInterface": self.workspace_xGetEntityInterface,
- }
-
- def set_lsp(self, server):
- self.lsp = server
-
- def shutdown(self):
- self.lsp.shutdown()
-
- def setTraceNotification(self, value):
- pass
-
- def capabilities(self):
- server_capabilities = {
- "textDocumentSync": {
- "openClose": True,
- "change": lsp.TextDocumentSyncKind.INCREMENTAL,
- "save": {"includeText": True},
- },
- "hoverProvider": False,
- # 'completionProvider': False,
- # 'signatureHelpProvider': {
- # 'triggerCharacters': ['(', ',']
- # },
- "definitionProvider": True,
- "referencesProvider": False,
- "documentHighlightProvider": False,
- "documentSymbolProvider": True,
- "codeActionProvider": False,
- "documentFormattingProvider": False,
- "documentRangeFormattingProvider": True,
- "renameProvider": False,
- }
- return server_capabilities
-
- def initialize(
- self,
- processId,
- rootPath,
- capabilities,
- rootUri=None,
- initializationOptions=None,
- **_
- ):
- log.debug(
- "Language server initialized with %s %s %s %s",
- processId,
- rootUri,
- rootPath,
- initializationOptions,
- )
- if rootUri is None:
- rootUri = lsp.path_to_uri(rootPath) if rootPath is not None else ""
- self.workspace = Workspace(rootUri, self.lsp)
-
- # Get our capabilities
- return {"capabilities": self.capabilities()}
-
- def initialized(self):
- # Event when the client is fully initialized.
- return None
-
- def textDocument_didOpen(self, textDocument=None):
- doc_uri = textDocument["uri"]
- self.workspace.put_document(
- doc_uri, textDocument["text"], version=textDocument.get("version")
- )
- self.lint(doc_uri)
-
- def textDocument_didChange(self, textDocument=None, contentChanges=None, **_kwargs):
- doc_uri = textDocument["uri"]
- new_version = textDocument.get("version")
- self.workspace.apply_changes(doc_uri, contentChanges, new_version)
-
- def lint(self, doc_uri):
- self.workspace.lint(doc_uri)
-
- def textDocument_didClose(self, textDocument=None, **_kwargs):
- self.workspace.rm_document(textDocument["uri"])
-
- def textDocument_didSave(self, textDocument=None, text=None, **_kwargs):
- if text is not None:
- # Sanity check: check we have the same content for the document.
- self.workspace.check_document(textDocument["uri"], text)
- else:
- log.debug("did save - no text")
- self.lint(textDocument["uri"])
-
- def textDocument_definition(self, textDocument=None, position=None):
- return self.workspace.goto_definition(textDocument["uri"], position)
-
- def textDocument_documentSymbol(self, textDocument=None):
- doc = self.workspace.get_or_create_document(textDocument["uri"])
- return doc.document_symbols()
-
- def textDocument_rangeFormatting(self, textDocument=None, range=None, options=None):
- doc_uri = textDocument["uri"]
- doc = self.workspace.get_document(doc_uri)
- assert doc is not None, "Try to format a non-loaded document"
- res = doc.format_range(range)
- if res is not None:
- self.lint(doc_uri)
- return res
-
- def m_workspace__did_change_configuration(self, _settings=None):
- for doc_uri in self.workspace.documents:
- self.lint(doc_uri)
-
- def m_workspace__did_change_watched_files(self, **_kwargs):
- # Externally changed files may result in changed diagnostics
- for doc_uri in self.workspace.documents:
- self.lint(doc_uri)
-
- def workspace_xShowAllFiles(self):
- return self.workspace.x_show_all_files()
-
- def workspace_xGetAllEntities(self):
- return self.workspace.x_get_all_entities()
-
- def workspace_xGetEntityInterface(self, library, name):
- return self.workspace.x_get_entity_interface(library, name)
diff --git a/python/vhdl_langserver/workspace.py b/python/vhdl_langserver/workspace.py
deleted file mode 100644
index 9d61225ee..000000000
--- a/python/vhdl_langserver/workspace.py
+++ /dev/null
@@ -1,499 +0,0 @@
-import logging
-import os
-import json
-from ctypes import byref
-import libghdl
-import libghdl.thin.errorout_memory as errorout_memory
-import libghdl.thin.flags
-import libghdl.thin.errorout as errorout
-import libghdl.thin.files_map as files_map
-import libghdl.thin.libraries as libraries
-import libghdl.thin.name_table as name_table
-import libghdl.thin.vhdl.nodes as nodes
-import libghdl.thin.vhdl.lists as lists
-import libghdl.thin.vhdl.std_package as std_package
-import libghdl.thin.vhdl.parse
-import libghdl.thin.vhdl.pyutils as pyutils
-import libghdl.thin.vhdl.sem_lib as sem_lib
-
-from . import lsp
-from . import document, symbols
-
-log = logging.getLogger(__name__)
-
-
-class ProjectError(Exception):
- "Exception raised in case of unrecoverable error in the project file."
-
- def __init__(self, msg):
- super().__init__()
- self.msg = msg
-
-
-class Workspace(object):
- def __init__(self, root_uri, server):
- self._root_uri = root_uri
- self._server = server
- self._root_path = lsp.path_from_uri(self._root_uri)
- self._docs = {} # uri -> doc
- self._fe_map = {} # fe -> doc
- self._prj = {}
- self._last_linted_doc = None
- errorout_memory.Install_Handler()
- libghdl.thin.flags.Flag_Elocations.value = True
- # thin.Flags.Verbose.value = True
- # We do analysis even in case of errors.
- libghdl.thin.vhdl.parse.Flag_Parse_Parenthesis.value = True
- # Force analysis to get more feedback + navigation even in case
- # of errors.
- libghdl.thin.flags.Flag_Force_Analysis.value = True
- # Do not consider analysis order issues.
- libghdl.thin.flags.Flag_Elaborate_With_Outdated.value = True
- libghdl.thin.errorout.Enable_Warning(errorout.Msgid.Warnid_Unused, True)
- self.read_project()
- self.set_options_from_project()
- libghdl.analyze_init()
- self._diags_set = set() # Documents with at least one diagnostic.
- self.read_files_from_project()
- self.gather_diagnostics(None)
-
- @property
- def documents(self):
- return self._docs
-
- @property
- def root_path(self):
- return self._root_path
-
- @property
- def root_uri(self):
- return self._root_uri
-
- def _create_document(self, doc_uri, sfe, version=None):
- """Create a document and put it in this workspace."""
- doc = document.Document(doc_uri, sfe, version)
- self._docs[doc_uri] = doc
- self._fe_map[sfe] = doc
- return doc
-
- def create_document_from_sfe(self, sfe, abspath):
- # A filename has been given without a corresponding document.
- # Create the document.
- # Common case: an error message was reported in a non-open document.
- # Create a document so that it could be reported to the client.
- doc_uri = lsp.path_to_uri(os.path.normpath(abspath))
- return self._create_document(doc_uri, sfe)
-
- def create_document_from_uri(self, doc_uri, source=None, version=None):
- # A document is referenced by an uri but not known. Load it.
- # We assume the path is correct.
- path = lsp.path_from_uri(doc_uri)
- if source is None:
- source = open(path).read()
- sfe = document.Document.load(
- source, os.path.dirname(path), os.path.basename(path)
- )
- return self._create_document(doc_uri, sfe)
-
- def get_or_create_document(self, doc_uri):
- res = self.get_document(doc_uri)
- if res is not None:
- return res
- res = self.create_document_from_uri(doc_uri)
- res.parse_document()
- return res
-
- def get_document(self, doc_uri):
- """Get a document from :param doc_uri: Note that the document may not exist,
- and this function may return None."""
- return self._docs.get(doc_uri)
-
- def put_document(self, doc_uri, source, version=None):
- doc = self.get_document(doc_uri)
- if doc is None:
- doc = self.create_document_from_uri(doc_uri, source=source, version=version)
- else:
- # The document may already be present (loaded from a project)
- # In that case, overwrite it as the client may have a more
- # recent version.
- doc.reload(source)
- return doc
-
- def sfe_to_document(self, sfe):
- """Get the document correspond to :param sfe: source file.
- Can create the document if needed."""
- assert sfe != 0
- doc = self._fe_map.get(sfe, None)
- if doc is None:
- # Could be a document from outside...
- filename = pyutils.name_image(files_map.Get_File_Name(sfe))
- if not os.path.isabs(filename):
- dirname = pyutils.name_image(files_map.Get_Directory_Name(sfe))
- filename = os.path.join(dirname, filename)
- doc = self.create_document_from_sfe(sfe, filename)
- return doc
-
- def add_vhdl_file(self, name):
- log.info("loading %s", name)
- if os.path.isabs(name):
- absname = name
- else:
- absname = os.path.join(self._root_path, name)
- # Create a document for this file.
- try:
- fd = open(absname)
- sfe = document.Document.load(fd.read(), self._root_path, name)
- fd.close()
- except OSError as err:
- self._server.show_message(
- lsp.MessageType.Error, "cannot load {}: {}".format(name, err.strerror)
- )
- return
- doc = self.create_document_from_sfe(sfe, absname)
- doc.parse_document()
-
- def read_project(self):
- prj_file = os.path.join(self.root_path, "hdl-prj.json")
- if not os.path.exists(prj_file):
- log.info("project file %s does not exist", prj_file)
- return
- try:
- f = open(prj_file)
- except OSError as err:
- self._server.show_message(
- lsp.MessageType.Error,
- "cannot open project file {}: {}".format(prj_file, err.strerror),
- )
- return
- log.info("reading project file %s", prj_file)
- try:
- self._prj = json.load(f)
- except json.decoder.JSONDecodeError as e:
- log.info("error in project file")
- self._server.show_message(
- lsp.MessageType.Error,
- "json error in project file {}:{}:{}".format(
- prj_file, e.lineno, e.colno
- ),
- )
- f.close()
-
- def set_options_from_project(self):
- try:
- if self._prj is None:
- return
- if not isinstance(self._prj, dict):
- raise ProjectError("project file is not a dictionnary")
- opts = self._prj.get("options", None)
- if opts is None:
- return
- if not isinstance(opts, dict):
- raise ProjectError("'options' is not a dictionnary")
- ghdl_opts = opts.get("ghdl_analysis", None)
- if ghdl_opts is None:
- return
- log.info("Using options: %s", ghdl_opts)
- for opt in ghdl_opts:
- if not libghdl.set_option(opt.encode("utf-8")):
- self._server.show_message(
- lsp.MessageType.Error, "error with option: {}".format(opt)
- )
- except ProjectError as e:
- self._server.show_message(
- lsp.MessageType.Error, "error in project file: {}".format(e.msg)
- )
-
- def read_files_from_project(self):
- try:
- files = self._prj.get("files", [])
- if not isinstance(files, list):
- raise ProjectError("'files' is not a list")
- for f in files:
- if not isinstance(f, dict):
- raise ProjectError("an element of 'files' is not a dict")
- name = f.get("file")
- if not isinstance(name, str):
- raise ProjectError("a 'file' is not a string")
- lang = f.get("language", "vhdl")
- if lang == "vhdl":
- self.add_vhdl_file(name)
- except ProjectError as e:
- self._server.show_message(
- lsp.MessageType.Error, "error in project file: {}".format(e.msg)
- )
-
- def get_configuration(self):
- self._server.configuration(
- [{"scopeUri": "", "section": "vhdl.maxNumberOfProblems"}]
- )
-
- def gather_diagnostics(self, doc):
- # Gather messages (per file)
- nbr_msgs = errorout_memory.Get_Nbr_Messages()
- diags = {}
- diag = {}
- for i in range(nbr_msgs):
- hdr = errorout_memory.Get_Error_Record(i + 1)
- msg = errorout_memory.Get_Error_Message(i + 1).decode("utf-8")
- if hdr.file == 0:
- # Possible for error limit reached.
- continue
- err_range = {
- "start": {"line": hdr.line - 1, "character": hdr.offset},
- "end": {"line": hdr.line - 1, "character": hdr.offset + hdr.length},
- }
- if hdr.group <= errorout_memory.Msg_Main:
- if hdr.id <= errorout.Msgid.Msgid_Note:
- severity = lsp.DiagnosticSeverity.Information
- elif hdr.id <= errorout.Msgid.Msgid_Warning:
- severity = lsp.DiagnosticSeverity.Warning
- else:
- severity = lsp.DiagnosticSeverity.Error
- diag = {
- "source": "ghdl",
- "range": err_range,
- "message": msg,
- "severity": severity,
- }
- if hdr.group == errorout_memory.Msg_Main:
- diag["relatedInformation"] = []
- fdiag = diags.get(hdr.file, None)
- if fdiag is None:
- diags[hdr.file] = [diag]
- else:
- fdiag.append(diag)
- else:
- assert diag
- if True:
- doc = self.sfe_to_document(hdr.file)
- diag["relatedInformation"].append(
- {
- "location": {"uri": doc.uri, "range": err_range},
- "message": msg,
- }
- )
- errorout_memory.Clear_Errors()
- # Publish diagnostics
- for sfe, diag in diags.items():
- doc = self.sfe_to_document(sfe)
- self.publish_diagnostics(doc.uri, diag)
- if doc is not None and doc._fe not in diags:
- # Clear previous diagnostics for the doc.
- self.publish_diagnostics(doc.uri, [])
-
- def obsolete_dependent_units(self, unit, antideps):
- """Obsolete units that depends of :param unit:"""
- udeps = antideps.get(unit, None)
- if udeps is None:
- # There are no units.
- return
- # Avoid infinite recursion
- antideps[unit] = None
- for un in udeps:
- log.debug(
- "obsolete %d %s", un, pyutils.name_image(nodes.Get_Identifier(un))
- )
- # Recurse
- self.obsolete_dependent_units(un, antideps)
- if nodes.Set_Date_State(un) == nodes.Date_State.Disk:
- # Already obsolete!
- continue
- # FIXME: just de-analyze ?
- nodes.Set_Date_State(un, nodes.Date_State.Disk)
- sem_lib.Free_Dependence_List(un)
- loc = nodes.Get_Location(un)
- fil = files_map.Location_To_File(loc)
- pos = files_map.Location_File_To_Pos(loc, fil)
- line = files_map.Location_File_To_Line(loc, fil)
- col = files_map.Location_File_Line_To_Offset(loc, fil, line)
- nodes.Set_Design_Unit_Source_Pos(un, pos)
- nodes.Set_Design_Unit_Source_Line(un, line)
- nodes.Set_Design_Unit_Source_Col(un, col)
-
- def obsolete_doc(self, doc):
- if doc._tree == nodes.Null_Iir:
- return
- # Free old tree
- assert nodes.Get_Kind(doc._tree) == nodes.Iir_Kind.Design_File
- if self._last_linted_doc == doc:
- antideps = None
- else:
- antideps = self.compute_anti_dependences()
- unit = nodes.Get_First_Design_Unit(doc._tree)
- while unit != nodes.Null_Iir:
- if antideps is not None:
- self.obsolete_dependent_units(unit, antideps)
- # FIXME: free unit; it is not referenced.
- unit = nodes.Get_Chain(unit)
- libraries.Purge_Design_File(doc._tree)
- doc._tree = nodes.Null_Iir
-
- def lint(self, doc_uri):
- doc = self.get_document(doc_uri)
- self.obsolete_doc(doc)
- doc.compute_diags()
- self.gather_diagnostics(doc)
-
- def apply_changes(self, doc_uri, contentChanges, new_version):
- doc = self.get_document(doc_uri)
- assert doc is not None, "try to modify a non-loaded document"
- self.obsolete_doc(doc)
- prev_sfe = doc._fe
- for change in contentChanges:
- doc.apply_change(change)
- if doc._fe != prev_sfe:
- del self._fe_map[prev_sfe]
- self._fe_map[doc._fe] = doc
- # Like lint
- doc.compute_diags()
- self.gather_diagnostics(doc)
-
- def check_document(self, doc_uri, source):
- self._docs[doc_uri].check_document(source)
-
- def rm_document(self, doc_uri):
- pass
-
- def apply_edit(self, edit):
- return self._server.request("workspace/applyEdit", {"edit": edit})
-
- def publish_diagnostics(self, doc_uri, diagnostics):
- self._server.notify(
- "textDocument/publishDiagnostics",
- params={"uri": doc_uri, "diagnostics": diagnostics},
- )
-
- def show_message(self, message, msg_type=lsp.MessageType.Info):
- self._server.notify(
- "window/showMessage", params={"type": msg_type, "message": message}
- )
-
- def declaration_to_location(self, decl):
- "Convert declaration :param decl: to an LSP Location"
- decl_loc = nodes.Get_Location(decl)
- if decl_loc == std_package.Std_Location.value:
- # There is no real file for the std.standard package.
- return None
- if decl_loc == libraries.Library_Location.value:
- # Libraries declaration are virtual.
- return None
- fe = files_map.Location_To_File(decl_loc)
- doc = self.sfe_to_document(fe)
- res = {"uri": doc.uri}
- nid = nodes.Get_Identifier(decl)
- res["range"] = {
- "start": symbols.location_to_position(fe, decl_loc),
- "end": symbols.location_to_position(
- fe, decl_loc + name_table.Get_Name_Length(nid)
- ),
- }
- return res
-
- def goto_definition(self, doc_uri, position):
- decl = self._docs[doc_uri].goto_definition(position)
- if decl is None:
- return None
- decl_loc = self.declaration_to_location(decl)
- if decl_loc is None:
- return None
- res = [decl_loc]
- if nodes.Get_Kind(decl) == nodes.Iir_Kind.Component_Declaration:
- ent = libraries.Find_Entity_For_Component(nodes.Get_Identifier(decl))
- if ent != nodes.Null_Iir:
- res.append(self.declaration_to_location(nodes.Get_Library_Unit(ent)))
- return res
-
- def x_show_all_files(self):
- res = []
- for fe in range(1, files_map.Get_Last_Source_File_Entry() + 1):
- doc = self._fe_map.get(fe, None)
- res.append(
- {
- "fe": fe,
- "uri": doc.uri if doc is not None else None,
- "name": pyutils.name_image(files_map.Get_File_Name(fe)),
- "dir": pyutils.name_image(files_map.Get_Directory_Name(fe)),
- }
- )
- return res
-
- def x_get_all_entities(self):
- res = []
- lib = libraries.Get_Libraries_Chain()
- while lib != nodes.Null_Iir:
- files = nodes.Get_Design_File_Chain(lib)
- ents = []
- while files != nodes.Null_Iir:
- units = nodes.Get_First_Design_Unit(files)
- while units != nodes.Null_Iir:
- unitlib = nodes.Get_Library_Unit(units)
- if nodes.Get_Kind(unitlib) == nodes.Iir_Kind.Entity_Declaration:
- ents.append(unitlib)
- units = nodes.Get_Chain(units)
- files = nodes.Get_Chain(files)
- ents = [pyutils.name_image(nodes.Get_Identifier(e)) for e in ents]
- lib_name = pyutils.name_image(nodes.Get_Identifier(lib))
- res.extend([{"name": n, "library": lib_name} for n in ents])
- lib = nodes.Get_Chain(lib)
- return res
-
- def x_get_entity_interface(self, library, name):
- def create_interfaces(inters):
- res = []
- while inters != nodes.Null_Iir:
- res.append(
- {
- "name": name_table.Get_Name_Ptr(
- nodes.Get_Identifier(inters)
- ).decode("latin-1")
- }
- )
- inters = nodes.Get_Chain(inters)
- return res
-
- # Find library
- lib_id = name_table.Get_Identifier(library.encode("utf-8"))
- lib = libraries.Get_Library_No_Create(lib_id)
- if lib == name_table.Null_Identifier:
- return None
- # Find entity
- ent_id = name_table.Get_Identifier(name.encode("utf-8"))
- unit = libraries.Find_Primary_Unit(lib, ent_id)
- if unit == nodes.Null_Iir:
- return None
- ent = nodes.Get_Library_Unit(unit)
- return {
- "library": library,
- "entity": name,
- "generics": create_interfaces(nodes.Get_Generic_Chain(ent)),
- "ports": create_interfaces(nodes.Get_Port_Chain(ent)),
- }
-
- def compute_anti_dependences(self):
- """Return a dictionnary of anti dependencies for design unit"""
- res = {}
- lib = libraries.Get_Libraries_Chain()
- while lib != nodes.Null_Iir:
- files = nodes.Get_Design_File_Chain(lib)
- while files != nodes.Null_Iir:
- units = nodes.Get_First_Design_Unit(files)
- while units != nodes.Null_Iir:
- if nodes.Get_Date_State(units) == nodes.Date_State.Analyze:
- # The unit has been analyzed, so the dependencies are know.
- deps = nodes.Get_Dependence_List(units)
- assert deps != nodes.Null_Iir_List
- deps_it = lists.Iterate(deps)
- while lists.Is_Valid(byref(deps_it)):
- el = lists.Get_Element(byref(deps_it))
- if nodes.Get_Kind(el) == nodes.Iir_Kind.Design_Unit:
- if res.get(el, None):
- res[el].append(units)
- else:
- res[el] = [units]
- else:
- assert False
- lists.Next(byref(deps_it))
- units = nodes.Get_Chain(units)
- files = nodes.Get_Chain(files)
- lib = nodes.Get_Chain(lib)
- return res
diff --git a/python/xtools/pnodes.py b/python/xtools/pnodes.py
deleted file mode 100755
index 793c1c712..000000000
--- a/python/xtools/pnodes.py
+++ /dev/null
@@ -1,988 +0,0 @@
-#!/usr/bin/env python
-
-import re
-import sys
-import argparse
-
-field_file = "nodes.ads"
-kind_file = "iirs.ads"
-node_file = "iirs.ads"
-template_file = "iirs.adb.in"
-meta_base_file = "nodes_meta"
-prefix_name = "Iir_Kind_"
-prefix_range_name = "Iir_Kinds_"
-type_name = "Iir_Kind"
-node_type = "Iir"
-conversions = ["uc", "pos", "grp"]
-
-
-class FuncDesc:
- def __init__(self, name, fields, conv, acc, pname, ptype, rname, rtype):
- self.name = name
- self.fields = fields # List of physical fields used
- self.conv = conv
- self.acc = acc # access: Chain, Chain_Next, Ref, Of_Ref, Maybe_Ref,
- # Forward_Ref, Maybe_Forward_Ref
- self.pname = pname # Parameter mame
- self.ptype = ptype # Parameter type
- self.rname = rname # value name (for procedure)
- self.rtype = rtype # value type
-
-
-class NodeDesc:
- def __init__(self, name, format, fields, attrs):
- self.name = name
- self.format = format
- self.fields = fields # {field: FuncDesc} dict, defined for all fields
- self.attrs = attrs # A {attr: FuncDesc} dict
- self.order = [] # List of fields name, in order of appearance.
-
-
-class line:
- def __init__(self, string, no):
- self.l = string
- self.n = no
-
-
-class EndOfFile(Exception):
- def __init__(self, filename):
- self.filename = filename
-
- def __str__(self):
- return "end of file " + self.filename
-
-
-class linereader:
- def __init__(self, filename):
- self.filename = filename
- self.f = open(filename)
- self.lineno = 0
- self.l = ""
-
- def get(self):
- self.l = self.f.readline()
- if not self.l:
- raise EndOfFile(self.filename)
- self.lineno = self.lineno + 1
- return self.l
-
-
-class ParseError(Exception):
- def __init__(self, lr, msg):
- self.lr = lr
- self.msg = msg
-
- def __str__(self):
- return "Error: " + self.msg
- return (
- "Parse error at " + self.lr.filname + ":" + self.lr.lineno + ": " + self.msg
- )
-
-
-# Return fields description.
-# This is a dictionary. The keys represent the possible format of a node.
-# The values are dictionnaries representing fields. Keys are fields name, and
-# values are fields type.
-def read_fields(file):
- fields = {}
- formats = []
- lr = linereader(file)
-
- # Search for 'type Format_Type is'
- while lr.get() != " type Format_Type is\n":
- pass
-
- # Skip '('
- if lr.get() != " (\n":
- raise "no open parenthesis after Format_Type"
-
- # Read formats
- l = lr.get()
- pat_field_name = re.compile(" Format_(\w+),?\n")
- while l != " );\n":
- m = pat_field_name.match(l)
- if m is None:
- print l
- raise "bad literal within Format_Type"
- name = m.group(1)
- formats.append(name)
- fields[name] = {}
- l = lr.get()
-
- # Read fields
- l = lr.get()
- pat_fields = re.compile(" -- Fields of Format_(\w+):\n")
- pat_field_desc = re.compile(" -- (\w+) : (\w+).*\n")
- format_name = ""
- common_desc = {}
-
- # Read until common fields.
- while l != " -- Common fields are:\n":
- l = lr.get()
- format_name = "Common"
- nbr_formats = 0
-
- while True:
- # 1) Read field description
- l = lr.get()
- desc = common_desc.copy()
- while True:
- m = pat_field_desc.match(l)
- if m is None:
- break
- desc[m.group(1)] = m.group(2)
- l = lr.get()
- # print 'For: ' + format_name + ': ' + m.group(1)
-
- # 2) Disp
- if format_name == "Common":
- common_desc = desc
- else:
- fields[format_name] = desc
-
- # 3) Read next format
- if l == "\n":
- if nbr_formats == len(fields):
- break
- else:
- l = lr.get()
-
- # One for a format
- m = pat_fields.match(l)
- if m is not None:
- format_name = m.group(1)
- if format_name not in fields:
- raise ParseError(lr, "Format " + format_name + " is unknown")
- nbr_formats = nbr_formats + 1
- else:
- raise ParseError(lr, "unhandled format line")
-
- return (formats, fields)
-
-
-# Read kinds and kinds ranges.
-def read_kinds(filename):
- lr = linereader(filename)
- kinds = []
- # Search for 'type Iir_Kind is'
- while lr.get() != " type " + type_name + " is\n":
- pass
- # Skip '('
- if lr.get() != " (\n":
- raise ParseError(lr, 'no open parenthesis after "type ' + type_name + '"')
-
- # Read literals
- pat_node = re.compile(" " + prefix_name + "(\w+),?( +-- .*)?\n")
- pat_comment = re.compile("( +-- .*)?\n")
- while True:
- l = lr.get()
- if l == " );\n":
- break
- m = pat_node.match(l)
- if m:
- kinds.append(m.group(1))
- continue
- m = pat_comment.match(l)
- if not m:
- raise ParseError(lr, "Unknown line within kind declaration")
-
- # Check subtypes
- pat_subtype = re.compile(" subtype " + r"(\w+) is " + type_name + " range\n")
- pat_first = re.compile(" " + prefix_name + r"(\w+) ..\n")
- pat_last = re.compile(" " + prefix_name + r"(\w+);\n")
- pat_middle = re.compile(" --" + prefix_name + r"(\w+)\n")
- kinds_ranges = {}
- while True:
- l = lr.get()
- # Start of methods is also end of subtypes.
- if l == " -- General methods.\n":
- break
- # Found a subtype.
- m = pat_subtype.match(l)
- if m:
- # Check first bound
- name = m.group(1)
- if not name.startswith(prefix_range_name):
- raise ParseError(lr, "incorrect prefix for subtype")
- name = name[len(prefix_range_name) :]
- l = lr.get()
- mf = pat_first.match(l)
- if not mf:
- raise ParseError(lr, "badly formated first bound of subtype")
- first = kinds.index(mf.group(1))
- idx = first
- has_middle = None
- # Read until last bound
- while True:
- l = lr.get()
- ml = pat_middle.match(l)
- if ml:
- # Check element in the middle
- n = ml.group(1)
- if n not in kinds:
- raise ParseError(lr, "unknown kind " + n + " in subtype")
- if kinds.index(n) != idx + 1:
- raise ParseError(
- lr, "missing " + kinds[idx + 1] + " in subtype"
- )
- has_middle = True
- idx = idx + 1
- else:
- # Check last bound
- ml = pat_last.match(l)
- if ml:
- last = kinds.index(ml.group(1))
- if last != idx + 1 and has_middle:
- raise ParseError(
- lr, "missing " + kinds[idx] + " in subtype"
- )
- break
- raise ParseError(lr, "unhandled line in subtype")
- kinds_ranges[name] = kinds[first : last + 1]
- return (kinds, kinds_ranges)
-
-
-# Read functions
-def read_methods(filename):
- lr = linereader(filename)
- funcs = []
- pat_field = re.compile(r" -- Field: ([\w,]+)( \w+)?( \(\w+\))?\n")
- pat_conv = re.compile(r"^ \((\w+)\)$")
- pat_func = re.compile(r" function Get_(\w+) \((\w+) : (\w+)\) return (\w+);\n")
- pat_proc = re.compile(r" procedure Set_(\w+) \((\w+) : (\w+); (\w+) : (\w+)\);\n")
- pat_end = re.compile("end [A-Za-z.]+;\n")
- while True:
- l = lr.get()
- # Start of methods
- if l == " -- General methods.\n":
- break
- while True:
- l = lr.get()
- if pat_end.match(l):
- break
- m = pat_field.match(l)
- if m:
- fields = m.group(1).split(",")
- # Extract access modifier
- acc = m.group(2)
- if acc:
- acc = acc.strip()
- # Extract conversion
- conv = m.group(3)
- if conv:
- mc = pat_conv.match(conv)
- if not mc:
- raise ParseError(lr, "conversion ill formed")
- conv = mc.group(1)
- if conv not in conversions:
- raise ParseError(lr, "unknown conversion " + conv)
- else:
- conv = None
- if len(fields) > 1 and conv != "grp":
- raise ParseError(lr, "bad conversion for multiple fields")
- # Read function
- l = lr.get()
- mf = pat_func.match(l)
- if not mf:
- raise ParseError(lr, "function declaration expected after Field")
- # Read procedure
- l = lr.get()
- mp = pat_proc.match(l)
- if not mp:
- raise ParseError(lr, "procedure declaration expected after function")
- # Consistency check between function and procedure
- if mf.group(1) != mp.group(1):
- raise ParseError(lr, "function and procedure name mismatch")
- if mf.group(2) != mp.group(2):
- raise ParseError(lr, "parameter name mismatch with function")
- if mf.group(3) != mp.group(3):
- raise ParseError(lr, "parameter type mismatch with function")
- if mf.group(4) != mp.group(5):
- raise ParseError(lr, "result type mismatch with function")
- funcs.append(
- FuncDesc(
- mf.group(1),
- fields,
- conv,
- acc,
- mp.group(2),
- mp.group(3),
- mp.group(4),
- mp.group(5),
- )
- )
-
- return funcs
-
-
-# Read description for one node
-# LR is the line reader. NAMES is the list of (node name, format)
-# (one description may describe several nodes).
-# A comment start at column 2 or 4 or later.
-def read_nodes_fields(lr, names, fields, nodes, funcs_dict):
- pat_only = re.compile(" -- Only for " + prefix_name + "(\w+):\n")
- pat_only_bad = re.compile(" -- *Only for.*\n")
- pat_field = re.compile(" -- Get/Set_(\w+) \((Alias )?([\w,]+)\)\n")
- pat_comment = re.compile(" --(| [^ ].*| .*)\n")
-
- # Create nodes
- cur_nodes = []
- for (nm, fmt) in names:
- if fmt not in fields:
- raise ParseError(lr, 'unknown format "{}"'.format(fmt))
- n = NodeDesc(nm, fmt, {x: None for x in fields[fmt]}, {})
- nodes[nm] = n
- cur_nodes.append(n)
-
- # Skip comments
- l = lr.l
- while pat_comment.match(l):
- l = lr.get()
-
- # Look for fields
- while l != "\n":
- # Skip comments
- while pat_comment.match(l):
- l = lr.get()
-
- # Handle 'Only ...'
- m = pat_only.match(l)
- if m:
- only_nodes = []
- while True:
- name = m.group(1)
- n = nodes.get(name, None)
- if n is None:
- raise ParseError(lr, "node is unknown")
- if n not in cur_nodes:
- raise ParseError(lr, "node not currently described")
- only_nodes.append(n)
- l = lr.get()
- m = pat_only.match(l)
- if not m:
- break
- else:
- # By default a field applies to all nodes.
- only_nodes = cur_nodes
-
- # Skip comments
- while pat_comment.match(l):
- l = lr.get()
-
- # Handle field: '-- Get/Set_FUNC (Alias? FIELD)'
- m = pat_field.match(l)
- if not m:
- if pat_only_bad.match(l):
- raise ParseError(lr, "misleading 'Only for' comment")
- else:
- raise ParseError(lr, "bad line in node description")
-
- func = m.group(1)
- alias = m.group(2)
- fields = m.group(3).split(",")
-
- # Check the function exists and if the field is correct.
- if func not in funcs_dict:
- raise ParseError(lr, "unknown function")
- func = funcs_dict[func]
- if func.fields != fields:
- raise ParseError(lr, "fields mismatch")
-
- for c in only_nodes:
- for f in fields:
- if f not in c.fields:
- raise ParseError(lr, "field " + f + " does not exist in node")
- if not alias:
- for f in fields:
- if c.fields[f]:
- raise ParseError(lr, "field " + f + " already used")
- c.fields[f] = func
- c.order.append(f)
- c.attrs[func.name] = func
-
- l = lr.get()
-
-
-def read_nodes(filename, kinds, kinds_ranges, fields, funcs):
- """Read description for all nodes."""
- lr = linereader(filename)
- funcs_dict = {x.name: x for x in funcs}
- nodes = {}
-
- # Skip until start
- while lr.get() != " -- Start of " + type_name + ".\n":
- pass
-
- pat_decl = re.compile(" -- " + prefix_name + "(\w+) \((\w+)\)\n")
- pat_decls = re.compile(" -- " + prefix_range_name + "(\w+) \((\w+)\)\n")
- pat_comment_line = re.compile(" --+\n")
- pat_comment_box = re.compile(" --( .*)?\n")
- while True:
- l = lr.get()
- if l == " -- End of " + type_name + ".\n":
- break
- if l == "\n":
- continue
- m = pat_decl.match(l)
- if m:
- # List of nodes being described by the current description.
- names = []
-
- # Declaration of the first node
- while True:
- name = m.group(1)
- if name not in kinds:
- raise ParseError(lr, "unknown node")
- fmt = m.group(2)
- names.append((name, fmt))
- if name in nodes:
- raise ParseError(lr, "node {} already described".format(name))
- # There might be several nodes described at once.
- l = lr.get()
- m = pat_decl.match(l)
- if not m:
- break
- read_nodes_fields(lr, names, fields, nodes, funcs_dict)
- continue
- m = pat_decls.match(l)
- if m:
- # List of nodes being described by the current description.
- name = m.group(1)
- fmt = m.group(2)
- names = [(k, fmt) for k in kinds_ranges[name]]
- l = lr.get()
- read_nodes_fields(lr, names, fields, nodes, funcs_dict)
- continue
- if pat_comment_line.match(l) or pat_comment_box.match(l):
- continue
- raise ParseError(lr, "bad line in node description")
-
- for k in kinds:
- if k not in nodes:
- raise ParseError(lr, 'no description for "{}"'.format(k))
- return nodes
-
-
-def gen_choices(choices):
- """Generate a choice 'when A | B ... Z =>' using elements of CHOICES."""
- is_first = True
- for c in choices:
- if is_first:
- print " ",
- print "when",
- else:
- print
- print " ",
- print " |",
- print prefix_name + c,
- is_first = False
- print "=>"
-
-
-def gen_get_format(formats, nodes, kinds):
- """Generate the Get_Format function."""
- print " function Get_Format (Kind : " + type_name + ") " + "return Format_Type is"
- print " begin"
- print " case Kind is"
- for f in formats:
- choices = [k for k in kinds if nodes[k].format == f]
- gen_choices(choices)
- print " return Format_" + f + ";"
- print " end case;"
- print " end Get_Format;"
-
-
-def gen_subprg_header(decl):
- if len(decl) < 76:
- print decl + " is"
- else:
- print decl
- print " is"
- print " begin"
-
-
-def gen_assert(func):
- print " pragma Assert (" + func.pname + " /= Null_" + node_type + ");"
- cond = "(Has_" + func.name + " (Get_Kind (" + func.pname + ")),"
- msg = '"no field ' + func.name + '");'
- if len(cond) < 60:
- print " pragma Assert " + cond
- print " " + msg
- else:
- print " pragma Assert"
- print " " + cond
- print " " + msg
-
-
-def get_field_type(fields, f):
- for fld in fields.values():
- if f in fld:
- return fld[f]
- return None
-
-
-def gen_get_set(func, nodes, fields):
- """Generate Get_XXX/Set_XXX subprograms for FUNC."""
- rtype = func.rtype
- # If the function needs several fields, it must be user defined
- if func.conv == "grp":
- print " type %s_Conv is record" % rtype
- for f in func.fields:
- print " %s: %s;" % (f, get_field_type(fields, f))
- print " end record;"
- print " pragma Pack (%s_Conv);" % rtype
- print " pragma Assert (%s_Conv'Size = %s'Size);" % (rtype, rtype)
- print
- else:
- f = func.fields[0]
- g = "Get_" + f + " (" + func.pname + ")"
-
- s = func.rname
- if func.conv:
- if func.conv == "uc":
- field_type = get_field_type(fields, f)
- g = field_type + "_To_" + rtype + " (" + g + ")"
- s = rtype + "_To_" + field_type + " (" + s + ")"
- elif func.conv == "pos":
- g = rtype + "'Val (" + g + ")"
- s = rtype + "'Pos (" + s + ")"
-
- subprg = (
- " function Get_"
- + func.name
- + " ("
- + func.pname
- + " : "
- + func.ptype
- + ") return "
- + rtype
- )
- if func.conv == "grp":
- print subprg
- print " is"
- print " function To_%s is new Ada.Unchecked_Conversion" % func.rtype
- print " (%s_Conv, %s);" % (rtype, rtype)
- print " Conv : %s_Conv;" % rtype
- print " begin"
- else:
- gen_subprg_header(subprg)
- gen_assert(func)
- if func.conv == "grp":
- for f in func.fields:
- print " Conv.%s := Get_%s (%s);" % (f, f, func.pname)
- g = "To_%s (Conv)" % rtype
- print " return " + g + ";"
- print " end Get_" + func.name + ";"
- print
-
- subprg = (
- " procedure Set_"
- + func.name
- + " ("
- + func.pname
- + " : "
- + func.ptype
- + "; "
- + func.rname
- + " : "
- + func.rtype
- + ")"
- )
- if func.conv == "grp":
- print subprg
- print " is"
- print " function To_%s_Conv is new Ada.Unchecked_Conversion" % func.rtype
- print " (%s, %s_Conv);" % (rtype, rtype)
- print " Conv : %s_Conv;" % rtype
- print " begin"
- else:
- gen_subprg_header(subprg)
- gen_assert(func)
- if func.conv == "grp":
- print " Conv := To_%s_Conv (%s);" % (rtype, func.rname)
- for f in func.fields:
- print " Set_%s (%s, Conv.%s);" % (f, func.pname, f)
- else:
- print " Set_" + f + " (" + func.pname + ", " + s + ");"
- print " end Set_" + func.name + ";"
- print
-
-
-def funcs_of_node(n):
- return sorted([fv.name for fv in n.fields.values() if fv])
-
-
-def gen_has_func_spec(name, suff):
- spec = " function Has_" + name + " (K : " + type_name + ")"
- ret = " return Boolean" + suff
- if len(spec) < 60:
- print spec + ret
- else:
- print spec
- print " " + ret
-
-
-def do_disp_formats():
- for fmt in fields:
- print "Fields of Format_" + fmt
- fld = fields[fmt]
- for k in fld:
- print " " + k + " (" + fld[k] + ")"
-
-
-def do_disp_kinds():
- print "Kinds are:"
- for k in kinds:
- print " " + prefix_name + k
-
-
-def do_disp_funcs():
- print "Functions are:"
- for f in funcs:
- s = "{0} ({1}: {2}".format(f.name, f.field, f.rtype)
- if f.acc:
- s += " acc:" + f.acc
- if f.conv:
- s += " conv:" + f.conv
- s += ")"
- print s
-
-
-def do_disp_types():
- print "Types are:"
- s = set([])
- for f in funcs:
- s |= set([f.rtype])
- for t in sorted(s):
- print " " + t
-
-
-def do_disp_nodes():
- for k in kinds:
- v = nodes[k]
- print prefix_name + k + " (" + v.format + ")"
- flds = [fk for fk, fv in v.fields.items() if fv]
- for fk in sorted(flds):
- print " " + fk + ": " + v.fields[fk].name
-
-
-def do_get_format():
- gen_get_format(formats, nodes)
-
-
-def do_body():
- lr = linereader(template_file)
- while True:
- l = lr.get().rstrip()
- print l
- if l == " -- Subprograms":
- gen_get_format(formats, nodes, kinds)
- print
- for f in funcs:
- gen_get_set(f, nodes, fields)
- if l[0:3] == "end":
- break
-
-
-def get_types():
- s = set([])
- for f in funcs:
- s |= set([f.rtype])
- return [t for t in sorted(s)]
-
-
-def get_attributes():
- s = set([])
- for f in funcs:
- if f.acc:
- s |= set([f.acc])
- res = [t for t in sorted(s)]
- res.insert(0, "None")
- return res
-
-
-def gen_enum(prefix, vals):
- last = None
- for v in vals:
- if last:
- print last + ","
- last = prefix + v
- print last
-
-
-def do_meta_specs():
- lr = linereader(meta_base_file + ".ads.in")
- types = get_types()
- while True:
- l = lr.get().rstrip()
- if l == " -- TYPES":
- gen_enum(" Type_", types)
- elif l == " -- FIELDS":
- gen_enum(" Field_", [f.name for f in funcs])
- elif l == " -- ATTRS":
- gen_enum(" Attr_", get_attributes())
- elif l == " -- FUNCS":
- for t in types:
- print " function Get_" + t
- print " (N : " + node_type + "; F : Fields_Enum) return " + t + ";"
- print " procedure Set_" + t
- print " (N : " + node_type + "; F : Fields_Enum; V: " + t + ");"
- print
- for f in funcs:
- gen_has_func_spec(f.name, ";")
- elif l[0:3] == "end":
- print l
- break
- else:
- print l
-
-
-def do_meta_body():
- lr = linereader(meta_base_file + ".adb.in")
- while True:
- l = lr.get().rstrip()
- if l == " -- FIELDS_TYPE":
- last = None
- for f in funcs:
- if last:
- print last + ","
- last = " Field_" + f.name + " => Type_" + f.rtype
- print last
- elif l == " -- FIELD_IMAGE":
- for f in funcs:
- print " when Field_" + f.name + " =>"
- print ' return "' + f.name.lower() + '";'
- elif l == " -- IIR_IMAGE":
- for k in kinds:
- print " when " + prefix_name + k + " =>"
- print ' return "' + k.lower() + '";'
- elif l == " -- FIELD_ATTRIBUTE":
- for f in funcs:
- print " when Field_" + f.name + " =>"
- if f.acc:
- attr = f.acc
- else:
- attr = "None"
- print " return Attr_" + attr + ";"
- elif l == " -- FIELDS_ARRAY":
- last = None
- nodes_types = [node_type, node_type + "_List", node_type + "_Flist"]
- for k in kinds:
- v = nodes[k]
- if last:
- print last + ","
- last = None
- print " -- " + prefix_name + k
- # Get list of physical fields for V, in some order.
- if flag_keep_order:
- flds = v.order
- else:
- # First non Iir and no Iir_List.
- flds = sorted(
- [
- fk
- for fk, fv in v.fields.items()
- if fv and fv.rtype not in nodes_types
- ]
- )
- # Then Iir and Iir_List in order of appearance
- flds += (fv for fv in v.order if v.fields[fv].rtype in nodes_types)
- # Print the corresponding node field, but remove duplicate due
- # to 'grp'.
- fldsn = []
- for fk in flds:
- if last:
- print last + ","
- # Remove duplicate
- fn = v.fields[fk].name
- if fn not in fldsn:
- last = " Field_" + fn
- fldsn.append(fn)
- else:
- last = None
- if last:
- print last
- elif l == " -- FIELDS_ARRAY_POS":
- pos = -1
- last = None
- for k in kinds:
- v = nodes[k]
- # Create a set to remove duplicate for 'grp'.
- flds = set([fv.name for fk, fv in v.fields.items() if fv])
- pos += len(flds)
- if last:
- print last + ","
- last = " " + prefix_name + k + " => {}".format(pos)
- print last
- elif l == " -- FUNCS_BODY":
- # Build list of types
- s = set([])
- for f in funcs:
- s |= set([f.rtype])
- types = [t for t in sorted(s)]
- for t in types:
- print " function Get_" + t
- print " (N : " + node_type + "; F : Fields_Enum) return " + t + " is"
- print " begin"
- print " pragma Assert (Fields_Type (F) = Type_" + t + ");"
- print " case F is"
- for f in funcs:
- if f.rtype == t:
- print " when Field_" + f.name + " =>"
- print " return Get_" + f.name + " (N);"
- print " when others =>"
- print " raise Internal_Error;"
- print " end case;"
- print " end Get_" + t + ";"
- print
- print " procedure Set_" + t
- print " (N : " + node_type + "; F : Fields_Enum; V: " + t + ") is"
- print " begin"
- print " pragma Assert (Fields_Type (F) = Type_" + t + ");"
- print " case F is"
- for f in funcs:
- if f.rtype == t:
- print " when Field_" + f.name + " =>"
- print " Set_" + f.name + " (N, V);"
- print " when others =>"
- print " raise Internal_Error;"
- print " end case;"
- print " end Set_" + t + ";"
- print
- for f in funcs:
- gen_has_func_spec(f.name, " is")
- choices = [k for k in kinds if f.name in nodes[k].attrs]
- if len(choices) == 0:
- print " pragma Unreferenced (K);"
- print " begin"
- if len(choices) == 0:
- print " return False;"
- elif len(choices) == 1:
- print " return K = " + prefix_name + choices[0] + ";"
- else:
- print " case K is"
- gen_choices(choices)
- print " return True;"
- print " when others =>"
- print " return False;"
- print " end case;"
- print " end Has_" + f.name + ";"
- print
- elif l[0:3] == "end":
- print l
- break
- else:
- print l
-
-
-actions = {
- "disp-nodes": do_disp_nodes,
- "disp-kinds": do_disp_kinds,
- "disp-formats": do_disp_formats,
- "disp-funcs": do_disp_funcs,
- "disp-types": do_disp_types,
- "get_format": do_get_format,
- "body": do_body,
- "meta_specs": do_meta_specs,
- "meta_body": do_meta_body,
-}
-
-
-def main():
- parser = argparse.ArgumentParser(description="Meta-grammar processor")
- parser.add_argument("action", choices=actions.keys(), default="disp-nodes")
- parser.add_argument(
- "--field-file",
- dest="field_file",
- default="nodes.ads",
- help="specify file which defines fields",
- )
- parser.add_argument(
- "--kind-file",
- dest="kind_file",
- default="iirs.ads",
- help="specify file which defines nodes kind",
- )
- parser.add_argument(
- "--node-file",
- dest="node_file",
- default="iirs.ads",
- help="specify file which defines nodes and methods",
- )
- parser.add_argument(
- "--template-file",
- dest="template_file",
- default="iirs.adb.in",
- help="specify template body file",
- )
- parser.add_argument(
- "--meta-basename",
- dest="meta_basename",
- default="nodes_meta",
- help="specify base name of meta files",
- )
- parser.add_argument(
- "--kind-type", dest="kind_type", default="Iir_Kind", help="name of kind type"
- )
- parser.add_argument(
- "--kind-prefix",
- dest="kind_prefix",
- default="Iir_Kind_",
- help="prefix for kind literals",
- )
- parser.add_argument(
- "--kind-range-prefix",
- dest="kind_range_prefix",
- default="Iir_Kinds_",
- help="prefix for kind subtype (range)",
- )
- parser.add_argument(
- "--node-type", dest="node_type", default="Iir", help="name of the node type"
- )
- parser.add_argument(
- "--keep-order",
- dest="flag_keep_order",
- action="store_true",
- help="keep field order of nodes",
- )
- parser.set_defaults(flag_keep_order=False)
- args = parser.parse_args()
-
- # At some point, it would be simpler to create a class...
- global formats, fields, nodes, kinds, kinds_ranges, funcs
-
- global type_name, prefix_name, template_file, node_type, meta_base_file
- global prefix_range_name, flag_keep_order, kind_file
-
- type_name = args.kind_type
- prefix_name = args.kind_prefix
- prefix_range_name = args.kind_range_prefix
- template_file = args.template_file
- node_type = args.node_type
- meta_base_file = args.meta_basename
- flag_keep_order = args.flag_keep_order
-
- field_file = args.field_file
- kind_file = args.kind_file
- node_file = args.node_file
-
- try:
- (formats, fields) = read_fields(field_file)
- (kinds, kinds_ranges) = read_kinds(kind_file)
- funcs = read_methods(node_file)
- nodes = read_nodes(node_file, kinds, kinds_ranges, fields, funcs)
-
- except ParseError as e:
- print >> sys.stderr, e
- print >> sys.stderr, "in {0}:{1}:{2}".format(e.lr.filename, e.lr.lineno, e.lr.l)
- sys.exit(1)
-
- f = actions.get(args.action, None)
- if not f:
- print >> sys.stderr, "Action {0} is unknown".format(args.action)
- sys.exit(1)
- f()
-
-
-if __name__ == "__main__":
- main()
diff --git a/python/xtools/pnodespy.py b/python/xtools/pnodespy.py
deleted file mode 100755
index 0e0f5ba9e..000000000
--- a/python/xtools/pnodespy.py
+++ /dev/null
@@ -1,263 +0,0 @@
-#!/usr/bin/env python
-
-"""Like pnodes but output for python"""
-
-from __future__ import print_function
-import pnodes
-import re
-
-libname = "libghdl"
-
-
-def print_enum(name, vals):
- print()
- print()
- print("class {0}:".format(name))
- for n, k in enumerate(vals):
- if k == "None":
- k = "PNone"
- print(" {0} = {1}".format(k, n))
-
-
-def do_class_kinds():
- print_enum(pnodes.prefix_name.rstrip("_"), pnodes.kinds)
- print()
- print()
- print("class Iir_Kinds:")
- for k, v in pnodes.kinds_ranges.items():
- print(" {0} = [".format(k))
- for e in v:
- print(" Iir_Kind.{},".format(e))
- print(" ]")
- print()
-
-
-def do_iirs_subprg():
- classname = "vhdl__nodes"
- print()
- print("Get_Kind = {0}.{1}__get_kind".format(libname, classname))
- print("Get_Location = {0}.{1}__get_location".format(libname, classname))
- for k in pnodes.funcs:
- print()
- print(
- "Get_{0} = {1}.{2}__get_{3}".format(
- k.name, libname, classname, k.name.lower()
- )
- )
- print()
- print(
- "Set_{0} = {1}.{2}__set_{3}".format(
- k.name, libname, classname, k.name.lower(), k.pname, k.rname
- )
- )
-
-
-def do_libghdl_elocations():
- classname = "vhdl__elocations"
- print("from libghdl import libghdl")
- print()
- for k in pnodes.funcs:
- print()
- print(
- "Get_{0} = {1}.{2}__get_{3}".format(
- k.name, libname, classname, k.name.lower()
- )
- )
- print()
- print(
- "Set_{0} = {1}.{2}__set_{3}".format(
- k.name, libname, classname, k.name.lower(), k.pname, k.rname
- )
- )
-
-
-def do_class_types():
- print_enum("types", pnodes.get_types())
-
-
-def do_types_subprg():
- print()
- for k in pnodes.get_types():
- print()
- print("Get_{0} = {1}.vhdl__nodes_meta__get_{2}".format(k, libname, k.lower()))
-
-
-def do_has_subprg():
- print()
- for f in pnodes.funcs:
- print()
- print("Has_{0} =\\".format(f.name))
- print(" {0}.vhdl__nodes_meta__has_{1}".format(libname, f.name.lower()))
-
-
-def do_class_field_attributes():
- print_enum("Attr", ["ANone" if a == "None" else a for a in pnodes.get_attributes()])
-
-
-def do_class_fields():
- print_enum("fields", [f.name for f in pnodes.funcs])
-
-
-def read_enum(filename, type_name, prefix, class_name, g=lambda m: m.group(1)):
- """Read an enumeration declaration from :param filename:"""
- pat_decl = re.compile(r" type {0} is$".format(type_name))
- pat_enum = re.compile(r" {0}(\w+),?( *-- .*)?$".format(prefix))
- pat_comment = re.compile(r" *-- .*$")
- lr = pnodes.linereader(filename)
- while not pat_decl.match(lr.get()):
- pass
- line = lr.get()
- if line != " (\n":
- raise pnodes.ParseError(
- lr, "{}:{}: missing open parenthesis".format(filename, lr.lineno)
- )
- toks = []
- while True:
- line = lr.get()
- if line == " );\n":
- break
- m = pat_enum.match(line)
- if m:
- toks.append(g(m))
- elif pat_comment.match(line):
- pass
- elif line == "\n":
- pass
- else:
- print(line, file=sys.stderr)
- raise pnodes.ParseError(
- lr,
- "{}:{}: incorrect line in enum {}".format(
- filename, lr.lineno, type_name
- ),
- )
- print_enum(class_name, toks)
-
-
-def read_spec_enum(type_name, prefix, class_name):
- """Read an enumeration declaration from iirs.ads"""
- read_enum(pnodes.kind_file, type_name, prefix, class_name)
-
-
-def do_libghdl_nodes():
- print("from libghdl import libghdl")
- print(
- """
-Null_Iir = 0
-
-Null_Iir_List = 0
-Iir_List_All = 1
-
-Null_Iir_Flist = 0
-Iir_Flist_Others = 1
-Iir_Flist_All = 2
-"""
- )
- do_class_kinds()
- read_spec_enum("Iir_Mode", "Iir_", "Iir_Mode")
- read_spec_enum("Iir_Staticness", "", "Iir_Staticness")
- read_spec_enum("Iir_Constraint", "", "Iir_Constraint")
- read_spec_enum("Iir_Delay_Mechanism", "Iir_", "Iir_Delay_Mechanism")
- read_spec_enum("Date_State_Type", "Date_", "Date_State")
- read_spec_enum("Iir_Predefined_Functions", "Iir_Predefined_", "Iir_Predefined")
- do_iirs_subprg()
-
-
-def do_libghdl_meta():
- print("from libghdl import libghdl")
- print(
- """
-
-# From nodes_meta
-get_fields_first = libghdl.vhdl__nodes_meta__get_fields_first
-
-get_fields_last = libghdl.vhdl__nodes_meta__get_fields_last
-
-get_field_by_index = libghdl.vhdl__nodes_meta__get_field_by_index
-
-get_field_type = libghdl.vhdl__nodes_meta__get_field_type
-
-get_field_attribute = libghdl.vhdl__nodes_meta__get_field_attribute"""
- )
- do_class_types()
- do_class_field_attributes()
- do_class_fields()
- do_types_subprg()
- do_has_subprg()
-
-
-def do_libghdl_names():
- pat_name_first = re.compile(r" Name_(\w+)\s+: constant Name_Id := (\d+);")
- pat_name_def = re.compile(
- r" Name_(\w+)\s+:\s+constant Name_Id :=\s+Name_(\w+)( \+ (\d+))?;"
- )
- dict = {}
- lr = pnodes.linereader("../std_names.ads")
- while True:
- line = lr.get()
- m = pat_name_first.match(line)
- if m:
- name_def = m.group(1)
- val = int(m.group(2))
- dict[name_def] = val
- res = [(name_def, val)]
- break
- val_max = 1
- while True:
- line = lr.get()
- if line == "end Std_Names;\n":
- break
- if line.endswith(":=\n"):
- line = line.rstrip() + lr.get()
- m = pat_name_def.match(line)
- if m:
- name_def = m.group(1)
- name_ref = m.group(2)
- val = m.group(3)
- if not val:
- val = 0
- val_ref = dict.get(name_ref, None)
- if not val_ref:
- raise pnodes.ParseError(lr, "name {0} not found".format(name_ref))
- val = val_ref + int(val)
- val_max = max(val_max, val)
- dict[name_def] = val
- res.append((name_def, val))
- print("class Name:")
- for n, v in res:
- # Avoid clash with Python names
- if n in ["False", "True", "None"]:
- n = "N" + n
- print(" {0} = {1}".format(n, v))
-
-
-def do_libghdl_tokens():
- read_enum("vhdl-tokens.ads", "Token_Type", "Tok_", "Tok")
-
-
-def do_libghdl_errorout():
- print("from libghdl import libghdl")
- print("\n" "Enable_Warning = libghdl.errorout__enable_warning")
- read_enum(
- "../errorout.ads",
- "Msgid_Type",
- "(Msgid|Warnid)_",
- "Msgid",
- g=lambda m: m.group(1) + "_" + m.group(2),
- )
-
-
-pnodes.actions.update(
- {
- "class-kinds": do_class_kinds,
- "libghdl-nodes": do_libghdl_nodes,
- "libghdl-meta": do_libghdl_meta,
- "libghdl-names": do_libghdl_names,
- "libghdl-tokens": do_libghdl_tokens,
- "libghdl-elocs": do_libghdl_elocations,
- "libghdl-errorout": do_libghdl_errorout,
- }
-)
-
-
-pnodes.main()