diff options
author | 1138-4EB <1138-4EB@users.noreply.github.com> | 2019-06-17 03:38:27 +0200 |
---|---|---|
committer | tgingold <tgingold@users.noreply.github.com> | 2019-06-17 03:38:27 +0200 |
commit | 159e0bfdbb135e74aac10e54c7a499e9e34aa5a2 (patch) | |
tree | a1ed3fbd98ddd464041a25f5e389fdd029e55528 /python | |
parent | d71489efc74c55ee09f242ae5d87dbee694a8b5e (diff) | |
download | ghdl-159e0bfdbb135e74aac10e54c7a499e9e34aa5a2.tar.gz ghdl-159e0bfdbb135e74aac10e54c7a499e9e34aa5a2.tar.bz2 ghdl-159e0bfdbb135e74aac10e54c7a499e9e34aa5a2.zip |
Rework libghdl build/install procedure (#840)
* feat(libghdl): add libghdl_pkg.py, add option to generate libghdl-py.tgz with dist/travis/build.sh
* libghdl*.so is now part of GHDL
* move python sources to python/libghdl and python/pnodes
* rename src/vhdl/python to src/vhdl/libghdl
* add generation of tarball for libghdl-py to the makefile
* deprecate --enable-python and --disable-python
* add configuration option --disable-libghdl
* feat(python/libghdl): add support for LIBGHDL_PREFIX (#844)
* fix(travis): disable libghdl on mac
* feat(python/libghdl): add support for GHDL_BIN_PATH and VUNIT_GHDL_PATH
Diffstat (limited to 'python')
27 files changed, 5864 insertions, 0 deletions
diff --git a/python/libghdl/__init__.py b/python/libghdl/__init__.py new file mode 100644 index 000000000..97b7acc82 --- /dev/null +++ b/python/libghdl/__init__.py @@ -0,0 +1,47 @@ +import ctypes +from os import environ +from os.path import dirname, join +from shutil import which +from libghdl.config import __libghdl__ + + +def _to_char_p(arg): + return ctypes.c_char_p(arg), len(arg) + + +def get_ghdl_path(): + _dir = None + for envvar in [environ.get(item) for item in ['GHDL_BIN_PATH', 'VUNIT_GHDL_PATH']]: + if envvar: + _dir = envvar + break + if not _dir: + _dir = which(environ.get('GHDL', 'ghdl')) + if _dir: + _dir = join(dirname(_dir), '..', 'lib') + return _dir + + +_basedir = get_ghdl_path() or dirname(__file__) + +libghdl = ctypes.CDLL(join(_basedir, __libghdl__)) + +libghdl.libghdl_init() + + +def set_option(opt): + arg = _to_char_p(opt) + return libghdl.libghdl__set_option(arg[0], arg[1]) + + +def analyze_init(): + return libghdl.libghdl__analyze_init() + + +def analyze_file(fname): + arg = _to_char_p(fname) + return libghdl.libghdl__analyze_file(arg[0], arg[1]) + + +_prefix = environ.get("LIBGHDL_PREFIX") or '--PREFIX=%s' % join(_basedir, 'ghdl') +set_option(_prefix.encode('utf-8')) diff --git a/python/libghdl/setup.py b/python/libghdl/setup.py new file mode 100644 index 000000000..c7c3de80b --- /dev/null +++ b/python/libghdl/setup.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python + +from distutils.core import setup +from config import __version__ + +setup( + name='libghdl', + version=__version__, + description='Interface to ghdl, a VHDL analyzer', + long_description="""GHDL is a vhdl simulator and libghdl provides a low-level +interface to the parser. This library gives access to the AST so that you can +write tools like linters. +""", + author='Tristan Gingold', + author_email='tgingold@free.fr', + url='http://github.com/ghdl/ghdl', + license='GPL-2.0-or-later', + package_dir={ + 'libghdl': './' + }, + packages=[ + 'libghdl', + 'libghdl.thin', + 'libghdl.thin.vhdl' + ] +) diff --git a/python/libghdl/thin/errorout.py b/python/libghdl/thin/errorout.py new file mode 100644 index 000000000..809cc919e --- /dev/null +++ b/python/libghdl/thin/errorout.py @@ -0,0 +1,34 @@ +from libghdl import libghdl + +Enable_Warning = libghdl.errorout__enable_warning + + + +class Msgid: + Msgid_Note = 0 + Warnid_Library = 1 + Warnid_Missing_Xref = 2 + Warnid_Default_Binding = 3 + Warnid_Binding = 4 + Warnid_Port = 5 + Warnid_Reserved_Word = 6 + Warnid_Nested_Comment = 7 + Warnid_Directive = 8 + Warnid_Parenthesis = 9 + Warnid_Vital_Generic = 10 + Warnid_Delayed_Checks = 11 + Warnid_Body = 12 + Warnid_Specs = 13 + Warnid_Universal = 14 + Warnid_Port_Bounds = 15 + Warnid_Runtime_Error = 16 + Warnid_Delta_Cycle = 17 + Warnid_Shared = 18 + Warnid_Hide = 19 + Warnid_Unused = 20 + Warnid_Others = 21 + Warnid_Pure = 22 + Warnid_Static = 23 + Msgid_Warning = 24 + Msgid_Error = 25 + Msgid_Fatal = 26 diff --git a/python/libghdl/thin/errorout_memory.py b/python/libghdl/thin/errorout_memory.py new file mode 100644 index 000000000..8027795df --- /dev/null +++ b/python/libghdl/thin/errorout_memory.py @@ -0,0 +1,31 @@ +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 new file mode 100644 index 000000000..b0029b0a4 --- /dev/null +++ b/python/libghdl/thin/files_map.py @@ -0,0 +1,41 @@ +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 + +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 new file mode 100644 index 000000000..e19317d0e --- /dev/null +++ b/python/libghdl/thin/files_map_editor.py @@ -0,0 +1,6 @@ +from libghdl import libghdl + +Replace_Text = libghdl.files_map__editor__replace_text_ptr +Fill_Text = libghdl.files_map__editor__fill_text_ptr + +Check_Buffer_Content = libghdl.files_map__editor__check_buffer_content diff --git a/python/libghdl/thin/flags.py b/python/libghdl/thin/flags.py new file mode 100644 index 000000000..cc49c1651 --- /dev/null +++ b/python/libghdl/thin/flags.py @@ -0,0 +1,14 @@ +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 new file mode 100644 index 000000000..cb5f20ec2 --- /dev/null +++ b/python/libghdl/thin/libraries.py @@ -0,0 +1,17 @@ +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 diff --git a/python/libghdl/thin/name_table.py b/python/libghdl/thin/name_table.py new file mode 100644 index 000000000..cda0b3e1c --- /dev/null +++ b/python/libghdl/thin/name_table.py @@ -0,0 +1,14 @@ +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 new file mode 100644 index 000000000..bef6eee48 --- /dev/null +++ b/python/libghdl/thin/std_names.py @@ -0,0 +1,747 @@ +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 + Context = 355 + Parameter = 356 + Last_Vhdl08 = 356 + First_Ams_Keyword = 357 + Across = 357 + Break = 358 + Limit = 359 + Nature = 360 + Noise = 361 + Procedural = 362 + Quantity = 363 + Reference = 364 + Spectrum = 365 + Subnature = 366 + Terminal = 367 + Through = 368 + Tolerance = 369 + Last_AMS_Vhdl = 369 + Last_Keyword = 369 + First_Verilog = 370 + Always = 370 + Assign = 371 + Buf = 372 + Bufif0 = 373 + Bufif1 = 374 + Casex = 375 + Casez = 376 + Cmos = 377 + Deassign = 378 + Default = 379 + Defparam = 380 + Disable = 381 + Edge = 382 + Endcase = 383 + Endfunction = 384 + Endmodule = 385 + Endprimitive = 386 + Endspecify = 387 + Endtable = 388 + Endtask = 389 + Force = 390 + Forever = 391 + Fork = 392 + Highz0 = 393 + Highz1 = 394 + Ifnone = 395 + Initial = 396 + Input = 397 + Join = 398 + Large = 399 + Macromodule = 400 + Medium = 401 + Module = 402 + Negedge = 403 + Nmos = 404 + Notif0 = 405 + Notif1 = 406 + Output = 407 + Pmos = 408 + Posedge = 409 + Primitive = 410 + Pull0 = 411 + Pull1 = 412 + Pulldown = 413 + Pullup = 414 + Realtime = 415 + Release = 416 + Reg = 417 + Repeat = 418 + Rcmos = 419 + Rnmos = 420 + Rpmos = 421 + Rtran = 422 + Rtranif0 = 423 + Rtranif1 = 424 + Scalared = 425 + Small = 426 + Specify = 427 + Specparam = 428 + Strong0 = 429 + Strong1 = 430 + Supply0 = 431 + Supply1 = 432 + Tablex = 433 + Task = 434 + Tran = 435 + Tranif0 = 436 + Tranif1 = 437 + Tri = 438 + Tri0 = 439 + Tri1 = 440 + Triand = 441 + Trior = 442 + Trireg = 443 + Vectored = 444 + Wand = 445 + Weak0 = 446 + Weak1 = 447 + Wire = 448 + Wor = 449 + Last_Verilog = 449 + First_V2001 = 450 + Automatic = 450 + Endgenerate = 451 + Genvar = 452 + Localparam = 453 + Unsigned = 454 + Signed = 455 + Last_V2001 = 455 + Uwire = 456 + First_SV3_0 = 457 + Always_Comb = 457 + Always_Ff = 458 + Always_Latch = 459 + Bit = 460 + Byte = 461 + Changed = 462 + Char = 463 + Const = 464 + Continue = 465 + Do = 466 + Endinterface = 467 + Endtransition = 468 + Enum = 469 + Export = 470 + Extern = 471 + Forkjoin = 472 + Iff = 473 + Import = 474 + Int = 475 + Interface = 476 + Logic = 477 + Longint = 478 + Longreal = 479 + Modport = 480 + Packed = 481 + Priority = 482 + Shortint = 483 + Shortreal = 484 + Static = 485 + Struct = 486 + Timeprecision = 487 + Timeunit = 488 + Transition = 489 + Typedef = 490 + Union = 491 + Unique = 492 + Unique0 = 493 + Void = 494 + Last_SV3_0 = 494 + First_SV3_1 = 495 + Chandle = 495 + Class = 496 + Clocking = 497 + Constraint = 498 + Cover = 499 + Dist = 500 + Endclass = 501 + Endclocking = 502 + Endprogram = 503 + Endproperty = 504 + Endsequence = 505 + Extends = 506 + Final = 507 + First_Match = 508 + Inside = 509 + Intersect = 510 + Join_Any = 511 + Join_None = 512 + Local = 513 + Program = 514 + Property = 515 + Rand = 516 + Randc = 517 + Ref = 518 + Sequence = 519 + Solve = 520 + String = 521 + Super = 522 + This = 523 + Throughout = 524 + Var = 525 + Virtual = 526 + Wait_Order = 527 + Last_SV3_1 = 527 + First_SV3_1a = 528 + Assume = 528 + Covergroup = 529 + Coverpoint = 530 + Endgroup = 531 + Endpackage = 532 + Expect = 533 + Foreach = 534 + Ignore_Bins = 535 + Illegal_Bins = 536 + Matches = 537 + Randcase = 538 + Randsequence = 539 + Tagged = 540 + Wildcard = 541 + Last_SV3_1a = 541 + First_SV2009 = 542 + Implies = 542 + S_Until = 543 + S_Until_With = 544 + Until_With = 545 + Last_SV2009 = 545 + First_Operator = 546 + Op_Equality = 546 + Op_Inequality = 547 + Op_Less = 548 + Op_Less_Equal = 549 + Op_Greater = 550 + Op_Greater_Equal = 551 + Op_Plus = 552 + Op_Minus = 553 + Op_Mul = 554 + Op_Div = 555 + Op_Exp = 556 + Op_Concatenation = 557 + Op_Condition = 558 + Op_Match_Equality = 559 + Op_Match_Inequality = 560 + Op_Match_Less = 561 + Op_Match_Less_Equal = 562 + Op_Match_Greater = 563 + Op_Match_Greater_Equal = 564 + Last_Operator = 564 + First_Attribute = 565 + Base = 565 + Left = 566 + Right = 567 + High = 568 + Low = 569 + Pos = 570 + Val = 571 + Succ = 572 + Pred = 573 + Leftof = 574 + Rightof = 575 + Reverse_Range = 576 + Length = 577 + Delayed = 578 + Stable = 579 + Quiet = 580 + Transaction = 581 + Event = 582 + Active = 583 + Last_Event = 584 + Last_Active = 585 + Last_Value = 586 + Last_Attribute = 586 + First_Vhdl87_Attribute = 587 + Behavior = 587 + Structure = 588 + Last_Vhdl87_Attribute = 588 + First_Vhdl93_Attribute = 589 + Ascending = 589 + Image = 590 + Value = 591 + Driving = 592 + Driving_Value = 593 + Simple_Name = 594 + Instance_Name = 595 + Path_Name = 596 + Last_Vhdl93_Attribute = 596 + First_Vhdl08_Attribute = 597 + Element = 597 + Last_Vhdl08_Attribute = 597 + First_AMS_Attribute = 598 + Contribution = 598 + Dot = 599 + Integ = 600 + Above = 601 + ZOH = 602 + LTF = 603 + ZTF = 604 + Ramp = 605 + Slew = 606 + Last_AMS_Attribute = 606 + First_Standard = 607 + Std = 607 + Standard = 608 + Boolean = 609 + NFalse = 610 + NTrue = 611 + Character = 612 + Severity_Level = 613 + Note = 614 + Warning = 615 + Error = 616 + Failure = 617 + Universal_Integer = 618 + Universal_Real = 619 + Convertible_Integer = 620 + Convertible_Real = 621 + Integer = 622 + Real = 623 + Time = 624 + Fs = 625 + Ps = 626 + Ns = 627 + Us = 628 + Ms = 629 + Sec = 630 + Min = 631 + Hr = 632 + Max = 633 + Delay_Length = 634 + Now = 635 + Natural = 636 + Positive = 637 + Bit_Vector = 638 + File_Open_Kind = 639 + Read_Mode = 640 + Write_Mode = 641 + Append_Mode = 642 + File_Open_Status = 643 + Open_Ok = 644 + Status_Error = 645 + Name_Error = 646 + Mode_Error = 647 + Foreign = 648 + Boolean_Vector = 649 + To_Bstring = 650 + To_Binary_String = 651 + To_Ostring = 652 + To_Octal_String = 653 + To_Hstring = 654 + To_Hex_String = 655 + Integer_Vector = 656 + Real_Vector = 657 + Time_Vector = 658 + Digits = 659 + Format = 660 + Unit = 661 + Domain_Type = 662 + Quiescent_Domain = 663 + Time_Domain = 664 + Frequency_Domain = 665 + Domain = 666 + Frequency = 667 + Last_Standard = 667 + First_Charname = 668 + Nul = 668 + Soh = 669 + Stx = 670 + Etx = 671 + Eot = 672 + Enq = 673 + Ack = 674 + Bel = 675 + Bs = 676 + Ht = 677 + Lf = 678 + Vt = 679 + Ff = 680 + Cr = 681 + So = 682 + Si = 683 + Dle = 684 + Dc1 = 685 + Dc2 = 686 + Dc3 = 687 + Dc4 = 688 + Nak = 689 + Syn = 690 + Etb = 691 + Can = 692 + Em = 693 + Sub = 694 + Esc = 695 + Fsp = 696 + Gsp = 697 + Rsp = 698 + Usp = 699 + Del = 700 + C128 = 701 + C129 = 702 + C130 = 703 + C131 = 704 + C132 = 705 + C133 = 706 + C134 = 707 + C135 = 708 + C136 = 709 + C137 = 710 + C138 = 711 + C139 = 712 + C140 = 713 + C141 = 714 + C142 = 715 + C143 = 716 + C144 = 717 + C145 = 718 + C146 = 719 + C147 = 720 + C148 = 721 + C149 = 722 + C150 = 723 + C151 = 724 + C152 = 725 + C153 = 726 + C154 = 727 + C155 = 728 + C156 = 729 + C157 = 730 + C158 = 731 + C159 = 732 + Last_Charname = 732 + First_Misc = 733 + Guard = 733 + Deallocate = 734 + File_Open = 735 + File_Close = 736 + Read = 737 + Write = 738 + Flush = 739 + Endfile = 740 + I = 741 + J = 742 + F = 743 + L = 744 + P = 745 + R = 746 + S = 747 + V = 748 + External_Name = 749 + Open_Kind = 750 + First = 751 + Last = 752 + Textio = 753 + Work = 754 + Text = 755 + To_String = 756 + Minimum = 757 + Maximum = 758 + Untruncated_Text_Read = 759 + Textio_Read_Real = 760 + Textio_Write_Real = 761 + Get_Resolution_Limit = 762 + Control_Simulation = 763 + Step = 764 + Index = 765 + Item = 766 + Uu_File_Uu = 767 + Uu_Line_Uu = 768 + NNone = 769 + Last_Misc = 769 + First_Ieee = 770 + Ieee = 770 + Std_Logic_1164 = 771 + Std_Ulogic = 772 + Std_Ulogic_Vector = 773 + Std_Logic = 774 + Std_Logic_Vector = 775 + Rising_Edge = 776 + Falling_Edge = 777 + VITAL_Timing = 778 + VITAL_Level0 = 779 + VITAL_Level1 = 780 + Numeric_Std = 781 + Numeric_Bit = 782 + Unresolved_Unsigned = 783 + Unresolved_Signed = 784 + Std_Logic_Arith = 785 + Std_Logic_Signed = 786 + Std_Logic_Textio = 787 + Std_Logic_Unsigned = 788 + Last_Ieee = 788 + First_Directive = 789 + Define = 789 + Endif = 790 + Ifdef = 791 + Ifndef = 792 + Include = 793 + Timescale = 794 + Undef = 795 + Protect = 796 + Begin_Protected = 797 + End_Protected = 798 + Key_Block = 799 + Data_Block = 800 + Line = 801 + Celldefine = 802 + Endcelldefine = 803 + Default_Nettype = 804 + Resetall = 805 + Last_Directive = 805 + First_Systask = 806 + Bits = 806 + D_Root = 807 + D_Unit = 808 + Last_Systask = 808 + First_SV_Method = 809 + Size = 809 + Insert = 810 + Delete = 811 + Pop_Front = 812 + Pop_Back = 813 + Push_Front = 814 + Push_Back = 815 + Name = 816 + Len = 817 + Substr = 818 + Exists = 819 + Atoi = 820 + Itoa = 821 + Find = 822 + Find_Index = 823 + Find_First = 824 + Find_First_Index = 825 + Find_Last = 826 + Find_Last_Index = 827 + Num = 828 + Randomize = 829 + Pre_Randomize = 830 + Post_Randomize = 831 + Srandom = 832 + Get_Randstate = 833 + Set_Randstate = 834 + Seed = 835 + State = 836 + Last_SV_Method = 836 + First_BSV = 837 + uAction = 837 + uActionValue = 838 + BVI = 839 + uC = 840 + uCF = 841 + uE = 842 + uSB = 843 + uSBR = 844 + Action = 845 + Endaction = 846 + Actionvalue = 847 + Endactionvalue = 848 + Ancestor = 849 + Clocked_By = 850 + Default_Clock = 851 + Default_Reset = 852 + Dependencies = 853 + Deriving = 854 + Determines = 855 + Enable = 856 + Ifc_Inout = 857 + Input_Clock = 858 + Input_Reset = 859 + Instance = 860 + Endinstance = 861 + Let = 862 + Match = 863 + Method = 864 + Endmethod = 865 + Numeric = 866 + Output_Clock = 867 + Output_Reset = 868 + Par = 869 + Endpar = 870 + Path = 871 + Provisos = 872 + Ready = 873 + Reset_By = 874 + Rule = 875 + Endrule = 876 + Rules = 877 + Endrules = 878 + Same_Family = 879 + Schedule = 880 + Seq = 881 + Endseq = 882 + Typeclass = 883 + Endtypeclass = 884 + Valueof = 885 + uValueof = 886 + Last_BSV = 886 + First_Comment = 887 + Psl = 887 + Pragma = 888 + Last_Comment = 888 + First_PSL = 889 + A = 889 + Af = 890 + Ag = 891 + Ax = 892 + Abort = 893 + Assume_Guarantee = 894 + Before = 895 + Clock = 896 + E = 897 + Ef = 898 + Eg = 899 + Ex = 900 + Endpoint = 901 + Eventually = 902 + Fairness = 903 + Fell = 904 + Forall = 905 + G = 906 + Inf = 907 + Inherit = 908 + Never = 909 + Next_A = 910 + Next_E = 911 + Next_Event = 912 + Next_Event_A = 913 + Next_Event_E = 914 + Prev = 915 + Restrict = 916 + Restrict_Guarantee = 917 + Rose = 918 + Strong = 919 + Vmode = 920 + Vprop = 921 + Vunit = 922 + W = 923 + Whilenot = 924 + Within = 925 + X = 926 + Last_PSL = 926 + First_Edif = 927 + Celltype = 937 + View = 938 + Viewtype = 939 + Direction = 940 + Contents = 941 + Net = 942 + Viewref = 943 + Cellref = 944 + Libraryref = 945 + Portinstance = 946 + Joined = 947 + Portref = 948 + Instanceref = 949 + Design = 950 + Designator = 951 + Owner = 952 + Member = 953 + Number = 954 + Rename = 955 + Userdata = 956 + Last_Edif = 956 diff --git a/python/libghdl/thin/vhdl/canon.py b/python/libghdl/thin/vhdl/canon.py new file mode 100644 index 000000000..48f421618 --- /dev/null +++ b/python/libghdl/thin/vhdl/canon.py @@ -0,0 +1,14 @@ +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 new file mode 100644 index 000000000..642598650 --- /dev/null +++ b/python/libghdl/thin/vhdl/elocations.py @@ -0,0 +1,62 @@ +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_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 new file mode 100644 index 000000000..6cdd39ff3 --- /dev/null +++ b/python/libghdl/thin/vhdl/flists.py @@ -0,0 +1,11 @@ +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 new file mode 100644 index 000000000..9c8bf9afb --- /dev/null +++ b/python/libghdl/thin/vhdl/formatters.py @@ -0,0 +1,14 @@ +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 new file mode 100644 index 000000000..d1192537d --- /dev/null +++ b/python/libghdl/thin/vhdl/ieee.py @@ -0,0 +1,21 @@ +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 new file mode 100644 index 000000000..8fc180073 --- /dev/null +++ b/python/libghdl/thin/vhdl/lists.py @@ -0,0 +1,33 @@ +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 new file mode 100644 index 000000000..61ff4d14e --- /dev/null +++ b/python/libghdl/thin/vhdl/nodes.py @@ -0,0 +1,2374 @@ +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 + Choice_By_Range = 25 + Choice_By_Expression = 26 + Choice_By_Others = 27 + Choice_By_None = 28 + Choice_By_Name = 29 + Entity_Aspect_Entity = 30 + Entity_Aspect_Configuration = 31 + Entity_Aspect_Open = 32 + Block_Configuration = 33 + Block_Header = 34 + Component_Configuration = 35 + Binding_Indication = 36 + Entity_Class = 37 + Attribute_Value = 38 + Signature = 39 + Aggregate_Info = 40 + Procedure_Call = 41 + Record_Element_Constraint = 42 + Array_Element_Resolution = 43 + Record_Resolution = 44 + Record_Element_Resolution = 45 + Attribute_Specification = 46 + Disconnection_Specification = 47 + Configuration_Specification = 48 + Access_Type_Definition = 49 + Incomplete_Type_Definition = 50 + Interface_Type_Definition = 51 + File_Type_Definition = 52 + Protected_Type_Declaration = 53 + Record_Type_Definition = 54 + Array_Type_Definition = 55 + Array_Subtype_Definition = 56 + Record_Subtype_Definition = 57 + Access_Subtype_Definition = 58 + Physical_Subtype_Definition = 59 + Floating_Subtype_Definition = 60 + Integer_Subtype_Definition = 61 + Enumeration_Subtype_Definition = 62 + Enumeration_Type_Definition = 63 + Integer_Type_Definition = 64 + Floating_Type_Definition = 65 + Physical_Type_Definition = 66 + Range_Expression = 67 + Protected_Type_Body = 68 + Wildcard_Type_Definition = 69 + Subtype_Definition = 70 + Scalar_Nature_Definition = 71 + Overload_List = 72 + Type_Declaration = 73 + Anonymous_Type_Declaration = 74 + Subtype_Declaration = 75 + Nature_Declaration = 76 + Subnature_Declaration = 77 + Entity_Declaration = 78 + Configuration_Declaration = 79 + Context_Declaration = 80 + Package_Declaration = 81 + Package_Instantiation_Declaration = 82 + Package_Body = 83 + Architecture_Body = 84 + Package_Header = 85 + Unit_Declaration = 86 + Library_Declaration = 87 + Component_Declaration = 88 + Attribute_Declaration = 89 + Group_Template_Declaration = 90 + Group_Declaration = 91 + Element_Declaration = 92 + Non_Object_Alias_Declaration = 93 + Psl_Declaration = 94 + Psl_Endpoint_Declaration = 95 + Terminal_Declaration = 96 + Free_Quantity_Declaration = 97 + Across_Quantity_Declaration = 98 + Through_Quantity_Declaration = 99 + Enumeration_Literal = 100 + Function_Declaration = 101 + Procedure_Declaration = 102 + Function_Body = 103 + Procedure_Body = 104 + Object_Alias_Declaration = 105 + File_Declaration = 106 + Guard_Signal_Declaration = 107 + Signal_Declaration = 108 + Variable_Declaration = 109 + Constant_Declaration = 110 + Iterator_Declaration = 111 + Interface_Constant_Declaration = 112 + Interface_Variable_Declaration = 113 + Interface_Signal_Declaration = 114 + Interface_File_Declaration = 115 + Interface_Type_Declaration = 116 + Interface_Package_Declaration = 117 + Interface_Function_Declaration = 118 + Interface_Procedure_Declaration = 119 + Signal_Attribute_Declaration = 120 + Identity_Operator = 121 + Negation_Operator = 122 + Absolute_Operator = 123 + Not_Operator = 124 + Implicit_Condition_Operator = 125 + Condition_Operator = 126 + Reduction_And_Operator = 127 + Reduction_Or_Operator = 128 + Reduction_Nand_Operator = 129 + Reduction_Nor_Operator = 130 + Reduction_Xor_Operator = 131 + Reduction_Xnor_Operator = 132 + And_Operator = 133 + Or_Operator = 134 + Nand_Operator = 135 + Nor_Operator = 136 + Xor_Operator = 137 + Xnor_Operator = 138 + Equality_Operator = 139 + Inequality_Operator = 140 + Less_Than_Operator = 141 + Less_Than_Or_Equal_Operator = 142 + Greater_Than_Operator = 143 + Greater_Than_Or_Equal_Operator = 144 + Match_Equality_Operator = 145 + Match_Inequality_Operator = 146 + Match_Less_Than_Operator = 147 + Match_Less_Than_Or_Equal_Operator = 148 + Match_Greater_Than_Operator = 149 + Match_Greater_Than_Or_Equal_Operator = 150 + Sll_Operator = 151 + Sla_Operator = 152 + Srl_Operator = 153 + Sra_Operator = 154 + Rol_Operator = 155 + Ror_Operator = 156 + Addition_Operator = 157 + Substraction_Operator = 158 + Concatenation_Operator = 159 + Multiplication_Operator = 160 + Division_Operator = 161 + Modulus_Operator = 162 + Remainder_Operator = 163 + Exponentiation_Operator = 164 + Function_Call = 165 + Aggregate = 166 + Parenthesis_Expression = 167 + Qualified_Expression = 168 + Type_Conversion = 169 + Allocator_By_Expression = 170 + Allocator_By_Subtype = 171 + Selected_Element = 172 + Dereference = 173 + Implicit_Dereference = 174 + Slice_Name = 175 + Indexed_Name = 176 + Psl_Expression = 177 + Sensitized_Process_Statement = 178 + Process_Statement = 179 + Concurrent_Simple_Signal_Assignment = 180 + Concurrent_Conditional_Signal_Assignment = 181 + Concurrent_Selected_Signal_Assignment = 182 + Concurrent_Assertion_Statement = 183 + Concurrent_Procedure_Call_Statement = 184 + Psl_Assert_Statement = 185 + Psl_Cover_Statement = 186 + Block_Statement = 187 + If_Generate_Statement = 188 + Case_Generate_Statement = 189 + For_Generate_Statement = 190 + Component_Instantiation_Statement = 191 + Psl_Default_Clock = 192 + Simple_Simultaneous_Statement = 193 + Generate_Statement_Body = 194 + If_Generate_Else_Clause = 195 + Simple_Signal_Assignment_Statement = 196 + Conditional_Signal_Assignment_Statement = 197 + Selected_Waveform_Assignment_Statement = 198 + Null_Statement = 199 + Assertion_Statement = 200 + Report_Statement = 201 + Wait_Statement = 202 + Variable_Assignment_Statement = 203 + Conditional_Variable_Assignment_Statement = 204 + Return_Statement = 205 + For_Loop_Statement = 206 + While_Loop_Statement = 207 + Next_Statement = 208 + Exit_Statement = 209 + Case_Statement = 210 + Procedure_Call_Statement = 211 + If_Statement = 212 + Elsif = 213 + Character_Literal = 214 + Simple_Name = 215 + Selected_Name = 216 + Operator_Symbol = 217 + Reference_Name = 218 + External_Constant_Name = 219 + External_Signal_Name = 220 + External_Variable_Name = 221 + Selected_By_All_Name = 222 + Parenthesis_Name = 223 + Package_Pathname = 224 + Absolute_Pathname = 225 + Relative_Pathname = 226 + Pathname_Element = 227 + Base_Attribute = 228 + Subtype_Attribute = 229 + Element_Attribute = 230 + Left_Type_Attribute = 231 + Right_Type_Attribute = 232 + High_Type_Attribute = 233 + Low_Type_Attribute = 234 + Ascending_Type_Attribute = 235 + Image_Attribute = 236 + Value_Attribute = 237 + Pos_Attribute = 238 + Val_Attribute = 239 + Succ_Attribute = 240 + Pred_Attribute = 241 + Leftof_Attribute = 242 + Rightof_Attribute = 243 + Delayed_Attribute = 244 + Stable_Attribute = 245 + Quiet_Attribute = 246 + Transaction_Attribute = 247 + Event_Attribute = 248 + Active_Attribute = 249 + Last_Event_Attribute = 250 + Last_Active_Attribute = 251 + Last_Value_Attribute = 252 + Driving_Attribute = 253 + Driving_Value_Attribute = 254 + Behavior_Attribute = 255 + Structure_Attribute = 256 + Simple_Name_Attribute = 257 + Instance_Name_Attribute = 258 + Path_Name_Attribute = 259 + Left_Array_Attribute = 260 + Right_Array_Attribute = 261 + High_Array_Attribute = 262 + Low_Array_Attribute = 263 + Length_Array_Attribute = 264 + Ascending_Array_Attribute = 265 + Range_Array_Attribute = 266 + Reverse_Range_Array_Attribute = 267 + Attribute_Name = 268 + + +class Iir_Kinds: + Variable_Assignment_Statement = [ + Iir_Kind.Variable_Assignment_Statement, + Iir_Kind.Conditional_Variable_Assignment_Statement] + + 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.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] + + 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.Entity_Declaration, + Iir_Kind.Configuration_Declaration, + Iir_Kind.Context_Declaration, + Iir_Kind.Package_Declaration, + Iir_Kind.Package_Instantiation_Declaration, + Iir_Kind.Package_Body, + Iir_Kind.Architecture_Body, + 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] + + 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] + + Process_Statement = [ + Iir_Kind.Sensitized_Process_Statement, + Iir_Kind.Process_Statement] + + Object_Declaration = [ + Iir_Kind.Object_Alias_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] + + 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] + + Primary_Unit = [ + Iir_Kind.Entity_Declaration, + Iir_Kind.Configuration_Declaration, + Iir_Kind.Context_Declaration, + Iir_Kind.Package_Declaration, + Iir_Kind.Package_Instantiation_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] + + Secondary_Unit = [ + Iir_Kind.Package_Body, + Iir_Kind.Architecture_Body] + + Package_Declaration = [ + Iir_Kind.Package_Declaration, + Iir_Kind.Package_Instantiation_Declaration] + + Dereference = [ + Iir_Kind.Dereference, + Iir_Kind.Implicit_Dereference] + + 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.Psl_Assert_Statement, + Iir_Kind.Psl_Cover_Statement] + + 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] + + 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] + + Specification = [ + Iir_Kind.Attribute_Specification, + Iir_Kind.Disconnection_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.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_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.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.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] + + 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.Psl_Assert_Statement, + Iir_Kind.Psl_Cover_Statement, + 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] + + Association_Element = [ + Iir_Kind.Association_Element_By_Expression, + Iir_Kind.Association_Element_By_Individual, + Iir_Kind.Association_Element_Open] + + Interface_Object_Declaration = [ + Iir_Kind.Interface_Constant_Declaration, + Iir_Kind.Interface_Variable_Declaration, + Iir_Kind.Interface_Signal_Declaration, + Iir_Kind.Interface_File_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] + + 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.Across_Quantity_Declaration, + Iir_Kind.Through_Quantity_Declaration] + + Physical_Literal = [ + Iir_Kind.Physical_Int_Literal, + Iir_Kind.Physical_Fp_Literal] + + 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.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.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] + + Denoting_Name = [ + Iir_Kind.Character_Literal, + Iir_Kind.Simple_Name, + Iir_Kind.Selected_Name, + Iir_Kind.Operator_Symbol, + Iir_Kind.Reference_Name] + + 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_Direction: + To = 0 + Downto = 1 + + +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 + PNone = 171 + Ieee_1164_Scalar_And = 172 + Ieee_1164_Scalar_Nand = 173 + Ieee_1164_Scalar_Or = 174 + Ieee_1164_Scalar_Nor = 175 + Ieee_1164_Scalar_Xor = 176 + Ieee_1164_Scalar_Xnor = 177 + Ieee_1164_Scalar_Not = 178 + Ieee_1164_Vector_And = 179 + Ieee_1164_Vector_Nand = 180 + Ieee_1164_Vector_Or = 181 + Ieee_1164_Vector_Nor = 182 + Ieee_1164_Vector_Xor = 183 + Ieee_1164_Vector_Xnor = 184 + Ieee_1164_Vector_Not = 185 + Ieee_Numeric_Std_Add_Uns_Uns = 186 + Ieee_Numeric_Std_Add_Uns_Nat = 187 + Ieee_Numeric_Std_Add_Nat_Uns = 188 + Ieee_Numeric_Std_Add_Sgn_Sgn = 189 + Ieee_Numeric_Std_Add_Sgn_Int = 190 + Ieee_Numeric_Std_Add_Int_Sgn = 191 + Ieee_Numeric_Std_Sub_Uns_Uns = 192 + Ieee_Numeric_Std_Sub_Uns_Nat = 193 + Ieee_Numeric_Std_Sub_Nat_Uns = 194 + Ieee_Numeric_Std_Sub_Sgn_Sgn = 195 + Ieee_Numeric_Std_Sub_Sgn_Int = 196 + Ieee_Numeric_Std_Sub_Int_Sgn = 197 + Ieee_Numeric_Std_Eq_Uns_Uns = 198 + Ieee_Numeric_Std_Eq_Uns_Nat = 199 + Ieee_Numeric_Std_Eq_Nat_Uns = 200 + Ieee_Numeric_Std_Eq_Sgn_Sgn = 201 + Ieee_Numeric_Std_Eq_Sgn_Int = 202 + Ieee_Numeric_Std_Eq_Int_Sgn = 203 + +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_Signal_List = libghdl.vhdl__nodes__get_signal_list + +Set_Signal_List = libghdl.vhdl__nodes__set_signal_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_Choice_Order = libghdl.vhdl__nodes__get_choice_order + +Set_Choice_Order = libghdl.vhdl__nodes__set_choice_order + +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_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 = libghdl.vhdl__nodes__get_nature + +Set_Nature = libghdl.vhdl__nodes__set_nature + +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_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_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_Base_Type = libghdl.vhdl__nodes__get_base_type + +Set_Base_Type = libghdl.vhdl__nodes__set_base_type + +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 = 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_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_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_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 = 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_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_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_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 = libghdl.vhdl__nodes__get_conditional_expression + +Set_Conditional_Expression = libghdl.vhdl__nodes__set_conditional_expression + +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_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_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_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_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_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 diff --git a/python/libghdl/thin/vhdl/nodes_meta.py b/python/libghdl/thin/vhdl/nodes_meta.py new file mode 100644 index 000000000..8d717732e --- /dev/null +++ b/python/libghdl/thin/vhdl/nodes_meta.py @@ -0,0 +1,1435 @@ +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 + File_Checksum_Id = 3 + Fp64 = 4 + Iir = 5 + Iir_All_Sensitized = 6 + Iir_Constraint = 7 + Iir_Delay_Mechanism = 8 + Iir_Direction = 9 + Iir_Flist = 10 + Iir_Index32 = 11 + Iir_Int32 = 12 + Iir_List = 13 + Iir_Mode = 14 + Iir_Predefined_Functions = 15 + Iir_Pure_State = 16 + Iir_Signal_Kind = 17 + Iir_Staticness = 18 + Int32 = 19 + Int64 = 20 + Name_Id = 21 + Number_Base_Type = 22 + PSL_NFA = 23 + PSL_Node = 24 + Source_File_Entry = 25 + Source_Ptr = 26 + String8_Id = 27 + Time_Stamp_Id = 28 + Token_Type = 29 + Tri_State_Type = 30 + + +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 + Signal_List = 45 + Designated_Entity = 46 + Formal = 47 + Actual = 48 + Actual_Conversion = 49 + Formal_Conversion = 50 + Whole_Association_Flag = 51 + Collapse_Signal_Flag = 52 + Artificial_Flag = 53 + Open_Flag = 54 + After_Drivers_Flag = 55 + We_Value = 56 + Time = 57 + Choice_Order = 58 + Associated_Expr = 59 + Associated_Block = 60 + Associated_Chain = 61 + Choice_Name = 62 + Choice_Expression = 63 + Choice_Range = 64 + Same_Alternative_Flag = 65 + Element_Type_Flag = 66 + Architecture = 67 + Block_Specification = 68 + Prev_Block_Configuration = 69 + Configuration_Item_Chain = 70 + Attribute_Value_Chain = 71 + Spec_Chain = 72 + Value_Chain = 73 + Attribute_Value_Spec_Chain = 74 + Entity_Name = 75 + Package = 76 + Package_Body = 77 + Instance_Package_Body = 78 + Need_Body = 79 + Macro_Expanded_Flag = 80 + Need_Instance_Bodies = 81 + Block_Configuration = 82 + Concurrent_Statement_Chain = 83 + Chain = 84 + Port_Chain = 85 + Generic_Chain = 86 + Type = 87 + Subtype_Indication = 88 + Discrete_Range = 89 + Type_Definition = 90 + Subtype_Definition = 91 + Incomplete_Type_Declaration = 92 + Interface_Type_Subprograms = 93 + Nature = 94 + Mode = 95 + Guarded_Signal_Flag = 96 + Signal_Kind = 97 + Base_Name = 98 + Interface_Declaration_Chain = 99 + Subprogram_Specification = 100 + Sequential_Statement_Chain = 101 + Subprogram_Body = 102 + Overload_Number = 103 + Subprogram_Depth = 104 + Subprogram_Hash = 105 + Impure_Depth = 106 + Return_Type = 107 + Implicit_Definition = 108 + Default_Value = 109 + Deferred_Declaration = 110 + Deferred_Declaration_Flag = 111 + Shared_Flag = 112 + Design_Unit = 113 + Block_Statement = 114 + Signal_Driver = 115 + Declaration_Chain = 116 + File_Logical_Name = 117 + File_Open_Kind = 118 + Element_Position = 119 + Use_Clause_Chain = 120 + Context_Reference_Chain = 121 + Selected_Name = 122 + Type_Declarator = 123 + Complete_Type_Definition = 124 + Incomplete_Type_Ref_Chain = 125 + Associated_Type = 126 + Enumeration_Literal_List = 127 + Entity_Class_Entry_Chain = 128 + Group_Constituent_List = 129 + Unit_Chain = 130 + Primary_Unit = 131 + Identifier = 132 + Label = 133 + Visible_Flag = 134 + Range_Constraint = 135 + Direction = 136 + Left_Limit = 137 + Right_Limit = 138 + Left_Limit_Expr = 139 + Right_Limit_Expr = 140 + Base_Type = 141 + Resolution_Indication = 142 + Record_Element_Resolution_Chain = 143 + Tolerance = 144 + Plus_Terminal = 145 + Minus_Terminal = 146 + Simultaneous_Left = 147 + Simultaneous_Right = 148 + Text_File_Flag = 149 + Only_Characters_Flag = 150 + Is_Character_Type = 151 + Type_Staticness = 152 + Constraint_State = 153 + Index_Subtype_List = 154 + Index_Subtype_Definition_List = 155 + Element_Subtype_Indication = 156 + Element_Subtype = 157 + Index_Constraint_List = 158 + Array_Element_Constraint = 159 + Elements_Declaration_List = 160 + Owned_Elements_Chain = 161 + Designated_Type = 162 + Designated_Subtype_Indication = 163 + Index_List = 164 + Reference = 165 + Nature_Declarator = 166 + Across_Type = 167 + Through_Type = 168 + Target = 169 + Waveform_Chain = 170 + Guard = 171 + Delay_Mechanism = 172 + Reject_Time_Expression = 173 + Sensitivity_List = 174 + Process_Origin = 175 + Package_Origin = 176 + Condition_Clause = 177 + Timeout_Clause = 178 + Postponed_Flag = 179 + Callees_List = 180 + Passive_Flag = 181 + Resolution_Function_Flag = 182 + Wait_State = 183 + All_Sensitized_State = 184 + Seen_Flag = 185 + Pure_Flag = 186 + Foreign_Flag = 187 + Resolved_Flag = 188 + Signal_Type_Flag = 189 + Has_Signal_Flag = 190 + Purity_State = 191 + Elab_Flag = 192 + Configuration_Mark_Flag = 193 + Configuration_Done_Flag = 194 + Index_Constraint_Flag = 195 + Hide_Implicit_Flag = 196 + Assertion_Condition = 197 + Report_Expression = 198 + Severity_Expression = 199 + Instantiated_Unit = 200 + Generic_Map_Aspect_Chain = 201 + Port_Map_Aspect_Chain = 202 + Configuration_Name = 203 + Component_Configuration = 204 + Configuration_Specification = 205 + Default_Binding_Indication = 206 + Default_Configuration_Declaration = 207 + Expression = 208 + Conditional_Expression = 209 + Allocator_Designated_Type = 210 + Selected_Waveform_Chain = 211 + Conditional_Waveform_Chain = 212 + Guard_Expression = 213 + Guard_Decl = 214 + Guard_Sensitivity_List = 215 + Signal_Attribute_Chain = 216 + Block_Block_Configuration = 217 + Package_Header = 218 + Block_Header = 219 + Uninstantiated_Package_Name = 220 + Uninstantiated_Package_Decl = 221 + Instance_Source_File = 222 + Generate_Block_Configuration = 223 + Generate_Statement_Body = 224 + Alternative_Label = 225 + Generate_Else_Clause = 226 + Condition = 227 + Else_Clause = 228 + Parameter_Specification = 229 + Parent = 230 + Loop_Label = 231 + Component_Name = 232 + Instantiation_List = 233 + Entity_Aspect = 234 + Default_Entity_Aspect = 235 + Binding_Indication = 236 + Named_Entity = 237 + Alias_Declaration = 238 + Referenced_Name = 239 + Expr_Staticness = 240 + Error_Origin = 241 + Operand = 242 + Left = 243 + Right = 244 + Unit_Name = 245 + Name = 246 + Group_Template_Name = 247 + Name_Staticness = 248 + Prefix = 249 + Signature_Prefix = 250 + External_Pathname = 251 + Pathname_Suffix = 252 + Pathname_Expression = 253 + In_Formal_Flag = 254 + Slice_Subtype = 255 + Suffix = 256 + Index_Subtype = 257 + Parameter = 258 + Attr_Chain = 259 + Signal_Attribute_Declaration = 260 + Actual_Type = 261 + Actual_Type_Definition = 262 + Association_Chain = 263 + Individual_Association_Chain = 264 + Subprogram_Association_Chain = 265 + Aggregate_Info = 266 + Sub_Aggregate_Info = 267 + Aggr_Dynamic_Flag = 268 + Aggr_Min_Length = 269 + Aggr_Low_Limit = 270 + Aggr_High_Limit = 271 + Aggr_Others_Flag = 272 + Aggr_Named_Flag = 273 + Aggregate_Expand_Flag = 274 + Association_Choices_Chain = 275 + Case_Statement_Alternative_Chain = 276 + Choice_Staticness = 277 + Procedure_Call = 278 + Implementation = 279 + Parameter_Association_Chain = 280 + Method_Object = 281 + Subtype_Type_Mark = 282 + Type_Conversion_Subtype = 283 + Type_Mark = 284 + File_Type_Mark = 285 + Return_Type_Mark = 286 + Has_Disconnect_Flag = 287 + Has_Active_Flag = 288 + Is_Within_Flag = 289 + Type_Marks_List = 290 + Implicit_Alias_Flag = 291 + Alias_Signature = 292 + Attribute_Signature = 293 + Overload_List = 294 + Simple_Name_Identifier = 295 + Simple_Name_Subtype = 296 + Protected_Type_Body = 297 + Protected_Type_Declaration = 298 + Use_Flag = 299 + End_Has_Reserved_Id = 300 + End_Has_Identifier = 301 + End_Has_Postponed = 302 + Has_Label = 303 + Has_Begin = 304 + Has_End = 305 + Has_Is = 306 + Has_Pure = 307 + Has_Body = 308 + Has_Parameter = 309 + Has_Component = 310 + Has_Identifier_List = 311 + Has_Mode = 312 + Has_Class = 313 + Suspend_Flag = 314 + Is_Ref = 315 + Is_Forward_Ref = 316 + Psl_Property = 317 + Psl_Sequence = 318 + Psl_Declaration = 319 + Psl_Expression = 320 + Psl_Boolean = 321 + PSL_Clock = 322 + PSL_NFA = 323 + PSL_Nbr_States = 324 + PSL_Clock_Sensitivity = 325 + PSL_EOS_Flag = 326 + + +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_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_Direction = libghdl.vhdl__nodes_meta__get_iir_direction + +Get_Iir_Flist = libghdl.vhdl__nodes_meta__get_iir_flist + +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_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_Signal_List =\ + libghdl.vhdl__nodes_meta__has_signal_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_Choice_Order =\ + libghdl.vhdl__nodes_meta__has_choice_order + +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_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 =\ + libghdl.vhdl__nodes_meta__has_nature + +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_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_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_Base_Type =\ + libghdl.vhdl__nodes_meta__has_base_type + +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 =\ + libghdl.vhdl__nodes_meta__has_plus_terminal + +Has_Minus_Terminal =\ + libghdl.vhdl__nodes_meta__has_minus_terminal + +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_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_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 =\ + 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_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_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_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 =\ + libghdl.vhdl__nodes_meta__has_conditional_expression + +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_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_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_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_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_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 diff --git a/python/libghdl/thin/vhdl/nodes_utils.py b/python/libghdl/thin/vhdl/nodes_utils.py new file mode 100644 index 000000000..8ea92969e --- /dev/null +++ b/python/libghdl/thin/vhdl/nodes_utils.py @@ -0,0 +1,14 @@ +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 new file mode 100644 index 000000000..c6fbb5259 --- /dev/null +++ b/python/libghdl/thin/vhdl/parse.py @@ -0,0 +1,7 @@ +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 new file mode 100644 index 000000000..28b4464f3 --- /dev/null +++ b/python/libghdl/thin/vhdl/pyutils.py @@ -0,0 +1,404 @@ +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 new file mode 100644 index 000000000..8cea66ba3 --- /dev/null +++ b/python/libghdl/thin/vhdl/scanner.py @@ -0,0 +1,23 @@ +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 new file mode 100644 index 000000000..df82435da --- /dev/null +++ b/python/libghdl/thin/vhdl/sem.py @@ -0,0 +1,3 @@ +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 new file mode 100644 index 000000000..28f7adc39 --- /dev/null +++ b/python/libghdl/thin/vhdl/sem_lib.py @@ -0,0 +1,5 @@ +from libghdl import libghdl + +Load_File = libghdl.vhdl__sem_lib__load_file + +Finish_Compilation = libghdl.vhdl__sem_lib__finish_compilation diff --git a/python/libghdl/thin/vhdl/std_package.py b/python/libghdl/thin/vhdl/std_package.py new file mode 100644 index 000000000..a9628ce89 --- /dev/null +++ b/python/libghdl/thin/vhdl/std_package.py @@ -0,0 +1,13 @@ +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 new file mode 100644 index 000000000..572c3906d --- /dev/null +++ b/python/libghdl/thin/vhdl/tokens.py @@ -0,0 +1,203 @@ + + +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 + Arobase = 58 + Star = 59 + Slash = 60 + Mod = 61 + Rem = 62 + Abs = 63 + Not = 64 + Access = 65 + After = 66 + Alias = 67 + All = 68 + Architecture = 69 + Array = 70 + Assert = 71 + Attribute = 72 + Begin = 73 + Block = 74 + Body = 75 + Buffer = 76 + Bus = 77 + Case = 78 + Component = 79 + Configuration = 80 + Constant = 81 + Disconnect = 82 + Downto = 83 + Else = 84 + Elsif = 85 + End = 86 + Entity = 87 + Exit = 88 + File = 89 + For = 90 + Function = 91 + Generate = 92 + Generic = 93 + Guarded = 94 + If = 95 + In = 96 + Inout = 97 + Is = 98 + Label = 99 + Library = 100 + Linkage = 101 + Loop = 102 + Map = 103 + New = 104 + Next = 105 + Null = 106 + Of = 107 + On = 108 + Open = 109 + Others = 110 + Out = 111 + Package = 112 + Port = 113 + Procedure = 114 + Process = 115 + Range = 116 + Record = 117 + Register = 118 + Report = 119 + Return = 120 + Select = 121 + Severity = 122 + Signal = 123 + Subtype = 124 + Then = 125 + To = 126 + Transport = 127 + Type = 128 + Units = 129 + Until = 130 + Use = 131 + Variable = 132 + Wait = 133 + When = 134 + While = 135 + With = 136 + And = 137 + Or = 138 + Xor = 139 + Nand = 140 + Nor = 141 + Xnor = 142 + Group = 143 + Impure = 144 + Inertial = 145 + Literal = 146 + Postponed = 147 + Pure = 148 + Reject = 149 + Shared = 150 + Unaffected = 151 + Sll = 152 + Sla = 153 + Sra = 154 + Srl = 155 + Rol = 156 + Ror = 157 + Protected = 158 + Context = 159 + Parameter = 160 + Across = 161 + Break = 162 + Limit = 163 + Nature = 164 + Noise = 165 + Procedural = 166 + Quantity = 167 + Reference = 168 + Spectrum = 169 + Subnature = 170 + Terminal = 171 + Through = 172 + Tolerance = 173 + Psl_Default = 174 + Psl_Clock = 175 + Psl_Property = 176 + Psl_Sequence = 177 + Psl_Endpoint = 178 + Psl_Cover = 179 + Psl_Const = 180 + Psl_Boolean = 181 + Inf = 182 + Within = 183 + Abort = 184 + Before = 185 + Before_Em = 186 + Before_Un = 187 + Before_Em_Un = 188 + Until_Em = 189 + Until_Un = 190 + Until_Em_Un = 191 + Always = 192 + Never = 193 + Eventually = 194 + Next_A = 195 + Next_E = 196 + Next_Event = 197 + Next_Event_A = 198 + Next_Event_E = 199 diff --git a/python/pnodes/pnodespy.py b/python/pnodes/pnodespy.py new file mode 100755 index 000000000..4a2859838 --- /dev/null +++ b/python/pnodes/pnodespy.py @@ -0,0 +1,251 @@ +#!/usr/bin/env python + +"""Like pnodes but output for python""" + +from __future__ import print_function +import sys +sys.path.append("../xtools") + +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)) + first = True + for e in v: + if first: + first = False + else: + print(',') + print(' Iir_Kind.{}'.format(e), end='') + 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_Direction', 'Iir_', 'Iir_Direction') + 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(""" +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() |