From e0468ef6f19af8f320db49004e875f482e606c28 Mon Sep 17 00:00:00 2001 From: albert-github Date: Tue, 17 Nov 2020 19:25:22 +0100 Subject: [PATCH] Redundant storage of `VhdlParser_adj.cc`, it can be regenerated The file `VhdlParser_adj.cc` is independent of the javacc program, it is just dependent on `VhdlParser.cc` (and `vhdl_adj.py`) and therefore can be regenerated at any time. It is better to regenerate it (and store it) into `generated_src ` in stead of in the repository. --- vhdlparser/CMakeLists.txt | 17 +- vhdlparser/VhdlParser_adj.cc | 11699 --------------------------------- 2 files changed, 9 insertions(+), 11707 deletions(-) delete mode 100644 vhdlparser/VhdlParser_adj.cc diff --git a/vhdlparser/CMakeLists.txt b/vhdlparser/CMakeLists.txt index 490d8abf529..0569118cc42 100644 --- a/vhdlparser/CMakeLists.txt +++ b/vhdlparser/CMakeLists.txt @@ -26,22 +26,23 @@ if (JAVACC_FOUND) OUTPUT ${PROJECT_SOURCE_DIR}/vhdlparser/CharStream.cc ${PROJECT_SOURCE_DIR}/vhdlparser/CharStream.h ${PROJECT_SOURCE_DIR}/vhdlparser/ErrorHandler.h ${PROJECT_SOURCE_DIR}/vhdlparser/ParseException.cc ${PROJECT_SOURCE_DIR}/vhdlparser/ParseException.h ${PROJECT_SOURCE_DIR}/vhdlparser/Token.cc ${PROJECT_SOURCE_DIR}/vhdlparser/Token.h ${PROJECT_SOURCE_DIR}/vhdlparser/TokenManager.h ${PROJECT_SOURCE_DIR}/vhdlparser/TokenMgrError.cc ${PROJECT_SOURCE_DIR}/vhdlparser/TokenMgrError.h ${PROJECT_SOURCE_DIR}/vhdlparser/VhdlParser.cc ${PROJECT_SOURCE_DIR}/vhdlparser/VhdlParser.h ${PROJECT_SOURCE_DIR}/vhdlparser/VhdlParserConstants.h ${PROJECT_SOURCE_DIR}/vhdlparser/VhdlParserTokenManager.cc ${PROJECT_SOURCE_DIR}/vhdlparser/VhdlParserTokenManager.h ) - add_custom_command( - COMMAND ${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/vhdlparser/vhdl_adj.py ${PROJECT_SOURCE_DIR}/vhdlparser/VhdlParser.cc ${PROJECT_SOURCE_DIR}/vhdlparser/VhdlParser_adj.cc - DEPENDS ${PROJECT_SOURCE_DIR}/vhdlparser/VhdlParser.cc ${PROJECT_SOURCE_DIR}/VhdlParser/vhdl_adj.py - OUTPUT ${PROJECT_SOURCE_DIR}/vhdlparser/VhdlParser_adj.cc - ) - endif() endif() -include_directories(${PROJECT_SOURCE_DIR}/src ${PROJECT_SOURCE_DIR}/qtools ${GENERATED_SRC}) +add_custom_command( + COMMAND ${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/vhdlparser/vhdl_adj.py ${PROJECT_SOURCE_DIR}/vhdlparser/VhdlParser.cc ${GENERATED_SRC}/VhdlParser_adj.cc + DEPENDS ${PROJECT_SOURCE_DIR}/vhdlparser/VhdlParser.cc ${PROJECT_SOURCE_DIR}/VhdlParser/vhdl_adj.py + OUTPUT ${GENERATED_SRC}/VhdlParser_adj.cc +) +set_source_files_properties(${GENERATED_SRC}/VhdlParser_adj.cc PROPERTIES GENERATED 1) + +include_directories(${PROJECT_SOURCE_DIR}/src ${PROJECT_SOURCE_DIR}/qtools ${PROJECT_SOURCE_DIR}/vhdlparser ${GENERATED_SRC}) add_library(vhdlparser STATIC CharStream.cc ParseException.cc Token.cc TokenMgrError.cc -VhdlParser_adj.cc +${GENERATED_SRC}/VhdlParser_adj.cc VhdlParserTokenManager.cc ) add_dependencies(vhdlparser diff --git a/vhdlparser/VhdlParser_adj.cc b/vhdlparser/VhdlParser_adj.cc deleted file mode 100644 index f68a12bc634..00000000000 --- a/vhdlparser/VhdlParser_adj.cc +++ /dev/null @@ -1,11699 +0,0 @@ -/* VhdlParser.cc */ -#include "VhdlParser.h" -#include "TokenMgrError.h" -namespace vhdl { -namespace parser { - unsigned int jj_la1_0[] = { -0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000,0x0,0x90404000,0x20080000,0x40000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x90004000,0x400000,0x0,0x90404000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20080000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40000,0x0,0x0,0x0,0x0,0x20000000,0x0,0x0,0x40000000,0x0,0x400000,0x400000,0x0,0x0,0x0,0x0,0x0,0x0,0x40020000,0x40020001,0x0,0x0,0x0,0x40000000,0xd0020000,0x0,0x0,0x800000,0x0,0x0,0x80004000,0x400000,0x0,0x0,0x80404000,0x0,0x0,0x0,0x0,0x8000,0x0,0x80000,0x0,0x0,0x0,0x0,0x0,0x0,0x10000,0x10000,0x0,0x10800,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10800,0x10000000,0x0,0x50000000,0x8000,0x80000000,0x0,0x80000000,0x80000000,0x4000000,0x8000000,0x0,0x0,0x20000,0x0,0x0,0x0,0x0,0x800,0x4000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80000000,0x0,0x0,0x0,0x0,0x80004000,0x0,0x80004000,0x0,0x0,0x0,0x0,0x0,0x0,0x90004000,0x400000,0x0,0x0,0x90404000,0x0,0x0,0x0,0x40000000,0x0,0x0,0x80004000,0x400000,0x0,0x80404000,0x0,0x0,0x0,0x0,0x0,0x0,0x20080000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10800,0x0,0x0,0x20000,0x0,0x0,0x8000,0x0,0x0,0x0,0x0,0x0,0x0,0x8000000,0x0,0x8000000,0x0,0x8000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80004000,0x400000,0x0,0x80404000,0x0,0x0,0x0,0x0,0x0,0x0,0x20080000,0x0,0x8000,0x0,0x0,0x41000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10800,0x2000,0x0,0x80004000,0x400000,0x0,0x80404000,0x0,0x400000,0x400000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x90c04000,0x20080000,0x0,0x0,0x80000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10800,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; - unsigned int jj_la1_1[] = { -0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x125808,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10000,0x0,0x0,0x1000,0x104800,0x1008,0x20000,0x125808,0x10000,0x0,0x0,0x0,0x0,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10000,0x1000,0x1000000,0x10000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000,0x20000,0x1000,0x0,0x4000000,0x1,0x0,0x400000,0x4000101,0x4000101,0x0,0x10,0x0,0x100,0x12024900,0x0,0x0,0x0,0x100,0x0,0x104800,0x8,0x20000,0x0,0x124808,0x0,0x10000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000000,0x0,0x200000,0x0,0x0,0x0,0x81000,0x0,0x0,0x0,0x0,0x0,0x40,0x20,0x0,0x0,0x0,0x0,0x0,0x100,0x0,0x800,0x0,0x0,0x0,0x8a00000,0x0,0x0,0x1000,0x0,0x0,0x0,0x1000,0x0,0x0,0x8a00000,0x80000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x800,0x40000,0x400000,0x0,0x0,0x104800,0x20000,0x124800,0x10000,0x10000,0x0,0x0,0x10000,0x10000,0x104800,0x8,0x20000,0x0,0x124808,0x0,0x0,0x0,0x100,0x1,0x0,0x104800,0x0,0x20000,0x124800,0x0,0x0,0x0,0x1000000,0x0,0x0,0x20081200,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x400000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4000,0x0,0x104000,0x1000000,0x1104800,0x0,0x20000,0x1124800,0x4000,0x0,0x100000,0x100000,0x0,0x104000,0x20081200,0x0,0x0,0x0,0x0,0x800,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000,0x0,0x0,0x0,0x0,0x1104800,0x0,0x20000,0x1124800,0x0,0x104000,0x104000,0x0,0x4000001,0x1,0x0,0x4000001,0x10000,0x10000,0x10000,0x0,0x0,0x125808,0x0,0x20,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x400000,0x20,0x0,0x200000,0x0,0x0,0x0,0x0,0x0,0x400000,0x0,0x200000,0x0,0x0,0x0,0x200000,0x0,0x20,0x104000,0x100000,0x100000,0x0,0x1000000,0x0,0x0,0x104000,}; - unsigned int jj_la1_2[] = { -0x0,0x100,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x110000,0x28000,0x0,0x20000000,0x0,0x0,0x0,0x200000,0x200000,0x0,0x0,0x0,0x4000,0x0,0x0,0x110000,0x0,0x0,0x110000,0x0,0x4000,0x4000,0x0,0x0,0x0,0x0,0x28000,0x0,0x0,0x0,0x0,0x400,0x0,0x4000,0x0,0x0,0x0,0x4000,0x0,0x4000,0x400000,0x8000,0x8000,0x8000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000000,0x1000000,0x1000,0x1000,0x0,0x0,0x0,0x100,0x11000,0x0,0x0,0x0,0x0,0x0,0x110000,0x0,0x0,0x1000,0x111000,0x0,0x0,0x4000,0x0,0x400,0x8000,0x28000,0x0,0x0,0x0,0x0,0x0,0x0,0x209,0x209,0x0,0x23b,0x100,0x100,0x800,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x23b,0x0,0x0,0x0,0x400,0x0,0x0,0x0,0x0,0x800,0x0,0x0,0x0,0x1000,0x20,0x0,0x0,0x0,0x10,0x800,0x10000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000000,0x1000,0x0,0x110000,0x0,0x110000,0x0,0x0,0x1000,0x0,0x0,0x0,0x110000,0x0,0x0,0x1000,0x111000,0x0,0x0,0x0,0x0,0x1000,0x0,0x110000,0x0,0x0,0x110000,0x0,0x8000,0x0,0x0,0x8000,0x0,0x20000024,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x23b,0x0,0x200000,0x1000,0x0,0x0,0x0,0x20,0xc0000000,0xc0000000,0x0,0x1000000,0x0,0x800000,0x0,0x800000,0x0,0x400,0x0,0x0,0x0,0x0,0x10000,0x0,0x110000,0x0,0x110000,0x0,0x0,0x110000,0x10000,0x0,0x100000,0x100000,0x0,0x110000,0x20000024,0x0,0x0,0x0,0x0,0x600000,0x80000,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x0,0x0,0x0,0x23b,0x0,0x0,0x110000,0x0,0x0,0x110000,0x0,0x110000,0x110000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x110000,0x28000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000000,0x0,0x0,0x800,0x23b,0x0,0x0,0x0,0x0,0x1000000,0x0,0x800,0x0,0x0,0x0,0x800,0x0,0x0,0x110000,0x100000,0x100000,0x0,0x0,0x2000,0x0,0x138000,}; - unsigned int jj_la1_3[] = { -0x0,0x0,0x0,0x0,0x40000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x188830,0x8000000,0x0,0x0,0x8,0x0,0x0,0x0,0x0,0x0,0x80000,0x0,0x0,0x80000,0x0,0x108830,0x80000,0x0,0x188830,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8000000,0x0,0x0,0x2000000,0x0,0x0,0x0,0x80000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8000000,0x0,0x0,0x2000000,0x0,0x0,0x80000,0x80000,0x0,0x0,0x80000,0x0,0x0,0x4000,0x80000,0x80000,0x0,0x2000,0x0,0x0,0x128810,0x0,0x0,0x0,0x0,0x0,0x108830,0x80000,0x0,0x0,0x188830,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2000000,0x30000000,0x30000000,0x0,0x30000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x30000000,0x0,0x0,0x0,0x0,0x108030,0x0,0x100030,0x100030,0x0,0x0,0x0,0x4000000,0x0,0x0,0x0,0x4000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2000000,0x0,0x0,0x108030,0x0,0x4000,0x0,0x0,0x188820,0x0,0x188820,0x0,0x0,0x0,0x0,0x0,0x0,0x108830,0x80000,0x0,0x0,0x188830,0x0,0x0,0x0,0x0,0x0,0x0,0x108820,0x80000,0x0,0x188820,0x0,0x0,0x0,0x0,0x0,0x0,0xd000001,0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x0,0x30000000,0x20000,0x0,0x0,0x0,0x0,0x0,0x0,0x3c0,0x3c0,0x0,0x4000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x108820,0x80000,0x0,0x188820,0x0,0x0,0x0,0x0,0x0,0x0,0xd000001,0x0,0x0,0x0,0x8000,0x0,0x0,0x0,0x0,0x8000000,0x20,0x0,0x0,0x0,0x40000,0x0,0x0,0x30010000,0x0,0x0,0x108820,0x80000,0x0,0x188820,0x0,0x80000,0x80000,0x0,0x80000,0x0,0x0,0x80000,0x0,0x0,0x0,0x2000000,0x0,0x188830,0x8000000,0x0,0x0,0x100010,0x0,0x0,0x0,0x0,0x0,0x4000,0x0,0x2000000,0x0,0x30000000,0x8000000,0x0,0x0,0x0,0x4000,0x0,0x0,0x0,0x0,0x0,0x0,0x2000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; - unsigned int jj_la1_4[] = { -0x0,0x0,0x0,0x20000,0x30,0x40,0x100,0x0,0x0,0x0,0x0,0x40000,0x0,0x40001,0x0,0x0,0x0,0x0,0x40,0x0,0x40000,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x1,0x0,0x0,0x40001,0x8000000,0x0,0x0,0x0,0x0,0x10000000,0x200,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40000,0x0,0x0,0x0,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x20000,0x40,0x0,0x0,0x40000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x40000,0x40000,0x40000,0x40000,0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x4,0x140001,0x0,0x0,0x0,0x40000,0x1,0x0,0x0,0x40000,0x40,0x0,0x40,0x0,0x0,0x0,0x0,0x40,0x140031,0x0,0x1,0x0,0x40000,0x0,0x200,0x0,0x0,0x0,0x0,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x4,0x0,0x40000008,0x40000,0x40,0x1,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40000,0x0,0x0,0x0,0x0,0x0,0x0,0x40000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40000,0x1,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x40001,0x1,0x40000,0x40000,0x7e0fc00,0x7e0fc00,0x0,0x0,0x0,0x140031,0x0,0x0,0x0,0x40,0x40,0x40000,0x0,0x0,0x0,0x30,0x0,0x40001,0x0,0x80,0x0,0x40,0x40000,0x40,0x40000,0x0,0x30,0x0,0x0,0x0,0x200,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x1,0x0,0x40001,0x40000,0x0,0x40001,0x0,0x1,0x0,0x40,0x40,0x40001,0x0,0x80,0x0,0x0,0x0,0x0,0x40,0x140031,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40001,0x0,0x0,0x0,0xa0000000,0x20000000,0x0,0x1,0x40001,0x0,0x0,0x0,0x0,0x140031,0x0,0x8000000,0x40000,0x8000000,0x0,0x8000000,0x0,0x240,0x240,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x20000,0x0,0x0,0x1,0x0,}; - unsigned int jj_la1_5[] = { -0x1420,0x0,0x180,0x0,0x0,0x0,0x0,0x2,0x3c0,0x0,0x0,0x1c0,0x0,0x200001c0,0x0,0x0,0x0,0x180,0x0,0x180,0x1c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x180,0x200001c0,0x0,0x180,0x0,0x180,0x180,0x0,0x0,0x0,0x0,0x0,0x0,0x180,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x20000000,0x0,0x0,0x1c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1c0,0x0,0x0,0x0,0x20000000,0x20000000,0x2,0x0,0x0,0x0,0x3c0,0x1c0,0x1c0,0x3c0,0x380,0x0,0x180,0x180,0x0,0x0,0x0,0x0,0x1017e0,0x0,0x0,0x0,0x1e0,0x0,0x180,0x0,0x3c0,0x0,0x180,0x0,0x180,0x0,0x0,0x180,0x0,0x1017e0,0x0,0x0,0x180,0x1c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x180,0x0,0x180,0x0,0x0,0x0,0x1c0,0x0,0x0,0x0,0x180,0x180,0x0,0x180,0x1420,0x0,0x0,0x0,0x0,0x1c0,0x0,0x0,0x0,0x0,0x0,0x0,0x1c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x180,0x1c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x180,0x0,0x0,0x0,0x0,0x180,0x1c0,0x0,0x1c0,0x1c0,0x0,0x0,0x180,0x0,0x180,0x1017e0,0x0,0x0,0x0,0x0,0x0,0x1c0,0x180,0x0,0x0,0x0,0x0,0x1c0,0x0,0x0,0x0,0x0,0x1c0,0x0,0x1c0,0x0,0x0,0x0,0x1c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1c0,0x1c0,0x240,0x1c0,0x0,0x0,0x0,0x0,0x0,0x1c0,0x0,0x0,0x180,0x0,0x0,0x0,0x0,0x1017e0,0x0,0x180,0x0,0x0,0x0,0x0,0x180,0x0,0x0,0x0,0x0,0x0,0x180,0x0,0x0,0x0,0x0,0x0,0x180,0x0,0x200001c0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x1c0,0x0,0x0,0x0,0x0,0x1017e0,0x0,0x0,0x1c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x180,0x0,0x0,0x0,0x180,}; - - /** Constructor with user supplied TokenManager. */ - - - - -QCString VhdlParser::abstract_literal() {Token *tok; - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case DECIMAL_LITERAL:{ - if (!hasError) { - tok = jj_consume_token(DECIMAL_LITERAL); - } - if (!hasError) { -return tok->image.c_str(); - } - break; - } - case INTEGER:{ - if (!hasError) { - tok = jj_consume_token(INTEGER); - } - if (!hasError) { -return tok->image.c_str(); - } - break; - } - case BASED_LITERAL:{ - if (!hasError) { - tok = jj_consume_token(BASED_LITERAL); - } - if (!hasError) { -return tok->image.c_str(); - } - break; - } - default: - jj_la1[0] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false);return ""; -} - - -QCString VhdlParser::access_type_definition() {Token *tok=0;QCString str,str1; - if (!hasError) { - tok = jj_consume_token(ACCESS_T); - } - if (!hasError) { - str1 = subtype_indication(); - } -str=tok->image.c_str(); return str+str1; -assert(false);return ""; -} - - -QCString VhdlParser::actual_designator() {QCString str;Token *t=0; - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case OPEN_T:{ - if (!hasError) { - t = jj_consume_token(OPEN_T); - } - if (!hasError) { -return t->image.c_str(); - } - break; - } - default: - jj_la1[1] = jj_gen; - if (jj_2_1(2147483647)) { - if (!hasError) { - str = expression(); - } - if (!hasError) { -return str; - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - str = identifier(); - } - if (!hasError) { -return str; - } - break; - } - default: - jj_la1[2] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } - } -assert(false);return ""; -} - - -QCString VhdlParser::actual_parameter_part() {QCString s; - if (!hasError) { - s = association_list(); - } -return s; -assert(false);return ""; -} - - -QCString VhdlParser::actual_part() {QCString s,s1; - if (jj_2_2(2147483647)) { - if (!hasError) { - s = actual_designator(); - } - if (!hasError) { -return s; - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BOX_T:{ - if (!hasError) { - jj_consume_token(BOX_T); - } - if (!hasError) { -return "<>"; - } - break; - } - default: - jj_la1[3] = jj_gen; - if (jj_2_3(2147483647)) { - if (!hasError) { - s = name(); - } - if (!hasError) { - jj_consume_token(LPAREN_T); - } - if (!hasError) { - s1 = actual_designator(); - } - if (!hasError) { - jj_consume_token(RPAREN_T); - } - if (!hasError) { -s+="(";s+=s1+")";return s; - } - } else { - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } - } -assert(false);return ""; -} - - -QCString VhdlParser::adding_operator() { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case PLUS_T:{ - if (!hasError) { - jj_consume_token(PLUS_T); - } - if (!hasError) { -return "+"; - } - break; - } - case MINUS_T:{ - if (!hasError) { - jj_consume_token(MINUS_T); - } - if (!hasError) { -return "-"; - } - break; - } - case AMPERSAND_T:{ - if (!hasError) { - jj_consume_token(AMPERSAND_T); - } - if (!hasError) { -return "&"; - } - break; - } - default: - jj_la1[4] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false);return ""; -} - - -QCString VhdlParser::aggregate() {QCString s,s1,s2; - if (!hasError) { - jj_consume_token(LPAREN_T); - } - if (!hasError) { - s = element_association(); - } - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case COMMA_T:{ - ; - break; - } - default: - jj_la1[5] = jj_gen; - goto end_label_1; - } - if (!hasError) { - jj_consume_token(COMMA_T); - } - if (!hasError) { - s1 = element_association(); - } - if (!hasError) { -s+=","+s1; - } - } - end_label_1: ; - } - if (!hasError) { - jj_consume_token(RPAREN_T); - } -return "("+s+")"; -assert(false);return ""; -} - - -QCString VhdlParser::alias_declaration() {QCString s,s1,s2; - if (!hasError) { - jj_consume_token(ALIAS_T); - } - if (!hasError) { - s2 = alias_designator(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case COLON_T:{ - if (!hasError) { - jj_consume_token(COLON_T); - } - if (!hasError) { -s+=":"; - } - if (!hasError) { - s1 = subtype_indication(); - } - if (!hasError) { -s+=s1; - } - break; - } - default: - jj_la1[6] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(IS_T); - } - if (!hasError) { -s+=" is "; - } - if (!hasError) { - s1 = name(); - } - if (!hasError) { -s+=s1; - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case LBRACKET_T:{ - if (!hasError) { - s1 = signature(); - } - if (!hasError) { -s+=s1; - } - break; - } - default: - jj_la1[7] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -outlineParser()->addVhdlType(s2.data(),outlineParser()->getLine(ALIAS_T),Entry::VARIABLE_SEC,VhdlDocGen::ALIAS,0,s.data(),Public); - - return s2+" "+s+";"; -assert(false);return ""; -} - - -QCString VhdlParser::alias_designator() {Token *tok=0;QCString s; - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - s = identifier(); - } - if (!hasError) { -return s; - } - break; - } - case CHARACTER_LITERAL:{ - if (!hasError) { - tok = jj_consume_token(CHARACTER_LITERAL); - } - if (!hasError) { -return tok->image.c_str(); - } - break; - } - case STRINGLITERAL:{ - if (!hasError) { - s = operator_symbol(); - } - if (!hasError) { -return s; - } - break; - } - default: - jj_la1[8] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false);return ""; -} - - -void VhdlParser::allocator() { - if (jj_2_4(3)) { - if (!hasError) { - jj_consume_token(NEW_T); - } - if (!hasError) { - qualified_expression(); - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case NEW_T:{ - if (!hasError) { - jj_consume_token(NEW_T); - } - if (!hasError) { - subtype_indication(); - } - break; - } - default: - jj_la1[9] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } -} - - -void VhdlParser::architecture_body() {QCString s,s1; - if (!hasError) { - jj_consume_token(ARCHITECTURE_T); - } - if (!hasError) { - s = identifier(); - } - if (!hasError) { - jj_consume_token(OF_T); - } - if (!hasError) { - s1 = name(); - } - if (!hasError) { - jj_consume_token(IS_T); - } - if (!hasError) { -QCString t=s1+"::"+s; - m_sharedState->genLabels.resize(0); - outlineParser()->pushLabel(m_sharedState->genLabels,s1); - m_sharedState->lastCompound=m_sharedState->current; - outlineParser()->addVhdlType(t,outlineParser()->getLine(ARCHITECTURE_T),Entry::CLASS_SEC,VhdlDocGen::ARCHITECTURE,0,0,Private); - } - if (!hasError) { - try { - if (!hasError) { - architecture_declarative_part(); - } - } catch ( ...) { -outlineParser()->error_skipto(BEGIN_T); - } - } - if (!hasError) { - jj_consume_token(BEGIN_T); - } - if (!hasError) { - architecture_statement_part(); - } - if (!hasError) { - jj_consume_token(END_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ARCHITECTURE_T:{ - if (!hasError) { - jj_consume_token(ARCHITECTURE_T); - } - break; - } - default: - jj_la1[10] = jj_gen; - ; - } - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case SLSL_T: - case STRINGLITERAL: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - name(); - } - break; - } - default: - jj_la1[11] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -m_sharedState->lastEntity=0;m_sharedState->lastCompound=0; m_sharedState->genLabels.resize(0); -} - - -void VhdlParser::architecture_declarative_part() { - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ALIAS_T: - case ATTRIBUTE_T: - case COMPONENT_T: - case CONSTANT_T: - case DISCONNECT_T: - case FILE_T: - case FOR_T: - case FUNCTION_T: - case GROUP_T: - case IMPURE_T: - case PROCEDURE_T: - case PURE_T: - case SIGNAL_T: - case SHARED_T: - case SUBTYPE_T: - case TYPE_T: - case USE_T: - case VARIABLE_T:{ - ; - break; - } - default: - jj_la1[12] = jj_gen; - goto end_label_2; - } - if (!hasError) { - block_declarative_item(); - } - } - end_label_2: ; - } -} - - -void VhdlParser::architecture_statement_part() { - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ASSERT_T: - case CASE_T: - case POSTPONED_T: - case PROCESS_T: - case WITH_T: - case LPAREN_T: - case SLSL_T: - case STRINGLITERAL: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER: - case VHDL2008TOOLDIR:{ - ; - break; - } - default: - jj_la1[13] = jj_gen; - goto end_label_3; - } - if (!hasError) { - concurrent_statement(); - } - } - end_label_3: ; - } -} - - -QCString VhdlParser::array_type_definition() {QCString s; - if (jj_2_5(2147483647)) { - if (!hasError) { - s = constraint_array_definition(); - } - if (!hasError) { -return s; - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ARRAY_T:{ - if (!hasError) { - s = unconstraint_array_definition(); - } - if (!hasError) { -return s; - } - break; - } - default: - jj_la1[14] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } -assert(false);return ""; -} - - -QCString VhdlParser::assertion() {QCString s,s1,s2;Token *t=0;Token *t1=0; - if (!hasError) { - jj_consume_token(ASSERT_T); - } - if (!hasError) { - s = condition(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case REPORT_T:{ - if (!hasError) { - t = jj_consume_token(REPORT_T); - } - if (!hasError) { - s1 = expression(); - } - break; - } - default: - jj_la1[15] = jj_gen; - ; - } - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case SEVERITY_T:{ - if (!hasError) { - t1 = jj_consume_token(SEVERITY_T); - } - if (!hasError) { - s2 = expression(); - } - break; - } - default: - jj_la1[16] = jj_gen; - ; - } - } -s.prepend("assert "); - if(t) s1.prepend(" report "); - if(t1) s2.prepend(" report "); - return s+s1+s2; -assert(false);return ""; -} - - -QCString VhdlParser::assertion_statement() {QCString s,s1,s2;Token *t=0; - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - s = label(); - } - if (!hasError) { - t = jj_consume_token(COLON_T); - } - break; - } - default: - jj_la1[17] = jj_gen; - ; - } - } - if (!hasError) { - s1 = assertion(); - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -if(t) s+=":"; - return s+s1+";"; -assert(false);return ""; -} - - -QCString VhdlParser::association_element() {QCString s,s1; - if (!hasError) { - if (jj_2_6(2147483647)) { - if (!hasError) { - s = formal_part(); - } - if (!hasError) { - jj_consume_token(ARROW_T); - } - } else { - ; - } - } - if (!hasError) { - s1 = actual_part(); - } -return s+" => "+s1; -assert(false);return ""; -} - - -QCString VhdlParser::association_list() {QCString s,s1; - if (!hasError) { - s = association_element(); - } - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case COMMA_T:{ - ; - break; - } - default: - jj_la1[18] = jj_gen; - goto end_label_4; - } - if (!hasError) { - jj_consume_token(COMMA_T); - } - if (!hasError) { - s1 = association_element(); - } - if (!hasError) { -s+=","+s1; - } - } - end_label_4: ; - } -return s; -assert(false);return ""; -} - - -QCString VhdlParser::attribute_declaration() {QCString s,s1; - if (!hasError) { - jj_consume_token(ATTRIBUTE_T); - } - if (!hasError) { - s = identifier(); - } - if (!hasError) { - jj_consume_token(COLON_T); - } - if (!hasError) { - s1 = type_mark(); - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(ATTRIBUTE_T),Entry::VARIABLE_SEC,VhdlDocGen::ATTRIBUTE,0,s1.data(),Public); - return " attribute "+s+":"+s1+";"; -assert(false);return ""; -} - - -QCString VhdlParser::attribute_designator() {QCString s;Token *tok=0; - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - s = identifier(); - } - if (!hasError) { -return s; - } - break; - } - case RANGE_T:{ - if (!hasError) { - tok = jj_consume_token(RANGE_T); - } - if (!hasError) { -return tok->image.c_str(); - } - break; - } - default: - jj_la1[19] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false);return ""; -} - - -QCString VhdlParser::attribute_name() {QCString s,s1; - if (!hasError) { - s = identifier(); - } - if (!hasError) { - jj_consume_token(APOSTROPHE_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case RANGE_T:{ - if (!hasError) { - jj_consume_token(RANGE_T); - } - break; - } - case SLSL_T: - case STRINGLITERAL: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - s1 = name(); - } - break; - } - default: - jj_la1[20] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } - if (!hasError) { -s+=s1; - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case LPAREN_T:{ - if (!hasError) { - jj_consume_token(LPAREN_T); - } - if (!hasError) { - s1 = expression(); - } - if (!hasError) { - jj_consume_token(RPAREN_T); - } - if (!hasError) { -s+=s1; - } - break; - } - default: - jj_la1[21] = jj_gen; - ; - } - } -return s; -assert(false);return ""; -} - - -QCString VhdlParser::attribute_specification() {QCString s,s1,s2; - if (!hasError) { - jj_consume_token(ATTRIBUTE_T); - } - if (!hasError) { - s = attribute_designator(); - } - if (!hasError) { - jj_consume_token(OF_T); - } - if (!hasError) { - s1 = entity_specification(); - } - if (!hasError) { - jj_consume_token(IS_T); - } - if (!hasError) { - s2 = expression(); - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -QCString t= s1+" is "+s2; - outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(ATTRIBUTE_T),Entry::VARIABLE_SEC,VhdlDocGen::ATTRIBUTE,0,t.data(),Public); - return " attribute "+s+" of "+s1+ " is "+s2+";"; -assert(false);return ""; -} - - -QCString VhdlParser::base() {Token *tok=0; - if (!hasError) { - tok = jj_consume_token(INTEGER); - } -return tok->image.c_str(); -assert(false);return ""; -} - - -QCString VhdlParser::base_specifier() {Token *tok=0; - if (!hasError) { - tok = jj_consume_token(BASIC_IDENTIFIER); - } -return tok->image.c_str(); -assert(false);return ""; -} - - -QCString VhdlParser::base_unit_declaration() {QCString s; - if (!hasError) { - s = identifier(); - } -return s; -assert(false);return ""; -} - - -QCString VhdlParser::based_integer() {Token *tok=0; - if (!hasError) { - tok = jj_consume_token(BASIC_IDENTIFIER); - } -return tok->image.c_str(); -assert(false);return ""; -} - - -QCString VhdlParser::based_literal() {Token *tok=0; - if (!hasError) { - tok = jj_consume_token(BASED_LITERAL); - } -return tok->image.c_str(); -assert(false);return ""; -} - - -QCString VhdlParser::basic_identifier() {Token *tok=0; - if (!hasError) { - tok = jj_consume_token(BASIC_IDENTIFIER); - } -return tok->image.c_str(); -assert(false);return ""; -} - - -void VhdlParser::binding_indication() { - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case USE_T:{ - if (!hasError) { - jj_consume_token(USE_T); - } - if (!hasError) { - entity_aspect(); - } - break; - } - default: - jj_la1[22] = jj_gen; - ; - } - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case GENERIC_T:{ - if (!hasError) { - generic_map_aspect(); - } - break; - } - default: - jj_la1[23] = jj_gen; - ; - } - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case PORT_T:{ - if (!hasError) { - port_map_aspect(); - } - break; - } - default: - jj_la1[24] = jj_gen; - ; - } - } -} - - -QCString VhdlParser::bit_string_literal() {Token *tok=0; - if (!hasError) { - tok = jj_consume_token(BIT_STRING_LITERAL); - } -return tok->image.c_str(); -assert(false);return ""; -} - - -QCString VhdlParser::bit_value() {Token *tok=0; - if (!hasError) { - tok = jj_consume_token(BASIC_IDENTIFIER); - } -return tok->image.c_str(); -assert(false);return ""; -} - - -void VhdlParser::block_configuration() { - if (!hasError) { - jj_consume_token(FOR_T); - } - if (!hasError) { - block_specification(); - } - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case USE_T:{ - ; - break; - } - default: - jj_la1[25] = jj_gen; - goto end_label_5; - } - if (!hasError) { - use_clause(); - } - } - end_label_5: ; - } - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case FOR_T:{ - ; - break; - } - default: - jj_la1[26] = jj_gen; - goto end_label_6; - } - if (!hasError) { - configuration_item(); - } - } - end_label_6: ; - } - if (!hasError) { - jj_consume_token(END_T); - } - if (!hasError) { - jj_consume_token(FOR_T); - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -} - - -void VhdlParser::block_declarative_item() { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case FUNCTION_T: - case IMPURE_T: - case PROCEDURE_T: - case PURE_T:{ - if (!hasError) { - subprogram_declaration(); - } - break; - } - case TYPE_T:{ - if (!hasError) { - type_declaration(); - } - break; - } - case SUBTYPE_T:{ - if (!hasError) { - subtype_declaration(); - } - break; - } - case CONSTANT_T:{ - if (!hasError) { - constant_declaration(); - } - break; - } - case SIGNAL_T:{ - if (!hasError) { - signal_declaration(); - } - break; - } - case SHARED_T: - case VARIABLE_T:{ - if (!hasError) { - variable_declaration(); - } - break; - } - case FILE_T:{ - if (!hasError) { - file_declaration(); - } - break; - } - case ALIAS_T:{ - if (!hasError) { - alias_declaration(); - } - break; - } - case COMPONENT_T:{ - if (!hasError) { - component_declaration(); - } - break; - } - default: - jj_la1[27] = jj_gen; - if (jj_2_7(2147483647)) { - if (!hasError) { - attribute_declaration(); - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ATTRIBUTE_T:{ - if (!hasError) { - attribute_specification(); - } - break; - } - case FOR_T:{ - if (!hasError) { - configuration_specification(); - } - break; - } - case DISCONNECT_T:{ - if (!hasError) { - disconnection_specification(); - } - break; - } - case USE_T:{ - if (!hasError) { - use_clause(); - } - break; - } - default: - jj_la1[28] = jj_gen; - if (jj_2_8(3)) { - if (!hasError) { - group_template_declaration(); - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case GROUP_T:{ - if (!hasError) { - group_declaration(); - } - break; - } - default: - jj_la1[29] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } - } - } - } -} - - -void VhdlParser::block_declarative_part() { - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ALIAS_T: - case ATTRIBUTE_T: - case COMPONENT_T: - case CONSTANT_T: - case DISCONNECT_T: - case FILE_T: - case FOR_T: - case FUNCTION_T: - case GROUP_T: - case IMPURE_T: - case PROCEDURE_T: - case PURE_T: - case SIGNAL_T: - case SHARED_T: - case SUBTYPE_T: - case TYPE_T: - case USE_T: - case VARIABLE_T:{ - ; - break; - } - default: - jj_la1[30] = jj_gen; - goto end_label_7; - } - if (!hasError) { - block_declarative_item(); - } - } - end_label_7: ; - } -} - - -void VhdlParser::block_header() { - if (!hasError) { - if (jj_2_9(2147483647)) { - if (!hasError) { - generic_clause(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case GENERIC_T:{ - if (!hasError) { - generic_map_aspect(); - } - if (!hasError) { - jj_consume_token(SEMI_T); - } - break; - } - default: - jj_la1[31] = jj_gen; - ; - } - } - } else { - ; - } - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case PORT_T:{ - if (!hasError) { - port_clause(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case PORT_T:{ - if (!hasError) { - port_map_aspect(); - } - if (!hasError) { - jj_consume_token(SEMI_T); - } - break; - } - default: - jj_la1[32] = jj_gen; - ; - } - } - break; - } - default: - jj_la1[33] = jj_gen; - ; - } - } -} - - -void VhdlParser::block_specification() { - if (!hasError) { - name(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case LPAREN_T:{ - if (!hasError) { - jj_consume_token(LPAREN_T); - } - if (!hasError) { - index_specification(); - } - if (!hasError) { - jj_consume_token(RPAREN_T); - } - break; - } - default: - jj_la1[34] = jj_gen; - ; - } - } -} - - -void VhdlParser::block_statement() {QCString s; - if (!hasError) { - s = identifier(); - } - if (!hasError) { - jj_consume_token(COLON_T); - } - if (!hasError) { - jj_consume_token(BLOCK_T); - } - if (!hasError) { -outlineParser()->pushLabel(m_sharedState->genLabels,s); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case LPAREN_T:{ - if (!hasError) { - jj_consume_token(LPAREN_T); - } - if (!hasError) { - expression(); - } - if (!hasError) { - jj_consume_token(RPAREN_T); - } - break; - } - default: - jj_la1[35] = jj_gen; - ; - } - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case IS_T:{ - if (!hasError) { - jj_consume_token(IS_T); - } - break; - } - default: - jj_la1[36] = jj_gen; - ; - } - } - if (!hasError) { - block_header(); - } - if (!hasError) { - block_declarative_part(); - } - if (!hasError) { - jj_consume_token(BEGIN_T); - } - if (!hasError) { - block_statement_part(); - } - if (!hasError) { - jj_consume_token(END_T); - } - if (!hasError) { - jj_consume_token(BLOCK_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - identifier(); - } - break; - } - default: - jj_la1[37] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -m_sharedState->genLabels=outlineParser()->popLabel(m_sharedState->genLabels); -} - - -void VhdlParser::block_statement_part() { - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ASSERT_T: - case CASE_T: - case POSTPONED_T: - case PROCESS_T: - case WITH_T: - case LPAREN_T: - case SLSL_T: - case STRINGLITERAL: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER: - case VHDL2008TOOLDIR:{ - ; - break; - } - default: - jj_la1[38] = jj_gen; - goto end_label_8; - } - if (!hasError) { - concurrent_statement(); - } - } - end_label_8: ; - } -} - - -void VhdlParser::case_statement() {QCString s; - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - identifier(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case Q_T:{ - if (!hasError) { - jj_consume_token(Q_T); - } - break; - } - default: - jj_la1[39] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(COLON_T); - } - break; - } - default: - jj_la1[40] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(CASE_T); - } - if (!hasError) { - s = expression(); - } - if (!hasError) { -QCString ca="case "+s; - FlowChart::addFlowChart(FlowChart::CASE_NO,0,ca); - } - if (!hasError) { - jj_consume_token(IS_T); - } - if (!hasError) { - case_statement_alternative(); - } - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case WHEN_T:{ - ; - break; - } - default: - jj_la1[41] = jj_gen; - goto end_label_9; - } - if (!hasError) { - case_statement_alternative(); - } - } - end_label_9: ; - } - if (!hasError) { - jj_consume_token(END_T); - } - if (!hasError) { - jj_consume_token(CASE_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - identifier(); - } - break; - } - default: - jj_la1[42] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -FlowChart::moveToPrevLevel(); - FlowChart::addFlowChart(FlowChart::END_CASE,"end case",0); -} - - -void VhdlParser::case_statement_alternative() {QCString s; - if (!hasError) { - jj_consume_token(WHEN_T); - } - if (!hasError) { - s = choices(); - } - if (!hasError) { - jj_consume_token(ARROW_T); - } - if (!hasError) { -QCString t="when "; - t+=s+"=> "; - FlowChart::addFlowChart(FlowChart::WHEN_NO,s.data(),t); - } - if (!hasError) { - sequence_of_statement(); - } -FlowChart::moveToPrevLevel(); -} - - -QCString VhdlParser::character_literal() {Token *tok=0; - if (!hasError) { - tok = jj_consume_token(CHARACTER_LITERAL); - } -return tok->image.c_str(); -assert(false);return ""; -} - - -QCString VhdlParser::choice() {QCString s; - if (jj_2_10(2147483647)) { - if (!hasError) { - s = range(); - } - if (!hasError) { -return s; - } - } else if (jj_2_11(2147483647)) { - if (!hasError) { - s = simple_expression(); - } - if (!hasError) { -return s; - } - } else if (jj_2_12(2147483647)) { - if (!hasError) { - s = discrete_range(); - } - if (!hasError) { -return s; - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - s = identifier(); - } - if (!hasError) { -return s; - } - break; - } - case OTHER_T:{ - if (!hasError) { - jj_consume_token(OTHER_T); - } - if (!hasError) { -return " others "; - } - break; - } - default: - jj_la1[43] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } -assert(false);return ""; -} - - -QCString VhdlParser::choices() {QCString s,s1; - if (!hasError) { - s = choice(); - } - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BAR_T:{ - ; - break; - } - default: - jj_la1[44] = jj_gen; - goto end_label_10; - } - if (!hasError) { - jj_consume_token(BAR_T); - } - if (!hasError) { - s1 = choice(); - } - if (!hasError) { -s+="|";s+=s1; - } - } - end_label_10: ; - } -return s; -assert(false);return ""; -} - - -void VhdlParser::component_configuration() { - if (!hasError) { - jj_consume_token(FOR_T); - } - if (!hasError) { - component_specification(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case GENERIC_T: - case PORT_T: - case USE_T: - case SEMI_T:{ - if (!hasError) { - binding_indication(); - } - if (!hasError) { - jj_consume_token(SEMI_T); - } - break; - } - default: - jj_la1[45] = jj_gen; - ; - } - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case FOR_T:{ - if (!hasError) { - block_configuration(); - } - break; - } - default: - jj_la1[46] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(END_T); - } - if (!hasError) { - jj_consume_token(FOR_T); - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -} - - -void VhdlParser::component_declaration() {QCString s; - if (!hasError) { - jj_consume_token(COMPONENT_T); - } - if (!hasError) { - s = identifier(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case IS_T:{ - if (!hasError) { - jj_consume_token(IS_T); - } - break; - } - default: - jj_la1[47] = jj_gen; - ; - } - } - if (!hasError) { -m_sharedState->currP=VhdlDocGen::COMPONENT; - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case GENERIC_T:{ - if (!hasError) { - generic_clause(); - } - break; - } - default: - jj_la1[48] = jj_gen; - ; - } - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case PORT_T:{ - if (!hasError) { - port_clause(); - } - break; - } - default: - jj_la1[49] = jj_gen; - ; - } - } - if (!hasError) { -outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(COMPONENT_T),Entry::VARIABLE_SEC,VhdlDocGen::COMPONENT,0,0,Public); - m_sharedState->currP=0; - } - if (!hasError) { - jj_consume_token(END_T); - } - if (!hasError) { - jj_consume_token(COMPONENT_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - identifier(); - } - break; - } - default: - jj_la1[50] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -} - - -void VhdlParser::component_instantiation_statement() {QCString s,s1; - if (!hasError) { - s = identifier(); - } - if (!hasError) { - jj_consume_token(COLON_T); - } - if (!hasError) { - s1 = instantiation_unit(); - } - if (!hasError) { -QCString s3; - if (s1.contains("|")) { - s3=VhdlDocGen::getIndexWord(s1.data(),0); - s1=VhdlDocGen::getIndexWord(s1.data(),1); - } - - outlineParser()->addCompInst(s.lower().data(),s1.lower().data(),s3.data(),outlineParser()->getLine()); - } - if (!hasError) { - if (jj_2_13(2147483647)) { - if (!hasError) { - generic_map_aspect(); - } - } else { - ; - } - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case PORT_T:{ - if (!hasError) { - port_map_aspect(); - } - break; - } - default: - jj_la1[51] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -} - - -void VhdlParser::component_specification() { - if (!hasError) { - instantiation_list(); - } - if (!hasError) { - jj_consume_token(COLON_T); - } - if (!hasError) { - name(); - } -} - - -QCString VhdlParser::composite_type_definition() {QCString s,s1; - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ARRAY_T:{ - if (!hasError) { - s = array_type_definition(); - } - if (!hasError) { -return s; - } - break; - } - case RECORD_T:{ - if (!hasError) { - record_type_definition(); - } - if (!hasError) { -return s+"#"; - } - break; - } - default: - jj_la1[52] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false);return ""; -} - - -void VhdlParser::concurrent_assertion_statement() { - if (!hasError) { - if (jj_2_14(2)) { - if (!hasError) { - identifier(); - } - if (!hasError) { - jj_consume_token(COLON_T); - } - } else { - ; - } - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case POSTPONED_T:{ - if (!hasError) { - jj_consume_token(POSTPONED_T); - } - break; - } - default: - jj_la1[53] = jj_gen; - ; - } - } - if (!hasError) { - assertion(); - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -} - - -void VhdlParser::concurrent_procedure_call_statement() { - if (!hasError) { - if (jj_2_15(2)) { - if (!hasError) { - identifier(); - } - if (!hasError) { - jj_consume_token(COLON_T); - } - } else { - ; - } - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case POSTPONED_T:{ - if (!hasError) { - jj_consume_token(POSTPONED_T); - } - break; - } - default: - jj_la1[54] = jj_gen; - ; - } - } - if (!hasError) { - procedure_call(); - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -} - - -void VhdlParser::concurrent_signal_assignment_statement() { - if (!hasError) { - if (jj_2_16(2)) { - if (!hasError) { - identifier(); - } - if (!hasError) { - jj_consume_token(COLON_T); - } - } else { - ; - } - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case POSTPONED_T:{ - if (!hasError) { - jj_consume_token(POSTPONED_T); - } - break; - } - default: - jj_la1[55] = jj_gen; - ; - } - } - if (!hasError) { - if (jj_2_17(2147483647)) { - if (!hasError) { - conditional_signal_assignment(); - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case WITH_T:{ - if (!hasError) { - selected_signal_assignment(); - } - break; - } - default: - jj_la1[56] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } - } -} - - -void VhdlParser::concurrent_statement() { - if (jj_2_18(2147483647)) { - if (!hasError) { - block_statement(); - } - } else if (jj_2_19(2147483647)) { - if (!hasError) { - process_statement(); - } - } else if (jj_2_20(3)) { - if (!hasError) { - generate_statement(); - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case CASE_T:{ - if (!hasError) { - case_scheme(); - } - break; - } - default: - jj_la1[57] = jj_gen; - if (jj_2_21(2147483647)) { - if (!hasError) { - concurrent_assertion_statement(); - } - } else if (jj_2_22(2147483647)) { - if (!hasError) { - concurrent_signal_assignment_statement(); - } - } else if (jj_2_23(2147483647)) { - if (!hasError) { - component_instantiation_statement(); - } - } else if (jj_2_24(2147483647)) { - if (!hasError) { - concurrent_procedure_call_statement(); - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case VHDL2008TOOLDIR:{ - if (!hasError) { - jj_consume_token(VHDL2008TOOLDIR); - } - break; - } - default: - jj_la1[58] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } - } - } -} - - -QCString VhdlParser::condition() {QCString s; - if (!hasError) { - s = expression(); - } -return s; -assert(false);return ""; -} - - -QCString VhdlParser::condition_clause() {QCString s; - if (!hasError) { - jj_consume_token(UNTIL_T); - } - if (!hasError) { - s = condition(); - } -return " until "+s; -assert(false);return ""; -} - - -void VhdlParser::conditional_signal_assignment() { - if (!hasError) { - target(); - } - if (!hasError) { - jj_consume_token(LESSTHAN_T); - } - if (!hasError) { - options(); - } - if (!hasError) { - conditional_waveforms(); - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -} - - -void VhdlParser::conditional_waveforms() { - if (!hasError) { - waveform(); - } - if (!hasError) { - while (!hasError) { - if (jj_2_25(2147483647)) { - ; - } else { - goto end_label_11; - } - if (!hasError) { - jj_consume_token(WHEN_T); - } - if (!hasError) { - condition(); - } - if (!hasError) { - jj_consume_token(ELSE_T); - } - if (!hasError) { - waveform(); - } - } - end_label_11: ; - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case WHEN_T:{ - if (!hasError) { - jj_consume_token(WHEN_T); - } - if (!hasError) { - condition(); - } - break; - } - default: - jj_la1[59] = jj_gen; - ; - } - } -} - - -void VhdlParser::configuration_declaration() {QCString s,s1; - if (!hasError) { - jj_consume_token(CONFIGURATION_T); - } - if (!hasError) { - s = identifier(); - } - if (!hasError) { - jj_consume_token(OF_T); - } - if (!hasError) { - s1 = name(); - } - if (!hasError) { - jj_consume_token(IS_T); - } - if (!hasError) { -m_sharedState->confName=s+"::"+s1; - outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(CONFIGURATION_T),Entry::VARIABLE_SEC,VhdlDocGen::CONFIG,"configuration",s1.data(),Public); - } - if (!hasError) { - configuration_declarative_part(); - } - if (!hasError) { - block_configuration(); - } - if (!hasError) { - jj_consume_token(END_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case CONFIGURATION_T:{ - if (!hasError) { - jj_consume_token(CONFIGURATION_T); - } - break; - } - default: - jj_la1[60] = jj_gen; - ; - } - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case SLSL_T: - case STRINGLITERAL: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - name(); - } - break; - } - default: - jj_la1[61] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -m_sharedState->genLabels.resize(0); m_sharedState->confName=""; -} - - -void VhdlParser::configuration_declarative_item() { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case USE_T:{ - if (!hasError) { - use_clause(); - } - break; - } - case ATTRIBUTE_T:{ - if (!hasError) { - attribute_specification(); - } - break; - } - case GROUP_T:{ - if (!hasError) { - group_declaration(); - } - break; - } - default: - jj_la1[62] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -} - - -void VhdlParser::configuration_declarative_part() { - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ATTRIBUTE_T: - case GROUP_T: - case USE_T:{ - ; - break; - } - default: - jj_la1[63] = jj_gen; - goto end_label_12; - } - if (!hasError) { - configuration_declarative_item(); - } - } - end_label_12: ; - } -} - - -void VhdlParser::configuration_item() { - if (jj_2_26(2147483647)) { - if (!hasError) { - component_configuration(); - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case FOR_T:{ - if (!hasError) { - block_configuration(); - } - break; - } - default: - jj_la1[64] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } -} - - -void VhdlParser::configuration_specification() { - if (!hasError) { - jj_consume_token(FOR_T); - } - if (!hasError) { - component_specification(); - } - if (!hasError) { - binding_indication(); - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -} - - -QCString VhdlParser::constant_declaration() {QCString s,s1,s2;Token *t=0; - if (!hasError) { - jj_consume_token(CONSTANT_T); - } - if (!hasError) { - s = identifier_list(); - } - if (!hasError) { - jj_consume_token(COLON_T); - } - if (!hasError) { - s1 = subtype_indication(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case VARASSIGN_T:{ - if (!hasError) { - t = jj_consume_token(VARASSIGN_T); - } - if (!hasError) { - s2 = expression(); - } - break; - } - default: - jj_la1[65] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -if(t) - s2.prepend(":="); - QCString it=s1+s2; - outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(CONSTANT_T),Entry::VARIABLE_SEC,VhdlDocGen::CONSTANT,0,it.data(),Public); - it.prepend("constant "); - return it; -assert(false);return ""; -} - - -QCString VhdlParser::constraint_array_definition() {QCString s,s1; - if (!hasError) { - jj_consume_token(ARRAY_T); - } - if (!hasError) { - s = index_constraint(); - } - if (!hasError) { - jj_consume_token(OF_T); - } - if (!hasError) { - s1 = subtype_indication(); - } -return s+" "+s1; -assert(false);return ""; -} - - -void VhdlParser::context_clause() { - if (!hasError) { - while (!hasError) { - if (jj_2_27(3)) { - ; - } else { - goto end_label_13; - } - if (!hasError) { - context_item(); - } - } - end_label_13: ; - } -} - - -QCString VhdlParser::constraint() {QCString s; - if (jj_2_28(2147483647)) { - if (!hasError) { - s = range_constraint(); - } - if (!hasError) { -return s; - } - } else if (jj_2_29(2147483647)) { - if (!hasError) { - s = index_constraint(); - } - if (!hasError) { -return s; - } - } else { - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false);return ""; -} - - -void VhdlParser::context_item() { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case LIBRARY_T:{ - if (!hasError) { - library_clause(); - } - break; - } - case USE_T:{ - if (!hasError) { - use_clause(); - } - break; - } - default: - jj_la1[66] = jj_gen; - if (jj_2_30(2147483647)) { - if (!hasError) { - context_declaration(); - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case CONTEXT_T:{ - if (!hasError) { - context_ref(); - } - break; - } - default: - jj_la1[67] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } - } -} - - -QCString VhdlParser::decimal_literal() {Token *tok=0; - if (!hasError) { - tok = jj_consume_token(DECIMAL_LITERAL); - } -return tok->image.c_str(); -assert(false);return ""; -} - - -QCString VhdlParser::delay_mechanism() {QCString s; - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case TRANSPORT_T:{ - if (!hasError) { - jj_consume_token(TRANSPORT_T); - } - if (!hasError) { -return " transport "; - } - break; - } - case INERTIAL_T: - case REJECT_T:{ - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case REJECT_T:{ - if (!hasError) { - jj_consume_token(REJECT_T); - } - if (!hasError) { - s = expression(); - } - if (!hasError) { -s.prepend(" reject "); - } - break; - } - default: - jj_la1[68] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(INERTIAL_T); - } - if (!hasError) { -return s+" inertial "; - } - break; - } - default: - jj_la1[69] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false);return ""; -} - - -void VhdlParser::design_file() { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ARCHITECTURE_T: - case CONFIGURATION_T: - case CONTEXT_T: - case ENTITY_T: - case LIBRARY_T: - case PACKAGE_T: - case USE_T:{ - if (!hasError) { - while (!hasError) { - if (!hasError) { - design_unit(); - } - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ARCHITECTURE_T: - case CONFIGURATION_T: - case CONTEXT_T: - case ENTITY_T: - case LIBRARY_T: - case PACKAGE_T: - case USE_T:{ - ; - break; - } - default: - jj_la1[70] = jj_gen; - goto end_label_14; - } - } - end_label_14: ; - } - if (!hasError) { - - } - break; - } - case 0:{ - if (!hasError) { - jj_consume_token(0); - } - break; - } - default: - jj_la1[71] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -} - - -void VhdlParser::design_unit() { - if (!hasError) { - context_clause(); - } - if (!hasError) { - library_unit(); - } -} - - -QCString VhdlParser::designator() {QCString s; - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - s = identifier(); - } - if (!hasError) { -return s; - } - break; - } - case STRINGLITERAL:{ - if (!hasError) { - s = operator_symbol(); - } - if (!hasError) { -return s; - } - break; - } - default: - jj_la1[72] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false);return ""; -} - - -QCString VhdlParser::direction() {Token *tok=0; - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case TO_T:{ - if (!hasError) { - tok = jj_consume_token(TO_T); - } - if (!hasError) { -return tok->image.c_str(); - } - break; - } - case DOWNTO_T:{ - if (!hasError) { - tok = jj_consume_token(DOWNTO_T); - } - if (!hasError) { -return tok->image.c_str(); - } - break; - } - default: - jj_la1[73] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false);return ""; -} - - -void VhdlParser::disconnection_specification() { - if (!hasError) { - jj_consume_token(DISCONNECT_T); - } - if (!hasError) { - guarded_signal_specificatio(); - } - if (!hasError) { - jj_consume_token(AFTER_T); - } - if (!hasError) { - expression(); - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -} - - -void VhdlParser::guarded_signal_specificatio() { - if (!hasError) { - signal_list(); - } - if (!hasError) { - jj_consume_token(COLON_T); - } - if (!hasError) { - name(); - } -} - - -QCString VhdlParser::discrete_range() {QCString s; - if (jj_2_31(2147483647)) { - if (!hasError) { - s = range(); - } - if (!hasError) { -return s; - } - } else if (jj_2_32(2147483647)) { - if (!hasError) { - s = subtype_indication(); - } - if (!hasError) { -return s; - } - } else { - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false);return ""; -} - - -QCString VhdlParser::element_association() {QCString s,s1; - if (!hasError) { - if (jj_2_33(2147483647)) { - if (!hasError) { - s = choices(); - } - if (!hasError) { - jj_consume_token(ARROW_T); - } - } else { - ; - } - } - if (!hasError) { - s1 = expression(); - } -if(!s.isEmpty()) - return s+"=>"+s1; -return s1; -assert(false);return ""; -} - - -QCString VhdlParser::element_declaration() {QCString rec_name,s1,s2; - if (!hasError) { - rec_name = identifier_list(); - } - if (!hasError) { - jj_consume_token(COLON_T); - } - if (!hasError) { - s1 = subtype_indication(); - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -QCString name; - QCStringList ql=QCStringList::split(",",rec_name); - for (uint j=0;jgetNameID().data();; - outlineParser()->addVhdlType(name.data(),outlineParser()->getLine(),Entry::VARIABLE_SEC,VhdlDocGen::RECORD,0,s1.data(),Public); - } - s2=rec_name+":"+s1; - return s2; -assert(false);return ""; -} - - -QCString VhdlParser::entity_aspect() {Token *tok=0;QCString s,s1; - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ENTITY_T:{ - if (!hasError) { - tok = jj_consume_token(ENTITY_T); - } - if (!hasError) { - s = name(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case LPAREN_T:{ - if (!hasError) { - jj_consume_token(LPAREN_T); - } - if (!hasError) { - s1 = identifier(); - } - if (!hasError) { - jj_consume_token(RPAREN_T); - } - if (!hasError) { -s+="("+s1+")"; - } - break; - } - default: - jj_la1[74] = jj_gen; - ; - } - } - if (!hasError) { -return s; - } - break; - } - case CONFIGURATION_T:{ - if (!hasError) { - tok = jj_consume_token(CONFIGURATION_T); - } - if (!hasError) { - s = name(); - } - if (!hasError) { -return tok->image.c_str()+s; - } - break; - } - case OPEN_T:{ - if (!hasError) { - tok = jj_consume_token(OPEN_T); - } - if (!hasError) { -return tok->image.c_str(); - } - break; - } - default: - jj_la1[75] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false);return ""; -} - - -QCString VhdlParser::entity_class() { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ENTITY_T:{ - if (!hasError) { - jj_consume_token(ENTITY_T); - } - if (!hasError) { -return "entity"; - } - break; - } - case ARCHITECTURE_T:{ - if (!hasError) { - jj_consume_token(ARCHITECTURE_T); - } - if (!hasError) { -return "architecture"; - } - break; - } - case CONFIGURATION_T:{ - if (!hasError) { - jj_consume_token(CONFIGURATION_T); - } - if (!hasError) { -return "configuration"; - } - break; - } - case PROCEDURE_T:{ - if (!hasError) { - jj_consume_token(PROCEDURE_T); - } - if (!hasError) { -return "procedure"; - } - break; - } - case FUNCTION_T:{ - if (!hasError) { - jj_consume_token(FUNCTION_T); - } - if (!hasError) { -return "function"; - } - break; - } - case PACKAGE_T:{ - if (!hasError) { - jj_consume_token(PACKAGE_T); - } - if (!hasError) { -return "package"; - } - break; - } - case TYPE_T:{ - if (!hasError) { - jj_consume_token(TYPE_T); - } - if (!hasError) { -return "type"; - } - break; - } - case SUBTYPE_T:{ - if (!hasError) { - jj_consume_token(SUBTYPE_T); - } - if (!hasError) { -return "subtype"; - } - break; - } - case CONSTANT_T:{ - if (!hasError) { - jj_consume_token(CONSTANT_T); - } - if (!hasError) { -return "constant"; - } - break; - } - case SIGNAL_T:{ - if (!hasError) { - jj_consume_token(SIGNAL_T); - } - if (!hasError) { -return "signal"; - } - break; - } - case VARIABLE_T:{ - if (!hasError) { - jj_consume_token(VARIABLE_T); - } - if (!hasError) { -return "variable"; - } - break; - } - case COMPONENT_T:{ - if (!hasError) { - jj_consume_token(COMPONENT_T); - } - if (!hasError) { -return "component"; - } - break; - } - case LABEL_T:{ - if (!hasError) { - jj_consume_token(LABEL_T); - } - if (!hasError) { -return "label"; - } - break; - } - case LITERAL_T:{ - if (!hasError) { - jj_consume_token(LITERAL_T); - } - if (!hasError) { -return "literal"; - } - break; - } - case UNITS_T:{ - if (!hasError) { - jj_consume_token(UNITS_T); - } - if (!hasError) { -return "units"; - } - break; - } - case GROUP_T:{ - if (!hasError) { - jj_consume_token(GROUP_T); - } - if (!hasError) { -return "group"; - } - break; - } - case FILE_T:{ - if (!hasError) { - jj_consume_token(FILE_T); - } - if (!hasError) { -return "file"; - } - break; - } - default: - jj_la1[76] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false);return ""; -} - - -QCString VhdlParser::entity_class_entry() {QCString s; - if (!hasError) { - s = entity_class(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BOX_T:{ - if (!hasError) { - jj_consume_token(BOX_T); - } - if (!hasError) { -s+="<>"; - } - break; - } - default: - jj_la1[77] = jj_gen; - ; - } - } -return s; -assert(false);return ""; -} - - -QCString VhdlParser::entity_class_entry_list() {QCString s,s1,s2; - if (!hasError) { - if (!hasError) { - s1 = entity_class_entry(); - } - if (!hasError) { -s+=s1; - } - } - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case COMMA_T:{ - ; - break; - } - default: - jj_la1[78] = jj_gen; - goto end_label_15; - } - if (!hasError) { - jj_consume_token(COMMA_T); - } - if (!hasError) { - s = entity_class_entry(); - } - if (!hasError) { -s2+=",";s2+=s; - } - } - end_label_15: ; - } -return s1+s2; -assert(false);return ""; -} - - -void VhdlParser::entity_declaration() {QCString s; - if (!hasError) { - jj_consume_token(ENTITY_T); - } - if (!hasError) { - s = identifier(); - } - if (!hasError) { - jj_consume_token(IS_T); - } - if (!hasError) { -m_sharedState->lastEntity=m_sharedState->current; - m_sharedState->lastCompound=0; - outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(ENTITY_T),Entry::CLASS_SEC,VhdlDocGen::ENTITY,0,0,Public); - } - if (!hasError) { - entity_header(); - } - if (!hasError) { - entity_declarative_part(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BEGIN_T:{ - if (!hasError) { - jj_consume_token(BEGIN_T); - } - if (!hasError) { - entity_statement_part(); - } - break; - } - default: - jj_la1[79] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(END_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ENTITY_T:{ - if (!hasError) { - jj_consume_token(ENTITY_T); - } - break; - } - default: - jj_la1[80] = jj_gen; - ; - } - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case SLSL_T: - case STRINGLITERAL: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - name(); - } - break; - } - default: - jj_la1[81] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -m_sharedState->lastEntity=0;m_sharedState->lastCompound=0; m_sharedState->genLabels.resize(0); -} - - -void VhdlParser::entity_declarative_item() { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case FUNCTION_T: - case IMPURE_T: - case PROCEDURE_T: - case PURE_T:{ - if (!hasError) { - subprogram_declaration(); - } - break; - } - case TYPE_T:{ - if (!hasError) { - type_declaration(); - } - break; - } - case SUBTYPE_T:{ - if (!hasError) { - subtype_declaration(); - } - break; - } - case CONSTANT_T:{ - if (!hasError) { - constant_declaration(); - } - break; - } - case SIGNAL_T:{ - if (!hasError) { - signal_declaration(); - } - break; - } - case SHARED_T: - case VARIABLE_T:{ - if (!hasError) { - variable_declaration(); - } - break; - } - case FILE_T:{ - if (!hasError) { - file_declaration(); - } - break; - } - case ALIAS_T:{ - if (!hasError) { - alias_declaration(); - } - break; - } - default: - jj_la1[82] = jj_gen; - if (jj_2_34(2147483647)) { - if (!hasError) { - attribute_declaration(); - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ATTRIBUTE_T:{ - if (!hasError) { - attribute_specification(); - } - break; - } - case DISCONNECT_T:{ - if (!hasError) { - disconnection_specification(); - } - break; - } - case USE_T:{ - if (!hasError) { - use_clause(); - } - break; - } - default: - jj_la1[83] = jj_gen; - if (jj_2_35(3)) { - if (!hasError) { - group_template_declaration(); - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case GROUP_T:{ - if (!hasError) { - group_declaration(); - } - break; - } - default: - jj_la1[84] = jj_gen; - if (jj_2_36(5)) { - if (!hasError) { - package_instantiation_declaration(); - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case PACKAGE_T:{ - if (!hasError) { - package_declaration(); - } - break; - } - case VHDL2008TOOLDIR:{ - if (!hasError) { - jj_consume_token(VHDL2008TOOLDIR); - } - break; - } - default: - jj_la1[85] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } - } - } - } - } - } -} - - -void VhdlParser::entity_declarative_part() { - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ALIAS_T: - case ATTRIBUTE_T: - case CONSTANT_T: - case DISCONNECT_T: - case FILE_T: - case FUNCTION_T: - case GROUP_T: - case IMPURE_T: - case PACKAGE_T: - case PROCEDURE_T: - case PURE_T: - case SIGNAL_T: - case SHARED_T: - case SUBTYPE_T: - case TYPE_T: - case USE_T: - case VARIABLE_T: - case VHDL2008TOOLDIR:{ - ; - break; - } - default: - jj_la1[86] = jj_gen; - goto end_label_16; - } - if (!hasError) { - entity_declarative_item(); - } - } - end_label_16: ; - } -} - - -QCString VhdlParser::entity_designator() {QCString s,s1; - if (!hasError) { - s = entity_tag(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case LBRACKET_T:{ - if (!hasError) { - s1 = signature(); - } - break; - } - default: - jj_la1[87] = jj_gen; - ; - } - } -return s+s1; -assert(false);return ""; -} - - -void VhdlParser::entity_header() { - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case GENERIC_T:{ - if (!hasError) { -m_sharedState->currP=VhdlDocGen::GENERIC;m_sharedState->parse_sec=GEN_SEC; - } - if (!hasError) { - generic_clause(); - } - break; - } - default: - jj_la1[88] = jj_gen; - ; - } - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case PORT_T:{ - if (!hasError) { -m_sharedState->currP=VhdlDocGen::PORT; - } - if (!hasError) { - port_clause(); - } - break; - } - default: - jj_la1[89] = jj_gen; - ; - } - } -} - - -QCString VhdlParser::entity_name_list() {QCString s,s1,s2; - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case SLSL_T: - case STRINGLITERAL: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER: - case CHARACTER_LITERAL:{ - if (!hasError) { - if (!hasError) { - s1 = entity_designator(); - } - } - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case COMMA_T:{ - ; - break; - } - default: - jj_la1[90] = jj_gen; - goto end_label_17; - } - if (!hasError) { - jj_consume_token(COMMA_T); - } - if (!hasError) { - s = entity_designator(); - } - if (!hasError) { -s2+=s; - } - } - end_label_17: ; - } - if (!hasError) { -return s2; - } - break; - } - case OTHER_T:{ - if (!hasError) { - jj_consume_token(OTHER_T); - } - if (!hasError) { -return "other"; - } - break; - } - case ALL_T:{ - if (!hasError) { - jj_consume_token(ALL_T); - } - if (!hasError) { -return "all"; - } - break; - } - default: - jj_la1[91] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false);return ""; -} - - -QCString VhdlParser::entity_specification() {QCString s,s1; - if (!hasError) { - s = entity_name_list(); - } - if (!hasError) { - jj_consume_token(COLON_T); - } - if (!hasError) { - s1 = entity_class(); - } -return s+":"+s1; -assert(false);return ""; -} - - -void VhdlParser::entity_statement() { - if (jj_2_37(2147483647)) { - if (!hasError) { - concurrent_assertion_statement(); - } - } else if (jj_2_38(2147483647)) { - if (!hasError) { - process_statement(); - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case POSTPONED_T: - case SLSL_T: - case STRINGLITERAL: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - concurrent_procedure_call_statement(); - } - break; - } - default: - jj_la1[92] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } -} - - -void VhdlParser::entity_statement_part() { - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ASSERT_T: - case POSTPONED_T: - case PROCESS_T: - case SLSL_T: - case STRINGLITERAL: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - ; - break; - } - default: - jj_la1[93] = jj_gen; - goto end_label_18; - } - if (!hasError) { - entity_statement(); - } - } - end_label_18: ; - } -} - - -QCString VhdlParser::entity_tag() {QCString s; - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case SLSL_T: - case STRINGLITERAL: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - s = name(); - } - if (!hasError) { -return s; - } - break; - } - case CHARACTER_LITERAL:{ - if (!hasError) { - s = character_literal(); - } - if (!hasError) { -return s; - } - break; - } - default: - jj_la1[94] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false);return ""; -} - - -QCString VhdlParser::enumeration_literal() {QCString s; - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - s = identifier(); - } - if (!hasError) { -return s; - } - break; - } - case CHARACTER_LITERAL:{ - if (!hasError) { - s = character_literal(); - } - if (!hasError) { -return s; - } - break; - } - default: - jj_la1[95] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false);return ""; -} - - -QCString VhdlParser::enumeration_type_definition() {QCString s,s1; - if (!hasError) { - jj_consume_token(LPAREN_T); - } - if (!hasError) { - s = enumeration_literal(); - } - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case COMMA_T:{ - ; - break; - } - default: - jj_la1[96] = jj_gen; - goto end_label_19; - } - if (!hasError) { - jj_consume_token(COMMA_T); - } - if (!hasError) { - s1 = enumeration_literal(); - } - if (!hasError) { -s+=",";s+=s1; - } - } - end_label_19: ; - } - if (!hasError) { - jj_consume_token(RPAREN_T); - } -return "("+s+")"; -assert(false);return ""; -} - - -QCString VhdlParser::exit_statement() {QCString s,s1,s2;Token *t=0;Token *t1=0; - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - s = identifier(); - } - if (!hasError) { - t = jj_consume_token(COLON_T); - } - break; - } - default: - jj_la1[97] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(EXIT_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - s1 = identifier(); - } - break; - } - default: - jj_la1[98] = jj_gen; - ; - } - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case WHEN_T:{ - if (!hasError) { - t1 = jj_consume_token(WHEN_T); - } - if (!hasError) { - s2 = condition(); - } - break; - } - default: - jj_la1[99] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -m_sharedState->lab.resize(0); - if(t) s+=":"; - if(t1) s2.prepend(" when "); - FlowChart::addFlowChart(FlowChart::EXIT_NO,"exit",s2.data(),s1.data()); - - return s+s1+s2+";"; -assert(false);return ""; -} - - -QCString VhdlParser::expression() {QCString s,s1,s2; - if (!hasError) { - s = relation(); - } - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case AND_T: - case NAND_T: - case NOR_T: - case OR_T: - case XOR_T: - case XNOR_T:{ - ; - break; - } - default: - jj_la1[100] = jj_gen; - goto end_label_20; - } - if (!hasError) { - s1 = logop(); - } - if (!hasError) { - s2 = relation(); - } - if (!hasError) { -s+=s1;s+=s2; - } - } - end_label_20: ; - } -return s; -assert(false);return ""; -} - - -QCString VhdlParser::logop() { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case AND_T:{ - if (!hasError) { - jj_consume_token(AND_T); - } - if (!hasError) { -return "and" ; - } - break; - } - case NAND_T:{ - if (!hasError) { - jj_consume_token(NAND_T); - } - if (!hasError) { -return "nand" ; - } - break; - } - case NOR_T:{ - if (!hasError) { - jj_consume_token(NOR_T); - } - if (!hasError) { -return "nor" ; - } - break; - } - case XNOR_T:{ - if (!hasError) { - jj_consume_token(XNOR_T); - } - if (!hasError) { -return "xnor" ; - } - break; - } - case XOR_T:{ - if (!hasError) { - jj_consume_token(XOR_T); - } - if (!hasError) { -return "xor" ; - } - break; - } - case OR_T:{ - if (!hasError) { - jj_consume_token(OR_T); - } - if (!hasError) { -return "or" ; - } - break; - } - default: - jj_la1[101] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false);return ""; -} - - -QCString VhdlParser::extended_identifier() {Token *t; - if (!hasError) { - t = jj_consume_token(EXTENDED_CHARACTER); - } -return t->image.c_str(); -assert(false);return ""; -} - - -QCString VhdlParser::factor() {QCString s,s1; - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case NEW_T: - case NULL_T: - case LPAREN_T: - case SLSL_T: - case INTEGER: - case STRINGLITERAL: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER: - case CHARACTER_LITERAL: - case DECIMAL_LITERAL: - case BASED_LITERAL: - case BIT_STRING_LITERAL:{ - if (!hasError) { - s = primary(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case DOUBLEMULT_T:{ - if (!hasError) { - jj_consume_token(DOUBLEMULT_T); - } - if (!hasError) { - s1 = primary(); - } - if (!hasError) { -s+="**";s+=s1; - } - break; - } - default: - jj_la1[102] = jj_gen; - ; - } - } - if (!hasError) { -return s; - } - break; - } - case ABS_T:{ - if (!hasError) { - jj_consume_token(ABS_T); - } - if (!hasError) { - s = primary(); - } - if (!hasError) { -s1 = "abs "; return s1+s; - } - break; - } - case NOT_T:{ - if (!hasError) { - jj_consume_token(NOT_T); - } - if (!hasError) { - s = primary(); - } - if (!hasError) { -s1="not ";return s1+s; - } - break; - } - case QQ_T:{ - if (!hasError) { - jj_consume_token(QQ_T); - } - if (!hasError) { - s = primary(); - } - if (!hasError) { -s1="?? ";return s1; - } - break; - } - case AND_T: - case NAND_T: - case NOR_T: - case OR_T: - case XOR_T: - case XNOR_T:{ - if (!hasError) { - s = logop(); - } - if (!hasError) { - s1 = primary(); - } - if (!hasError) { -return s; - } - break; - } - default: - jj_la1[103] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false);return ""; -} - - -QCString VhdlParser::file_declaration() {QCString s,s1,s2,s3; - if (!hasError) { - jj_consume_token(FILE_T); - } - if (!hasError) { - s = identifier_list(); - } - if (!hasError) { - jj_consume_token(COLON_T); - } - if (!hasError) { - s2 = subtype_indication(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case IS_T: - case OPEN_T:{ - if (!hasError) { - s3 = file_open_information(); - } - break; - } - default: - jj_la1[104] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -QCString t1=s2+" "+s3; - outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(),Entry::VARIABLE_SEC,VhdlDocGen::VFILE,0,t1.data(),Public); - return " file "+s+":"+s2+" "+s3+";"; -assert(false);return ""; -} - - -QCString VhdlParser::file_logical_name() {QCString s; - if (!hasError) { - s = expression(); - } -return s; -assert(false);return ""; -} - - -QCString VhdlParser::file_open_information() {QCString s,s1,s2; - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case OPEN_T:{ - if (!hasError) { - jj_consume_token(OPEN_T); - } - if (!hasError) { - s = expression(); - } - break; - } - default: - jj_la1[105] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(IS_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case IN_T: - case OUT_T:{ - if (!hasError) { - inout_stat(); - } - break; - } - default: - jj_la1[106] = jj_gen; - ; - } - } - if (!hasError) { - s1 = file_logical_name(); - } -s2="open "+s+" is "+s1; return s2; -assert(false);return ""; -} - - -QCString VhdlParser::file_type_definition() {QCString s,s1; - if (!hasError) { - jj_consume_token(FILE_T); - } - if (!hasError) { - jj_consume_token(OF_T); - } - if (!hasError) { - s = type_mark(); - } -s1=" file of "+s; return s1; -assert(false);return ""; -} - - -QCString VhdlParser::floating_type_definition() {QCString s; - if (!hasError) { - s = range_constraint(); - } -return s; -assert(false);return ""; -} - - -QCString VhdlParser::formal_designator() {QCString s;Token *tok=0; - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case SLSL_T: - case STRINGLITERAL: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - s = name(); - } - if (!hasError) { -return s; - } - break; - } - case INTEGER:{ - if (!hasError) { - tok = jj_consume_token(INTEGER); - } - if (!hasError) { -return tok->image.c_str(); - } - break; - } - default: - jj_la1[107] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false);return ""; -} - - -QCString VhdlParser::formal_parameter_list() {QCString s; - if (!hasError) { - s = interface_list(); - } -return s; -assert(false);return ""; -} - - -QCString VhdlParser::formal_part() {QCString s,s1; - if (!hasError) { - s = name(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case LPAREN_T:{ - if (!hasError) { - jj_consume_token(LPAREN_T); - } - if (!hasError) { - formal_designator(); - } - if (!hasError) { - jj_consume_token(RPAREN_T); - } - if (!hasError) { -s+"("+s1+")"; - } - break; - } - default: - jj_la1[108] = jj_gen; - ; - } - } -return s; -assert(false);return ""; -} - - -QCString VhdlParser::full_type_declaration() {std::shared_ptr tmpEntry;QCString s,s1,s2; - if (!hasError) { - jj_consume_token(TYPE_T); - } - if (!hasError) { - s = identifier(); - } - if (!hasError) { - jj_consume_token(IS_T); - } - if (!hasError) { -tmpEntry=m_sharedState->current; - outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(),Entry::VARIABLE_SEC,VhdlDocGen::RECORD,0,0,Public); - } - if (!hasError) { - s2 = type_definition(); - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -if (s2.contains("#")) { - VhdlDocGen::deleteAllChars(s2,'#'); - tmpEntry->spec=VhdlDocGen::RECORD; - tmpEntry->type=s2.data(); - } - else if (s2.contains("%")) { - VhdlDocGen::deleteAllChars(s2,'%'); - tmpEntry->spec=VhdlDocGen::UNITS; - tmpEntry->type=s2.data(); - } - else { - tmpEntry->spec=VhdlDocGen::TYPE; - tmpEntry->type=s2.data(); - } - - tmpEntry.reset(); - return "type "+s+" is "+s2+";"; -assert(false);return ""; -} - - -QCString VhdlParser::function_call() {QCString s,s1; - if (!hasError) { - s = name(); - } - if (!hasError) { - jj_consume_token(LPAREN_T); - } - if (!hasError) { - s1 = actual_parameter_part(); - } - if (!hasError) { - jj_consume_token(RPAREN_T); - } -return s+"("+s1+")"; -assert(false);return ""; -} - - -void VhdlParser::generate_statement() {QCString s; - if (!hasError) { - s = identifier(); - } - if (!hasError) { - jj_consume_token(COLON_T); - } - if (!hasError) { - try { - if (!hasError) { - generate_scheme(); - } - if (!hasError) { - jj_consume_token(GENERATE_T); - } - if (!hasError) { -outlineParser()->pushLabel(m_sharedState->genLabels,s); - } - if (!hasError) { - generate_statement_body1(); - } - if (!hasError) { - jj_consume_token(END_T); - } - } catch ( ...) { -outlineParser()->error_skipto(GENERATE_T); - } - } - if (!hasError) { - jj_consume_token(GENERATE_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - identifier(); - } - break; - } - default: - jj_la1[109] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -m_sharedState->genLabels=outlineParser()->popLabel(m_sharedState->genLabels); -} - - -void VhdlParser::generate_scheme() { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case FOR_T:{ - if (!hasError) { - jj_consume_token(FOR_T); - } - if (!hasError) { - parameter_specification(); - } - break; - } - case IF_T:{ - if (!hasError) { - jj_consume_token(IF_T); - } - if (!hasError) { - if (jj_2_39(2)) { - if (!hasError) { - identifier(); - } - if (!hasError) { - jj_consume_token(COLON_T); - } - } else { - ; - } - } - if (!hasError) { - condition(); - } - break; - } - default: - jj_la1[110] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -} - - -void VhdlParser::generic_clause() {QCString s; - if (!hasError) { - jj_consume_token(GENERIC_T); - } - if (!hasError) { - jj_consume_token(LPAREN_T); - } - if (!hasError) { -m_sharedState->parse_sec=GEN_SEC; - } - if (!hasError) { - s = generic_list(); - } - if (!hasError) { - jj_consume_token(RPAREN_T); - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -m_sharedState->parse_sec=0; -} - - -QCString VhdlParser::generic_list() {QCString s; - if (!hasError) { - s = interface_list(); - } -return s; -assert(false);return ""; -} - - -void VhdlParser::generic_map_aspect() { - if (!hasError) { - jj_consume_token(GENERIC_T); - } - if (!hasError) { - jj_consume_token(MAP_T); - } - if (!hasError) { - jj_consume_token(LPAREN_T); - } - if (!hasError) { - association_list(); - } - if (!hasError) { - jj_consume_token(RPAREN_T); - } -} - - -QCString VhdlParser::group_constituent() {QCString s; - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case SLSL_T: - case STRINGLITERAL: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - s = name(); - } - if (!hasError) { -return s; - } - break; - } - case CHARACTER_LITERAL:{ - if (!hasError) { - s = character_literal(); - } - if (!hasError) { -return s; - } - break; - } - default: - jj_la1[111] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false);return ""; -} - - -QCString VhdlParser::group_constituent_list() {QCString s,s1,s2; - if (!hasError) { - if (!hasError) { - s1 = group_constituent(); - } - } - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case COMMA_T:{ - ; - break; - } - default: - jj_la1[112] = jj_gen; - goto end_label_21; - } - if (!hasError) { - jj_consume_token(COMMA_T); - } - if (!hasError) { - s = group_constituent(); - } - if (!hasError) { -s2+=",";s2+=s1; - } - } - end_label_21: ; - } -return s+s2; -assert(false);return ""; -} - - -QCString VhdlParser::group_declaration() {QCString s,s1,s2; - if (!hasError) { - jj_consume_token(GROUP_T); - } - if (!hasError) { - s = identifier(); - } - if (!hasError) { - jj_consume_token(COLON_T); - } - if (!hasError) { - s1 = identifier(); - } - if (!hasError) { - jj_consume_token(LPAREN_T); - } - if (!hasError) { - s2 = group_constituent_list(); - } - if (!hasError) { - jj_consume_token(RPAREN_T); - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -return "group "+s+":"+s1+"("+s2+");"; -assert(false);return ""; -} - - -QCString VhdlParser::group_template_declaration() {QCString s,s1; - if (!hasError) { - jj_consume_token(GROUP_T); - } - if (!hasError) { - s = identifier(); - } - if (!hasError) { - jj_consume_token(IS_T); - } - if (!hasError) { - jj_consume_token(LPAREN_T); - } - if (!hasError) { - s1 = entity_class_entry_list(); - } - if (!hasError) { - jj_consume_token(RPAREN_T); - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -return "group "+s+ "is ("+s1+");"; -assert(false);return ""; -} - - -void VhdlParser::guarded_signal_specification() { - if (!hasError) { - signal_list(); - } - if (!hasError) { - jj_consume_token(COLON_T); - } - if (!hasError) { - type_mark(); - } -} - - -QCString VhdlParser::identifier() {Token *tok=0; - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case EXTENDED_CHARACTER:{ - if (!hasError) { - tok = jj_consume_token(EXTENDED_CHARACTER); - } - if (!hasError) { -return tok->image.c_str(); - } - break; - } - case BASIC_IDENTIFIER:{ - if (!hasError) { - tok = jj_consume_token(BASIC_IDENTIFIER); - } - if (!hasError) { -return tok->image.c_str(); - } - break; - } - default: - jj_la1[113] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false);return ""; -} - - -QCString VhdlParser::identifier_list() {QCString str,str1; - if (!hasError) { - str = name(); - } - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case COMMA_T:{ - ; - break; - } - default: - jj_la1[114] = jj_gen; - goto end_label_22; - } - if (!hasError) { - jj_consume_token(COMMA_T); - } - if (!hasError) { - str1 = name(); - } - if (!hasError) { -str+=",";str+=str1; - } - } - end_label_22: ; - } -return str; -assert(false);return ""; -} - - -void VhdlParser::if_statement() {QCString s,s1; - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - identifier(); - } - if (!hasError) { - jj_consume_token(COLON_T); - } - break; - } - default: - jj_la1[115] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(IF_T); - } - if (!hasError) { - s = condition(); - } - if (!hasError) { - jj_consume_token(THEN_T); - } - if (!hasError) { -s.prepend("if "); - FlowChart::addFlowChart(FlowChart::IF_NO,0,s); - } - if (!hasError) { - sequence_of_statement(); - } - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ELSIF_T:{ - ; - break; - } - default: - jj_la1[116] = jj_gen; - goto end_label_23; - } - if (!hasError) { - jj_consume_token(ELSIF_T); - } - if (!hasError) { - s1 = condition(); - } - if (!hasError) { - jj_consume_token(THEN_T); - } - if (!hasError) { -s1.prepend("elsif "); - FlowChart::addFlowChart(FlowChart::ELSIF_NO,0,s1.data()); - } - if (!hasError) { - sequence_of_statement(); - } - } - end_label_23: ; - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ELSE_T:{ - if (!hasError) { - jj_consume_token(ELSE_T); - } - if (!hasError) { -FlowChart::addFlowChart(FlowChart::ELSE_NO,0,0); - } - if (!hasError) { - sequence_of_statement(); - } - break; - } - default: - jj_la1[117] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(END_T); - } - if (!hasError) { - jj_consume_token(IF_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - identifier(); - } - break; - } - default: - jj_la1[118] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -FlowChart::moveToPrevLevel(); - FlowChart::addFlowChart(FlowChart::ENDIF_NO,0,0); -} - - -QCString VhdlParser::incomplete_type_declaration() {QCString s; - if (!hasError) { - jj_consume_token(TYPE_T); - } - if (!hasError) { - s = identifier(); - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -return "type "+s+";"; -assert(false);return ""; -} - - -QCString VhdlParser::index_constraint() {QCString s="("; QCString s1,s2; - if (!hasError) { - jj_consume_token(LPAREN_T); - } - if (!hasError) { - s2 = discrete_range(); - } - if (!hasError) { -s+=s2; - } - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case COMMA_T:{ - ; - break; - } - default: - jj_la1[119] = jj_gen; - goto end_label_24; - } - if (!hasError) { - jj_consume_token(COMMA_T); - } - if (!hasError) { - s1 = discrete_range(); - } - if (!hasError) { -s+=",";s+=s1; - } - } - end_label_24: ; - } - if (!hasError) { - jj_consume_token(RPAREN_T); - } -return s+")"; -assert(false);return ""; -} - - -QCString VhdlParser::index_specification() {QCString s; - if (jj_2_40(2147483647)) { - if (!hasError) { - s = discrete_range(); - } - if (!hasError) { -return s; - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ABS_T: - case AND_T: - case NAND_T: - case NEW_T: - case NOR_T: - case NOT_T: - case NULL_T: - case OR_T: - case XOR_T: - case XNOR_T: - case LPAREN_T: - case PLUS_T: - case MINUS_T: - case SLSL_T: - case QQ_T: - case INTEGER: - case STRINGLITERAL: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER: - case CHARACTER_LITERAL: - case DECIMAL_LITERAL: - case BASED_LITERAL: - case BIT_STRING_LITERAL:{ - if (!hasError) { - s = expression(); - } - if (!hasError) { -return s; - } - break; - } - default: - jj_la1[120] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } -assert(false);return ""; -} - - -QCString VhdlParser::index_subtype_definition() {QCString s; - if (!hasError) { - s = type_mark(); - } - if (!hasError) { - jj_consume_token(RANGE_T); - } - if (!hasError) { - jj_consume_token(BOX_T); - } -return s+" range <> "; -assert(false);return ""; -} - - -QCString VhdlParser::instantiation_unit() {QCString s,s1,s2; - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case COMPONENT_T: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case COMPONENT_T:{ - if (!hasError) { - jj_consume_token(COMPONENT_T); - } - break; - } - default: - jj_la1[121] = jj_gen; - ; - } - } - if (!hasError) { - s = identifier(); - } - if (!hasError) { -s1="component "; return s; - } - break; - } - case ENTITY_T:{ - if (!hasError) { - jj_consume_token(ENTITY_T); - } - if (!hasError) { - if (jj_2_41(2)) { - if (!hasError) { - jj_consume_token(BASIC_IDENTIFIER); - } - if (!hasError) { - jj_consume_token(DOT_T); - } - } else { - ; - } - } - if (!hasError) { - s2 = name(); - } - if (!hasError) { -s="entity|"+s2; - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case LPAREN_T:{ - if (!hasError) { - jj_consume_token(LPAREN_T); - } - if (!hasError) { - s1 = identifier(); - } - if (!hasError) { - jj_consume_token(RPAREN_T); - } - if (!hasError) { -s+="(";s+=s1;s+=")" ; - } - break; - } - default: - jj_la1[122] = jj_gen; - ; - } - } - if (!hasError) { -return s; - } - break; - } - case CONFIGURATION_T:{ - if (!hasError) { - jj_consume_token(CONFIGURATION_T); - } - if (!hasError) { - s = name(); - } - if (!hasError) { -s1="configuration ";return s; - } - break; - } - default: - jj_la1[123] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false);return ""; -} - - -QCString VhdlParser::instantiation_list() {QCString s;Token *tok=0; - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case SLSL_T: - case STRINGLITERAL: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - s = identifier_list(); - } - if (!hasError) { -return s; - } - break; - } - case OTHER_T:{ - if (!hasError) { - tok = jj_consume_token(OTHER_T); - } - if (!hasError) { -return tok->image.c_str(); - } - break; - } - case ALL_T:{ - if (!hasError) { - tok = jj_consume_token(ALL_T); - } - if (!hasError) { -return tok->image.c_str(); - } - break; - } - default: - jj_la1[124] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false);return ""; -} - - -QCString VhdlParser::integer() {Token *t; - if (!hasError) { - t = jj_consume_token(INTEGER); - } -return t->image.c_str(); -assert(false);return ""; -} - - -QCString VhdlParser::integer_type_definition() {QCString s; - if (!hasError) { - s = range_constraint(); - } -return s; -assert(false);return ""; -} - - -QCString VhdlParser::interface_declaration() {QCString s,s1; - if (jj_2_42(5)) { - if (!hasError) { - s = interface_subprogram_declaration(); - } - if (!hasError) { -return s; - } - } else if (jj_2_43(5)) { - if (!hasError) { - interface_package_declaration(); - } - if (!hasError) { -return s; - } - } else if (jj_2_44(5)) { - if (!hasError) { - s = interface_variable_declaration(); - } - if (!hasError) { -return s; - } - } else if (jj_2_45(5)) { - if (!hasError) { - interface_file_declaration(); - } - if (!hasError) { -return s; - } - } else if (jj_2_46(2147483647)) { - if (!hasError) { - subprogram_declaration(); - } - if (!hasError) { -return s; - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case CONSTANT_T: - case FILE_T: - case SIGNAL_T: - case SHARED_T: - case TYPE_T: - case VARIABLE_T:{ - if (!hasError) { - s = object_class(); - } - if (!hasError) { - s1 = identifier(); - } - if (!hasError) { -if (m_sharedState->parse_sec==GEN_SEC) - outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(),Entry::VARIABLE_SEC,m_sharedState->currP,s1.data(),0,Public); - return s; - } - break; - } - default: - jj_la1[125] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } -assert(false);return ""; -} - - -QCString VhdlParser::interface_element() {QCString s; - if (!hasError) { - s = interface_declaration(); - } -return s; -assert(false);return ""; -} - - -QCString VhdlParser::interface_file_declaration() {QCString s,s1; - if (!hasError) { - jj_consume_token(FILE_T); - } - if (!hasError) { - s = identifier_list(); - } - if (!hasError) { - jj_consume_token(COLON_T); - } - if (!hasError) { - s1 = subtype_indication(); - } -outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(),Entry::VARIABLE_SEC,VhdlDocGen::VFILE,0,s1.data(),Public); - return " file "+s+":"+s1; -assert(false);return ""; -} - - -QCString VhdlParser::interface_list() {QCString s,s1,s2; - if (!hasError) { - s = interface_element(); - } - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case SEMI_T:{ - ; - break; - } - default: - jj_la1[126] = jj_gen; - goto end_label_25; - } - if (!hasError) { - jj_consume_token(SEMI_T); - } - if (!hasError) { - s1 = interface_element(); - } - if (!hasError) { -s2+=";";s2+=s1; - } - } - end_label_25: ; - } -return s+s2; -assert(false);return ""; -} - - -QCString VhdlParser::interface_variable_declaration() {Token *tok=0;Token *tok1=0;Token *tok2=0;QCString s,s1,s2,s3,s4,s5; - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case CONSTANT_T: - case SIGNAL_T: - case SHARED_T: - case VARIABLE_T:{ - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case VARIABLE_T:{ - if (!hasError) { - tok = jj_consume_token(VARIABLE_T); - } - break; - } - case SIGNAL_T:{ - if (!hasError) { - tok = jj_consume_token(SIGNAL_T); - } - break; - } - case CONSTANT_T:{ - if (!hasError) { - tok = jj_consume_token(CONSTANT_T); - } - break; - } - case SHARED_T:{ - if (!hasError) { - tok = jj_consume_token(SHARED_T); - } - break; - } - default: - jj_la1[127] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } - break; - } - default: - jj_la1[128] = jj_gen; - ; - } - } - if (!hasError) { - s = identifier_list(); - } - if (!hasError) { - jj_consume_token(COLON_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BUFFER_T: - case IN_T: - case INOUT_T: - case LINKAGE_T: - case OUT_T:{ - if (!hasError) { - s1 = mode(); - } - break; - } - default: - jj_la1[129] = jj_gen; - ; - } - } - if (!hasError) { - s2 = subtype_indication(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BUS_T:{ - if (!hasError) { - tok1 = jj_consume_token(BUS_T); - } - break; - } - default: - jj_la1[130] = jj_gen; - ; - } - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case VARASSIGN_T:{ - if (!hasError) { - tok2 = jj_consume_token(VARASSIGN_T); - } - if (!hasError) { - s4 = expression(); - } - break; - } - default: - jj_la1[131] = jj_gen; - ; - } - } -if(tok) - s5=tok->image.c_str(); - - if(tok1) - s3=tok1->image.data(); - - if(tok2) - s3+=":="; - - QCString it=s+":"+s1+" "+s2+" "+s3+" "+s4; - if (m_sharedState->currP!=VhdlDocGen::COMPONENT) - { - if (m_sharedState->currP==VhdlDocGen::FUNCTION || m_sharedState->currP==VhdlDocGen::PROCEDURE) - { - outlineParser()->addProto(s5.data(),s.data(),s1.data(),s2.data(),s3.data(),s4.data()); - } - else - { - QCString i=s2+s3+s4; - if (m_sharedState->currP==VhdlDocGen::GENERIC && m_sharedState->param_sec==0) - outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(),Entry::VARIABLE_SEC,m_sharedState->currP,i.data(),s1.data(),Public); - else if(m_sharedState->parse_sec != GEN_SEC) - outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(),Entry::VARIABLE_SEC,m_sharedState->currP,i.data(),s1.data(),Public); - } - // fprintf(stderr,"\n\n <>\n",$$.data()); - } // if component - return it; -assert(false);return ""; -} - - -QCString VhdlParser::iteration_scheme() {QCString s; - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case WHILE_T:{ - if (!hasError) { - jj_consume_token(WHILE_T); - } - if (!hasError) { - s = condition(); - } - if (!hasError) { -s.prepend("while "); - FlowChart::addFlowChart(FlowChart::WHILE_NO,0,s.data(),m_sharedState->lab.data()); - m_sharedState->lab=""; - return s; - } - break; - } - case FOR_T:{ - if (!hasError) { - jj_consume_token(FOR_T); - } - if (!hasError) { - s = parameter_specification(); - } - if (!hasError) { -QCString q=m_sharedState->lab+" for "+s; - FlowChart::addFlowChart(FlowChart::FOR_NO,0,q.data(),m_sharedState->lab.data()); - m_sharedState->lab=""; - return q; - } - break; - } - default: - jj_la1[132] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false);return ""; -} - - -QCString VhdlParser::label() {QCString s; - if (!hasError) { - s = identifier(); - } -return s; -assert(false);return ""; -} - - -QCString VhdlParser::library_clause() {QCString s; - if (!hasError) { - if (!hasError) { - jj_consume_token(LIBRARY_T); - } - if (!hasError) { - s = identifier_list(); - } - if (!hasError) { - jj_consume_token(SEMI_T); - } - } -if ( m_sharedState->parse_sec==0 && Config_getBool(SHOW_INCLUDE_FILES) ) - { - outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(),Entry::VARIABLE_SEC,VhdlDocGen::LIBRARY,s.data(),"_library_",Public); - } - QCString s1="library "+s; - return s1; -assert(false);return ""; -} - - -QCString VhdlParser::library_unit() {QCString s; - if (jj_2_47(2)) { - if (!hasError) { - primary_unit(); - } - if (!hasError) { -return s; - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ARCHITECTURE_T: - case PACKAGE_T:{ - if (!hasError) { - secondary_unit(); - } - if (!hasError) { -return s; - } - break; - } - default: - jj_la1[133] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } -assert(false);return ""; -} - - -QCString VhdlParser::literal() {QCString s; - if (jj_2_48(2147483647)) { - if (!hasError) { - s = bit_string_literal(); - } - if (!hasError) { -return s; - } - } else if (jj_2_49(2147483647)) { - if (!hasError) { - s = numeric_literal(); - } - if (!hasError) { -return s; - } - } else if (jj_2_50(2147483647)) { - if (!hasError) { - s = enumeration_literal(); - } - if (!hasError) { -return s; - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case STRINGLITERAL:{ - if (!hasError) { - s = string_literal(); - } - if (!hasError) { -return s; - } - break; - } - case NULL_T:{ - if (!hasError) { - jj_consume_token(NULL_T); - } - if (!hasError) { -return "null"; - } - break; - } - default: - jj_la1[134] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } -assert(false);return ""; -} - - -QCString VhdlParser::logical_operator() {QCString s; - if (!hasError) { - s = logop(); - } -return s; -assert(false);return ""; -} - - -QCString VhdlParser::loop_statement() {QCString s,s1,s2,s3; - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - s = identifier(); - } - if (!hasError) { - jj_consume_token(COLON_T); - } - if (!hasError) { -s+=":"; - } - break; - } - default: - jj_la1[135] = jj_gen; - ; - } - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case FOR_T: - case WHILE_T:{ - if (!hasError) { - s1 = iteration_scheme(); - } - break; - } - default: - jj_la1[136] = jj_gen; - ; - } - } - if (!hasError) { -if(s1.isEmpty()) - FlowChart::addFlowChart(FlowChart::LOOP_NO,0,"infinite"); - } - if (!hasError) { - jj_consume_token(LOOP_T); - } - if (!hasError) { - s2 = sequence_of_statement(); - } - if (!hasError) { - jj_consume_token(END_T); - } - if (!hasError) { - jj_consume_token(LOOP_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - s3 = identifier(); - } - break; - } - default: - jj_la1[137] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -QCString q = s+" loop "+s2+" end loop" +s3; - QCString endLoop="end loop" + s3; - FlowChart::moveToPrevLevel(); - FlowChart::addFlowChart(FlowChart::END_LOOP,endLoop.data(),0); - return q; -assert(false);return ""; -} - - -QCString VhdlParser::miscellaneous_operator() {Token *t=0; - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case DOUBLEMULT_T:{ - if (!hasError) { - jj_consume_token(DOUBLEMULT_T); - } - if (!hasError) { -return "**"; - } - break; - } - case ABS_T:{ - if (!hasError) { - jj_consume_token(ABS_T); - } - if (!hasError) { -return "abs"; - } - break; - } - case NOT_T:{ - if (!hasError) { - jj_consume_token(NOT_T); - } - if (!hasError) { -return "not"; - } - break; - } - default: - jj_la1[138] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false);return ""; -} - - -QCString VhdlParser::mode() {Token *tok=0; - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case IN_T:{ - if (!hasError) { - tok = jj_consume_token(IN_T); - } - if (!hasError) { -return "in"; - } - break; - } - case OUT_T:{ - if (!hasError) { - tok = jj_consume_token(OUT_T); - } - if (!hasError) { -return "out"; - } - break; - } - case INOUT_T:{ - if (!hasError) { - tok = jj_consume_token(INOUT_T); - } - if (!hasError) { -return "inout"; - } - break; - } - case BUFFER_T:{ - if (!hasError) { - tok = jj_consume_token(BUFFER_T); - } - if (!hasError) { -return "buffer"; - } - break; - } - case LINKAGE_T:{ - if (!hasError) { - tok = jj_consume_token(LINKAGE_T); - } - if (!hasError) { -return "linkage"; - } - break; - } - default: - jj_la1[139] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false);return ""; -} - - -QCString VhdlParser::multiplying_operation() {Token *tok=0; - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case MULT_T:{ - if (!hasError) { - tok = jj_consume_token(MULT_T); - } - if (!hasError) { -return tok->image.c_str(); - } - break; - } - case SLASH_T:{ - if (!hasError) { - tok = jj_consume_token(SLASH_T); - } - if (!hasError) { -return tok->image.c_str(); - } - break; - } - case MOD_T:{ - if (!hasError) { - tok = jj_consume_token(MOD_T); - } - if (!hasError) { -return tok->image.c_str(); - } - break; - } - case REM_T:{ - if (!hasError) { - tok = jj_consume_token(REM_T); - } - if (!hasError) { -return tok->image.c_str(); - } - break; - } - default: - jj_la1[140] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false);return ""; -} - - -QCString VhdlParser::name() {QCString s,s1; - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case STRINGLITERAL:{ - if (!hasError) { - s = operator_symbol(); - } - if (!hasError) { - if (jj_2_51(2147483647)) { - if (!hasError) { - s1 = name_ext1(); - } - if (!hasError) { -s+=s1; - } - } else { - ; - } - } - if (!hasError) { -return s; - } - break; - } - case SLSL_T:{ - if (!hasError) { - s = external_name(); - } - if (!hasError) { - if (jj_2_52(2147483647)) { - if (!hasError) { - s1 = name_ext1(); - } - if (!hasError) { -s+=s1; - } - } else { - ; - } - } - if (!hasError) { -return s; - } - break; - } - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - s = identifier(); - } - if (!hasError) { - if (jj_2_53(2147483647)) { - if (!hasError) { - s1 = name_ext1(); - } - if (!hasError) { -s+=s1; - } - } else { - ; - } - } - if (!hasError) { -return s; - } - break; - } - default: - jj_la1[141] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } -assert(false);return ""; -} - - -QCString VhdlParser::name_ext1() {QCString s,s1,s2; - if (!hasError) { - s = name_ext(); - } - if (!hasError) { - while (!hasError) { - if (jj_2_54(2147483647)) { - ; - } else { - goto end_label_26; - } - if (!hasError) { - s1 = name_ext(); - } - if (!hasError) { -s+=s1; - } - } - end_label_26: ; - } -return s; -assert(false);return ""; -} - - -QCString VhdlParser::name_ext() {QCString s,s1,s2; - if (!hasError) { - if (jj_2_55(2147483647)) { - if (!hasError) { - jj_consume_token(APOSTROPHE_T); - } - if (!hasError) { - jj_consume_token(SUBTYPE_T); - } - if (!hasError) { -s+="'subtype"; return s; - } - } else if (jj_2_56(2147483647)) { - if (!hasError) { - jj_consume_token(DOT_T); - } - if (!hasError) { - s1 = suffix(); - } - if (!hasError) { -s+=".";s+=s1; return s; - } - } else if (jj_2_57(2147483647)) { - if (!hasError) { - s1 = test_att_name(); - } - if (!hasError) { -s+=s1;return s; - } - } else if (jj_2_58(2147483647)) { - if (!hasError) { - jj_consume_token(LPAREN_T); - } - if (!hasError) { - s1 = discrete_range(); - } - if (!hasError) { - jj_consume_token(RPAREN_T); - } - if (!hasError) { -s+="(";s+=s1;s+=")";return s; - } - } else if (jj_2_59(2147483647)) { - if (!hasError) { - jj_consume_token(LPAREN_T); - } - if (!hasError) { - s1 = expression(); - } - if (!hasError) { -s+="(";s+=s1; - } - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case COMMA_T:{ - ; - break; - } - default: - jj_la1[142] = jj_gen; - goto end_label_27; - } - if (!hasError) { - jj_consume_token(COMMA_T); - } - if (!hasError) { - s1 = expression(); - } - if (!hasError) { -s+=",";s+=s1; - } - } - end_label_27: ; - } - if (!hasError) { - jj_consume_token(RPAREN_T); - } - if (!hasError) { -s+=")";return s; - } - } else { - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } -assert(false);return ""; -} - - -QCString VhdlParser::test_att_name() {QCString s,s1; - if (!hasError) { - if (jj_2_60(2147483647)) { - if (!hasError) { - s1 = signature(); - } - if (!hasError) { -s=s1; - } - } else { - ; - } - } - if (!hasError) { - jj_consume_token(APOSTROPHE_T); - } - if (!hasError) { - s1 = attribute_designator(); - } - if (!hasError) { -s+="'";s+=s1; - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case LPAREN_T:{ - if (!hasError) { - jj_consume_token(LPAREN_T); - } - if (!hasError) { - s1 = expression(); - } - if (!hasError) { - jj_consume_token(RPAREN_T); - } - if (!hasError) { -s+="(";s+=s1;s+=")"; - } - break; - } - default: - jj_la1[143] = jj_gen; - ; - } - } -return s; -assert(false);return ""; -} - - -QCString VhdlParser::indexed_name() {QCString s,s1,s2; - if (!hasError) { - s2 = identifier(); - } - if (!hasError) { - jj_consume_token(LPAREN_T); - } - if (!hasError) { - s1 = expression(); - } - if (!hasError) { -s=s2+"("+s1; - } - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case COMMA_T:{ - ; - break; - } - default: - jj_la1[144] = jj_gen; - goto end_label_28; - } - if (!hasError) { - jj_consume_token(COMMA_T); - } - if (!hasError) { - s1 = expression(); - } - if (!hasError) { -s+=",";s+=s1; - } - } - end_label_28: ; - } - if (!hasError) { - jj_consume_token(RPAREN_T); - } -return s+")"; -assert(false);return ""; -} - - -QCString VhdlParser::next_statement() {QCString s,s1,s2;Token *t=0;Token *t1=0; - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - s = identifier(); - } - if (!hasError) { - t = jj_consume_token(COLON_T); - } - break; - } - default: - jj_la1[145] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(NEXT_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - s1 = identifier(); - } - break; - } - default: - jj_la1[146] = jj_gen; - ; - } - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case WHEN_T:{ - if (!hasError) { - t1 = jj_consume_token(WHEN_T); - } - if (!hasError) { - s2 = condition(); - } - break; - } - default: - jj_la1[147] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -if(t) s+=":"; - FlowChart::addFlowChart(FlowChart::NEXT_NO,"next ",s2.data(),s1.data()); - m_sharedState->lab.resize(0); - if(t1) s2.prepend("when "); - return s+s1+s2+";"; -assert(false);return ""; -} - - -QCString VhdlParser::null_statement() {QCString s; - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - s = identifier(); - } - if (!hasError) { - jj_consume_token(COLON_T); - } - if (!hasError) { -s+=":"; - } - break; - } - default: - jj_la1[148] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(NULL_T); - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -return s+="null"; -assert(false);return ""; -} - - -QCString VhdlParser::numeric_literal() {QCString s; - if (jj_2_61(2147483647)) { - if (!hasError) { - s = physical_literal(); - } - if (!hasError) { -return s; - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case INTEGER: - case DECIMAL_LITERAL: - case BASED_LITERAL:{ - if (!hasError) { - s = abstract_literal(); - } - if (!hasError) { -return s; - } - break; - } - default: - jj_la1[149] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } -assert(false);return ""; -} - - -QCString VhdlParser::object_class() { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case CONSTANT_T:{ - if (!hasError) { - jj_consume_token(CONSTANT_T); - } - if (!hasError) { -return "constant"; - } - break; - } - case SIGNAL_T:{ - if (!hasError) { - jj_consume_token(SIGNAL_T); - } - if (!hasError) { -return "signal"; - } - break; - } - case VARIABLE_T:{ - if (!hasError) { - jj_consume_token(VARIABLE_T); - } - if (!hasError) { -return "variable"; - } - break; - } - case SHARED_T:{ - if (!hasError) { - jj_consume_token(SHARED_T); - } - if (!hasError) { - jj_consume_token(VARIABLE_T); - } - if (!hasError) { -return "shared variable"; - } - break; - } - case FILE_T:{ - if (!hasError) { - jj_consume_token(FILE_T); - } - if (!hasError) { -return "file"; - } - break; - } - case TYPE_T:{ - if (!hasError) { - jj_consume_token(TYPE_T); - } - if (!hasError) { -return "type"; - } - break; - } - default: - jj_la1[150] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false);return ""; -} - - -QCString VhdlParser::operator_symbol() {Token *tok=0; - if (!hasError) { - tok = jj_consume_token(STRINGLITERAL); - } -return tok->image.c_str(); -assert(false);return ""; -} - - -void VhdlParser::options() { - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case GUARDED_T:{ - if (!hasError) { - jj_consume_token(GUARDED_T); - } - break; - } - default: - jj_la1[151] = jj_gen; - ; - } - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case INERTIAL_T: - case REJECT_T: - case TRANSPORT_T:{ - if (!hasError) { - delay_mechanism(); - } - break; - } - default: - jj_la1[152] = jj_gen; - ; - } - } -} - - -void VhdlParser::package_body() {QCString s; - if (!hasError) { - jj_consume_token(PACKAGE_T); - } - if (!hasError) { - jj_consume_token(BODY_T); - } - if (!hasError) { - s = name(); - } - if (!hasError) { - jj_consume_token(IS_T); - } - if (!hasError) { -m_sharedState->lastCompound=m_sharedState->current; - s.prepend("_"); - outlineParser()->addVhdlType(s,outlineParser()->getLine(),Entry::CLASS_SEC,VhdlDocGen::PACKAGE_BODY,0,0,Protected); - } - if (!hasError) { - package_body_declarative_part(); - } - if (!hasError) { - jj_consume_token(END_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case PACKAGE_T:{ - if (!hasError) { - jj_consume_token(PACKAGE_T); - } - if (!hasError) { - jj_consume_token(BODY_T); - } - break; - } - default: - jj_la1[153] = jj_gen; - ; - } - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case SLSL_T: - case STRINGLITERAL: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - name(); - } - break; - } - default: - jj_la1[154] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -m_sharedState->lastCompound=0; m_sharedState->genLabels.resize(0); -} - - -void VhdlParser::package_body_declarative_item() { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case FUNCTION_T: - case IMPURE_T: - case PROCEDURE_T: - case PURE_T:{ - if (!hasError) { - subprogram_declaration(); - } - break; - } - case TYPE_T:{ - if (!hasError) { - type_declaration(); - } - break; - } - case SUBTYPE_T:{ - if (!hasError) { - subtype_declaration(); - } - break; - } - case CONSTANT_T:{ - if (!hasError) { - constant_declaration(); - } - break; - } - case SHARED_T: - case VARIABLE_T:{ - if (!hasError) { - variable_declaration(); - } - break; - } - case FILE_T:{ - if (!hasError) { - file_declaration(); - } - break; - } - case ALIAS_T:{ - if (!hasError) { - alias_declaration(); - } - break; - } - case USE_T:{ - if (!hasError) { - use_clause(); - } - break; - } - default: - jj_la1[155] = jj_gen; - if (jj_2_62(3)) { - if (!hasError) { - group_template_declaration(); - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case GROUP_T:{ - if (!hasError) { - group_declaration(); - } - break; - } - default: - jj_la1[156] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } - } -} - - -void VhdlParser::package_body_declarative_part() { - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ALIAS_T: - case CONSTANT_T: - case FILE_T: - case FUNCTION_T: - case GROUP_T: - case IMPURE_T: - case PROCEDURE_T: - case PURE_T: - case SHARED_T: - case SUBTYPE_T: - case TYPE_T: - case USE_T: - case VARIABLE_T:{ - ; - break; - } - default: - jj_la1[157] = jj_gen; - goto end_label_29; - } - if (!hasError) { - package_body_declarative_item(); - } - } - end_label_29: ; - } -} - - -void VhdlParser::package_header() {QCString s; - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case GENERIC_T:{ - if (!hasError) { - generic_clause(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case GENERIC_T:{ - if (!hasError) { - generic_map_aspect(); - } - if (!hasError) { - jj_consume_token(SEMI_T); - } - break; - } - default: - jj_la1[158] = jj_gen; - ; - } - } - break; - } - default: - jj_la1[159] = jj_gen; - ; - } - } -} - - -void VhdlParser::package_declaration() {QCString s; - if (!hasError) { - jj_consume_token(PACKAGE_T); - } - if (!hasError) { - s = identifier(); - } - if (!hasError) { - jj_consume_token(IS_T); - } - if (!hasError) { -m_sharedState->lastCompound=m_sharedState->current; - std::shared_ptr clone=std::make_shared(*m_sharedState->current); - clone->section=Entry::NAMESPACE_SEC; - clone->spec=VhdlDocGen::PACKAGE; - clone->name=s; - clone->startLine=outlineParser()->getLine(PACKAGE_T); - clone->bodyLine=outlineParser()->getLine(PACKAGE_T); - clone->protection=Package; - m_sharedState->current_root->moveToSubEntryAndKeep(clone); - outlineParser()->addVhdlType(s,outlineParser()->getLine(PACKAGE_T),Entry::CLASS_SEC,VhdlDocGen::PACKAGE,0,0,Package); - } - if (!hasError) { - package_header(); - } - if (!hasError) { - package_declarative_part(); - } - if (!hasError) { - jj_consume_token(END_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case PACKAGE_T:{ - if (!hasError) { - jj_consume_token(PACKAGE_T); - } - break; - } - default: - jj_la1[160] = jj_gen; - ; - } - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case SLSL_T: - case STRINGLITERAL: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - name(); - } - break; - } - default: - jj_la1[161] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -m_sharedState->lastEntity=0;m_sharedState->lastCompound=0; m_sharedState->genLabels.resize(0); -} - - -void VhdlParser::geninter() { - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case GENERIC_T:{ - if (!hasError) { - gen_interface_list(); - } - if (!hasError) { - jj_consume_token(SEMI_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case GENERIC_T:{ - if (!hasError) { - gen_assoc_list(); - } - if (!hasError) { - jj_consume_token(SEMI_T); - } - break; - } - default: - jj_la1[162] = jj_gen; - ; - } - } - break; - } - default: - jj_la1[163] = jj_gen; - ; - } - } -} - - -void VhdlParser::package_declarative_item() { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case FUNCTION_T: - case IMPURE_T: - case PROCEDURE_T: - case PURE_T:{ - if (!hasError) { - subprogram_declaration(); - } - break; - } - case TYPE_T:{ - if (!hasError) { - type_declaration(); - } - break; - } - case SUBTYPE_T:{ - if (!hasError) { - subtype_declaration(); - } - break; - } - case CONSTANT_T:{ - if (!hasError) { - constant_declaration(); - } - break; - } - case SIGNAL_T:{ - if (!hasError) { - signal_declaration(); - } - break; - } - case SHARED_T: - case VARIABLE_T:{ - if (!hasError) { - variable_declaration(); - } - break; - } - case FILE_T:{ - if (!hasError) { - file_declaration(); - } - break; - } - case ALIAS_T:{ - if (!hasError) { - alias_declaration(); - } - break; - } - case COMPONENT_T:{ - if (!hasError) { - component_declaration(); - } - break; - } - default: - jj_la1[164] = jj_gen; - if (jj_2_63(2147483647)) { - if (!hasError) { - attribute_declaration(); - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ATTRIBUTE_T:{ - if (!hasError) { - attribute_specification(); - } - break; - } - case DISCONNECT_T:{ - if (!hasError) { - disconnection_specification(); - } - break; - } - case USE_T:{ - if (!hasError) { - use_clause(); - } - break; - } - default: - jj_la1[165] = jj_gen; - if (jj_2_64(3)) { - if (!hasError) { - group_template_declaration(); - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case GROUP_T:{ - if (!hasError) { - group_declaration(); - } - break; - } - default: - jj_la1[166] = jj_gen; - if (jj_2_65(5)) { - if (!hasError) { - package_instantiation_declaration(); - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case PACKAGE_T:{ - if (!hasError) { - package_declaration(); - } - break; - } - default: - jj_la1[167] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } - } - } - } - } - } -} - - -void VhdlParser::package_declarative_part() { - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ALIAS_T: - case ATTRIBUTE_T: - case COMPONENT_T: - case CONSTANT_T: - case DISCONNECT_T: - case FILE_T: - case FUNCTION_T: - case GROUP_T: - case IMPURE_T: - case PACKAGE_T: - case PROCEDURE_T: - case PURE_T: - case SIGNAL_T: - case SHARED_T: - case SUBTYPE_T: - case TYPE_T: - case USE_T: - case VARIABLE_T:{ - ; - break; - } - default: - jj_la1[168] = jj_gen; - goto end_label_30; - } - if (!hasError) { - package_declarative_item(); - } - } - end_label_30: ; - } -} - - -QCString VhdlParser::parameter_specification() {QCString s,s1; - if (!hasError) { - s = identifier(); - } - if (!hasError) { - jj_consume_token(IN_T); - } - if (!hasError) { - s1 = discrete_range(); - } -return s+" in "+s1; -assert(false);return ""; -} - - -QCString VhdlParser::physical_literal() {QCString s,s1; - if (!hasError) { - if (jj_2_66(2147483647)) { - if (!hasError) { - s = abstract_literal(); - } - } else { - ; - } - } - if (!hasError) { - s1 = name(); - } -s+=" ";s+=s1;s.prepend(" "); return s; -assert(false);return ""; -} - - -QCString VhdlParser::physical_type_definition() {QCString s,s1,s2;Token *t=0; - if (!hasError) { - t = jj_consume_token(UNITS_T); - } - if (!hasError) { - s = identifier(); - } - if (!hasError) { - jj_consume_token(SEMI_T); - } - if (!hasError) { -outlineParser()->addVhdlType(s.data(),t->beginLine,Entry::VARIABLE_SEC,VhdlDocGen::UNITS,0,0,Public); - } - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - ; - break; - } - default: - jj_la1[169] = jj_gen; - goto end_label_31; - } - if (!hasError) { - s1 = secondary_unit_declaration(); - } - } - end_label_31: ; - } - if (!hasError) { - jj_consume_token(END_T); - } - if (!hasError) { - jj_consume_token(UNITS_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case SLSL_T: - case STRINGLITERAL: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - name(); - } - break; - } - default: - jj_la1[170] = jj_gen; - ; - } - } -return s; -assert(false);return ""; -} - - -void VhdlParser::port_clause() { - if (!hasError) { - jj_consume_token(PORT_T); - } - if (!hasError) { - jj_consume_token(LPAREN_T); - } - if (!hasError) { - port_list(); - } - if (!hasError) { - jj_consume_token(RPAREN_T); - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -m_sharedState->currP=0; -} - - -QCString VhdlParser::port_list() {QCString s; - if (!hasError) { - s = interface_list(); - } -return s; -assert(false);return ""; -} - - -void VhdlParser::port_map_aspect() { - if (!hasError) { - jj_consume_token(PORT_T); - } - if (!hasError) { - jj_consume_token(MAP_T); - } - if (!hasError) { - jj_consume_token(LPAREN_T); - } - if (!hasError) { - association_list(); - } - if (!hasError) { - jj_consume_token(RPAREN_T); - } -} - - -QCString VhdlParser::primary() {QCString s,s1; - if (jj_2_67(2147483647)) { - if (!hasError) { - s = function_call(); - } - if (!hasError) { -return s; - } - } else if (jj_2_68(2147483647)) { - if (!hasError) { - jj_consume_token(LPAREN_T); - } - if (!hasError) { - s1 = expression(); - } - if (!hasError) { - jj_consume_token(RPAREN_T); - } - if (!hasError) { -s="("+s1+")"; return s; - } - } else if (jj_2_69(2147483647)) { - if (!hasError) { - s = qualified_expression(); - } - if (!hasError) { -return s; - } - } else if (jj_2_70(2147483647)) { - if (!hasError) { - s = type_conversion(); - } - if (!hasError) { -return s; - } - } else if (jj_2_71(2147483647)) { - if (!hasError) { - s = literal(); - } - if (!hasError) { -s.prepend(" ");return s; - } - } else if (jj_2_72(2147483647)) { - if (!hasError) { - s = name(); - } - if (!hasError) { -return s; - } - } else if (jj_2_73(2147483647)) { - if (!hasError) { - allocator(); - } - if (!hasError) { -return ""; - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case LPAREN_T:{ - if (!hasError) { - s = aggregate(); - } - if (!hasError) { -return s; - } - break; - } - default: - jj_la1[171] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } -assert(false);return ""; -} - - -void VhdlParser::primary_unit() { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ENTITY_T:{ - if (!hasError) { - entity_declaration(); - } - break; - } - case CONFIGURATION_T:{ - if (!hasError) { - configuration_declaration(); - } - break; - } - default: - jj_la1[172] = jj_gen; - if (jj_2_74(2147483647)) { - if (!hasError) { - package_instantiation_declaration(); - } - } else if (jj_2_75(4)) { - if (!hasError) { - interface_package_declaration(); - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case PACKAGE_T:{ - if (!hasError) { - package_declaration(); - } - break; - } - case CONTEXT_T:{ - if (!hasError) { - context_declaration(); - } - break; - } - default: - jj_la1[173] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } - } -} - - -QCString VhdlParser::procedure_call() {QCString s,s1; - if (!hasError) { - s = name(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case LPAREN_T:{ - if (!hasError) { - jj_consume_token(LPAREN_T); - } - if (!hasError) { - s1 = actual_parameter_part(); - } - if (!hasError) { - jj_consume_token(RPAREN_T); - } - if (!hasError) { -s1.prepend("("); s1.append(")"); - } - break; - } - default: - jj_la1[174] = jj_gen; - ; - } - } -return s+s1; -assert(false);return ""; -} - - -QCString VhdlParser::procedure_call_statement() {QCString s,s1; - if (!hasError) { - if (jj_2_76(2)) { - if (!hasError) { - s = identifier(); - } - if (!hasError) { - jj_consume_token(COLON_T); - } - if (!hasError) { -s+=":"; - } - } else { - ; - } - } - if (!hasError) { - s1 = procedure_call(); - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -return s+s1+";"; -assert(false);return ""; -} - - -QCString VhdlParser::process_declarative_item() {QCString s; - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case FUNCTION_T: - case IMPURE_T: - case PROCEDURE_T: - case PURE_T:{ - if (!hasError) { - subprogram_declaration(); - } - if (!hasError) { -return ""; - } - break; - } - case TYPE_T:{ - if (!hasError) { - s = type_declaration(); - } - if (!hasError) { -return s; - } - break; - } - case SUBTYPE_T:{ - if (!hasError) { - s = subtype_declaration(); - } - if (!hasError) { -return s; - } - break; - } - case CONSTANT_T:{ - if (!hasError) { - s = constant_declaration(); - } - if (!hasError) { -return s; - } - break; - } - case SHARED_T: - case VARIABLE_T:{ - if (!hasError) { - s = variable_declaration(); - } - if (!hasError) { -return s; - } - break; - } - case FILE_T:{ - if (!hasError) { - s = file_declaration(); - } - if (!hasError) { -return s; - } - break; - } - case ALIAS_T:{ - if (!hasError) { - s = alias_declaration(); - } - if (!hasError) { -return s; - } - break; - } - default: - jj_la1[175] = jj_gen; - if (jj_2_77(3)) { - if (!hasError) { - s = attribute_declaration(); - } - if (!hasError) { -return s; - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ATTRIBUTE_T:{ - if (!hasError) { - s = attribute_specification(); - } - if (!hasError) { -return s; - } - break; - } - case USE_T:{ - if (!hasError) { - s = use_clause(); - } - if (!hasError) { -return s; - } - break; - } - default: - jj_la1[176] = jj_gen; - if (jj_2_78(3)) { - if (!hasError) { - s = group_template_declaration(); - } - if (!hasError) { -return s; - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case GROUP_T:{ - if (!hasError) { - s = group_declaration(); - } - if (!hasError) { -return s; - } - break; - } - default: - jj_la1[177] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } - } - } - } -assert(false);return ""; -} - - -QCString VhdlParser::process_declarative_part() {QCString s,s1; - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ALIAS_T: - case ATTRIBUTE_T: - case CONSTANT_T: - case FILE_T: - case FUNCTION_T: - case GROUP_T: - case IMPURE_T: - case PROCEDURE_T: - case PURE_T: - case SHARED_T: - case SUBTYPE_T: - case TYPE_T: - case USE_T: - case VARIABLE_T:{ - ; - break; - } - default: - jj_la1[178] = jj_gen; - goto end_label_32; - } - if (!hasError) { - s1 = process_declarative_item(); - } - if (!hasError) { -s+=s1; - } - } - end_label_32: ; - } -return s; -assert(false);return ""; -} - - -void VhdlParser::process_statement() {QCString s,s1,s2;Token *tok=0;Token *tok1=0; - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - s = identifier(); - } - if (!hasError) { - jj_consume_token(COLON_T); - } - break; - } - default: - jj_la1[179] = jj_gen; - ; - } - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case POSTPONED_T:{ - if (!hasError) { - jj_consume_token(POSTPONED_T); - } - break; - } - default: - jj_la1[180] = jj_gen; - ; - } - } - if (!hasError) { - tok1 = jj_consume_token(PROCESS_T); - } - if (!hasError) { -m_sharedState->currP=VhdlDocGen::PROCESS; - m_sharedState->current->startLine=tok1->beginLine; - m_sharedState->current->bodyLine=tok1->beginLine; - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case LPAREN_T:{ - if (!hasError) { - jj_consume_token(LPAREN_T); - } - if (!hasError) { - if (!hasError) { - s1 = sensitivity_list(); - } - } - if (!hasError) { - jj_consume_token(RPAREN_T); - } - break; - } - default: - jj_la1[181] = jj_gen; - ; - } - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case IS_T:{ - if (!hasError) { - jj_consume_token(IS_T); - } - break; - } - default: - jj_la1[182] = jj_gen; - ; - } - } - if (!hasError) { - s2 = process_declarative_part(); - } - if (!hasError) { -if (s2.data()) - FlowChart::addFlowChart(FlowChart::VARIABLE_NO,s2.data(),0); - FlowChart::addFlowChart(FlowChart::BEGIN_NO,"BEGIN",0); - } - if (!hasError) { - jj_consume_token(BEGIN_T); - } - if (!hasError) { - process_statement_part(); - } - if (!hasError) { - jj_consume_token(END_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case POSTPONED_T:{ - if (!hasError) { - jj_consume_token(POSTPONED_T); - } - break; - } - default: - jj_la1[183] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(PROCESS_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - identifier(); - } - break; - } - default: - jj_la1[184] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -if(s.isEmpty()) - m_sharedState->currName=VhdlDocGen::getProcessNumber(); - else - m_sharedState->currName=s; - m_sharedState->current->name=m_sharedState->currName; - m_sharedState->tempEntry=m_sharedState->current; - m_sharedState->tempEntry->type=""; - m_sharedState->current->endBodyLine=outlineParser()->getLine(); - m_sharedState->currP=0; - if(tok) - s1=tok->image.data(); - outlineParser()->createFunction(m_sharedState->currName,VhdlDocGen::PROCESS,s1.data()); - outlineParser()->createFlow(); - m_sharedState->currName=""; - outlineParser()->newEntry(); -} - - -void VhdlParser::process_statement_part() { - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ASSERT_T: - case CASE_T: - case EXIT_T: - case FOR_T: - case IF_T: - case LOOP_T: - case NEXT_T: - case NULL_T: - case REPORT_T: - case RETURN_T: - case WAIT_T: - case WHILE_T: - case WITH_T: - case LPAREN_T: - case SLSL_T: - case STRINGLITERAL: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - ; - break; - } - default: - jj_la1[185] = jj_gen; - goto end_label_33; - } - if (!hasError) { - sequential_statement(); - } - } - end_label_33: ; - } -} - - -QCString VhdlParser::qualified_expression() {QCString s,s1; - if (!hasError) { - s1 = identifier(); - } - if (!hasError) { - jj_consume_token(APOSTROPHE_T); - } - if (!hasError) { -s=s1+"'"; - } - if (!hasError) { - if (jj_2_79(2147483647)) { - if (!hasError) { - s1 = aggregate(); - } - if (!hasError) { -s+=s1; - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case LPAREN_T:{ - if (!hasError) { - jj_consume_token(LPAREN_T); - } - if (!hasError) { - s1 = expression(); - } - if (!hasError) { - jj_consume_token(RPAREN_T); - } - if (!hasError) { -s+="(";s+=s1;s+=")"; - } - break; - } - default: - jj_la1[186] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } - } -return s; -assert(false);return ""; -} - - -QCString VhdlParser::range() {QCString s,s1,s2; - if (jj_2_80(2147483647)) { - if (!hasError) { - s = simple_expression(); - } - if (!hasError) { - s1 = direction(); - } - if (!hasError) { - s2 = simple_expression(); - } - if (!hasError) { -return s+" "+s1+" "+s2; - } - } else if (jj_2_81(2147483647)) { - if (!hasError) { - s = attribute_name(); - } - if (!hasError) { -return s; - } - } else { - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false);return ""; -} - - -QCString VhdlParser::range_constraint() {QCString s,s1; - if (!hasError) { - jj_consume_token(RANGE_T); - } - if (!hasError) { - s = range(); - } -return " range "+s; -assert(false);return ""; -} - - -void VhdlParser::record_type_definition() { - if (!hasError) { - jj_consume_token(RECORD_T); - } - if (!hasError) { - while (!hasError) { - if (!hasError) { - element_declaration(); - } - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case SLSL_T: - case STRINGLITERAL: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - ; - break; - } - default: - jj_la1[187] = jj_gen; - goto end_label_34; - } - } - end_label_34: ; - } - if (!hasError) { - jj_consume_token(END_T); - } - if (!hasError) { - jj_consume_token(RECORD_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case SLSL_T: - case STRINGLITERAL: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - name(); - } - break; - } - default: - jj_la1[188] = jj_gen; - ; - } - } -} - - -QCString VhdlParser::relation() {QCString s,s1,s2; - if (!hasError) { - s = shift_expression(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case LESSTHAN_T: - case GREATERTHAN_T: - case LT_T: - case GT_T: - case EQU_T: - case NOTEQU_T: - case QGT_T: - case QLT_T: - case QG_T: - case QL_T: - case QEQU_T: - case QNEQU_T:{ - if (!hasError) { - s1 = relation_operator(); - } - if (!hasError) { - s2 = shift_expression(); - } - break; - } - default: - jj_la1[189] = jj_gen; - ; - } - } -return s+s1+s2; -assert(false);return ""; -} - - -QCString VhdlParser::relation_operator() { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case LT_T:{ - if (!hasError) { - jj_consume_token(LT_T); - } - if (!hasError) { -return "<"; - } - break; - } - case GT_T:{ - if (!hasError) { - jj_consume_token(GT_T); - } - if (!hasError) { -return ">"; - } - break; - } - case EQU_T:{ - if (!hasError) { - jj_consume_token(EQU_T); - } - if (!hasError) { -return "="; - } - break; - } - case GREATERTHAN_T:{ - if (!hasError) { - jj_consume_token(GREATERTHAN_T); - } - if (!hasError) { -return ">="; - } - break; - } - case LESSTHAN_T:{ - if (!hasError) { - jj_consume_token(LESSTHAN_T); - } - if (!hasError) { -return "<="; - } - break; - } - case NOTEQU_T:{ - if (!hasError) { - jj_consume_token(NOTEQU_T); - } - if (!hasError) { -return "/="; - } - break; - } - case QGT_T:{ - if (!hasError) { - jj_consume_token(QGT_T); - } - if (!hasError) { -return "?>="; - } - break; - } - case QLT_T:{ - if (!hasError) { - jj_consume_token(QLT_T); - } - if (!hasError) { -return "?<="; - } - break; - } - case QG_T:{ - if (!hasError) { - jj_consume_token(QG_T); - } - if (!hasError) { -return "?>"; - } - break; - } - case QL_T:{ - if (!hasError) { - jj_consume_token(QL_T); - } - if (!hasError) { -return "?<"; - } - break; - } - case QEQU_T:{ - if (!hasError) { - jj_consume_token(QEQU_T); - } - if (!hasError) { -return "?="; - } - break; - } - case QNEQU_T:{ - if (!hasError) { - jj_consume_token(QNEQU_T); - } - if (!hasError) { -return "?/="; - } - break; - } - default: - jj_la1[190] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false);return ""; -} - - -QCString VhdlParser::report_statement() {Token *t=0;Token *t1=0;QCString s,s1,s2; - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - s = identifier(); - } - if (!hasError) { - t = jj_consume_token(COLON_T); - } - break; - } - default: - jj_la1[191] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(REPORT_T); - } - if (!hasError) { - s1 = expression(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case SEVERITY_T:{ - if (!hasError) { - t1 = jj_consume_token(SEVERITY_T); - } - if (!hasError) { - s2 = expression(); - } - break; - } - default: - jj_la1[192] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -if(t) s.append(":"); - s1.prepend(" report "); - if(t1) s2.prepend(" severity "); - return s+s1+s2+";"; -assert(false);return ""; -} - - -QCString VhdlParser::return_statement() {QCString s,s1; - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - s = identifier(); - } - if (!hasError) { - jj_consume_token(COLON_T); - } - if (!hasError) { -s+=":"; - } - break; - } - default: - jj_la1[193] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(RETURN_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ABS_T: - case AND_T: - case NAND_T: - case NEW_T: - case NOR_T: - case NOT_T: - case NULL_T: - case OR_T: - case XOR_T: - case XNOR_T: - case LPAREN_T: - case PLUS_T: - case MINUS_T: - case SLSL_T: - case QQ_T: - case INTEGER: - case STRINGLITERAL: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER: - case CHARACTER_LITERAL: - case DECIMAL_LITERAL: - case BASED_LITERAL: - case BIT_STRING_LITERAL:{ - if (!hasError) { - s1 = expression(); - } - break; - } - default: - jj_la1[194] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -return s+" return "+s1+";"; -assert(false);return ""; -} - - -QCString VhdlParser::scalar_type_definition() {QCString s,s1; - if (jj_2_82(2147483647)) { - if (!hasError) { - s = enumeration_type_definition(); - } - if (!hasError) { -return s; - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case RANGE_T:{ - if (!hasError) { - s = range_constraint(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case UNITS_T:{ - if (!hasError) { - s1 = physical_type_definition(); - } - break; - } - default: - jj_la1[195] = jj_gen; - ; - } - } - if (!hasError) { -return s+" "+s1; - } - break; - } - default: - jj_la1[196] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } -assert(false);return ""; -} - - -void VhdlParser::secondary_unit() { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ARCHITECTURE_T:{ - if (!hasError) { - architecture_body(); - } - break; - } - case PACKAGE_T:{ - if (!hasError) { - package_body(); - } - break; - } - default: - jj_la1[197] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -} - - -QCString VhdlParser::secondary_unit_declaration() {QCString s,s1;Token *t1=0; - if (!hasError) { - s = identifier(); - } - if (!hasError) { - t1 = jj_consume_token(EQU_T); - } - if (!hasError) { - s1 = physical_literal(); - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -outlineParser()->addVhdlType(s.data(),t1->beginLine,Entry::VARIABLE_SEC,VhdlDocGen::UNITS,0,s1.data(),Public); - return s+"="+s1; -assert(false);return ""; -} - - -QCString VhdlParser::selected_name() {QCString s,s1; - if (!hasError) { - s = identifier(); - } - if (!hasError) { - jj_consume_token(DOT_T); - } - if (!hasError) { - s1 = suffix(); - } -return s+"."+s1; -assert(false);return ""; -} - - -void VhdlParser::selected_signal_assignment() { - if (!hasError) { - jj_consume_token(WITH_T); - } - if (!hasError) { - expression(); - } - if (!hasError) { - jj_consume_token(SELECT_T); - } - if (!hasError) { - target(); - } - if (!hasError) { - jj_consume_token(LESSTHAN_T); - } - if (!hasError) { - options(); - } - if (!hasError) { - selected_waveforms(); - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -} - - -void VhdlParser::selected_waveforms() { - if (!hasError) { - waveform(); - } - if (!hasError) { - jj_consume_token(WHEN_T); - } - if (!hasError) { - choices(); - } - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case COMMA_T:{ - ; - break; - } - default: - jj_la1[198] = jj_gen; - goto end_label_35; - } - if (!hasError) { - jj_consume_token(COMMA_T); - } - if (!hasError) { - waveform(); - } - if (!hasError) { - jj_consume_token(WHEN_T); - } - if (!hasError) { - choices(); - } - } - end_label_35: ; - } -} - - -QCString VhdlParser::sensitivity_clause() {QCString s; - if (!hasError) { - jj_consume_token(ON_T); - } - if (!hasError) { - s = sensitivity_list(); - } -s.prepend(" on "); - return s; -assert(false);return ""; -} - - -QCString VhdlParser::sensitivity_list() {QCString s,s1;Token* tok=0; - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ALL_T:{ - if (!hasError) { - tok = jj_consume_token(ALL_T); - } - if (!hasError) { -if(tok) return "all" ; - } - break; - } - case SLSL_T: - case STRINGLITERAL: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - s = name(); - } - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case COMMA_T:{ - ; - break; - } - default: - jj_la1[199] = jj_gen; - goto end_label_36; - } - if (!hasError) { - jj_consume_token(COMMA_T); - } - if (!hasError) { - s1 = name(); - } - if (!hasError) { -s+=",";s+=s1; - } - } - end_label_36: ; - } - if (!hasError) { -return s; - } - break; - } - default: - jj_la1[200] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false);return ""; -} - - -QCString VhdlParser::sequence_of_statement() {QCString s,s1; - if (!hasError) { - while (!hasError) { - if (jj_2_83(3)) { - ; - } else { - goto end_label_37; - } - if (!hasError) { - s1 = sequential_statement(); - } - if (!hasError) { -s+=s1; - } - } - end_label_37: ; - } -return s; -assert(false);return ""; -} - - -QCString VhdlParser::sequential_statement() {QCString s; - if (jj_2_84(2147483647)) { - if (!hasError) { - s = signal_assignment_statement(); - } - if (!hasError) { -FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0);return s; - } - } else if (jj_2_85(3)) { - if (!hasError) { - s = assertion_statement(); - } - if (!hasError) { -FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0);return s; - } - } else if (jj_2_86(3)) { - if (!hasError) { - s = report_statement(); - } - if (!hasError) { -FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0);return s; - } - } else if (jj_2_87(3)) { - if (!hasError) { - s = wait_statement(); - } - if (!hasError) { -FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0);return s; - } - } else if (jj_2_88(2147483647)) { - if (!hasError) { - s = variable_assignment_statement(); - } - if (!hasError) { -FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0);return s; - } - } else if (jj_2_89(3)) { - if (!hasError) { - s = procedure_call_statement(); - } - if (!hasError) { -FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0);return s; - } - } else if (jj_2_90(3)) { - if (!hasError) { - if_statement(); - } - if (!hasError) { -return s; - } - } else if (jj_2_91(3)) { - if (!hasError) { - case_statement(); - } - if (!hasError) { -return s; - } - } else if (jj_2_92(3)) { - if (!hasError) { - loop_statement(); - } - if (!hasError) { -return s; - } - } else if (jj_2_93(3)) { - if (!hasError) { - s = next_statement(); - } - if (!hasError) { -return s; - } - } else if (jj_2_94(3)) { - if (!hasError) { - s = exit_statement(); - } - if (!hasError) { -return s; - } - } else if (jj_2_95(3)) { - if (!hasError) { - s = return_statement(); - } - if (!hasError) { -FlowChart::addFlowChart(FlowChart::RETURN_NO,s.data(),0);return s; - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case NULL_T: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - s = null_statement(); - } - if (!hasError) { -FlowChart::addFlowChart(FlowChart::TEXT_NO,s.data(),0);return s; - } - break; - } - default: - jj_la1[201] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } -assert(false);return ""; -} - - -QCString VhdlParser::shift_expression() {QCString s,s1,s2; - if (!hasError) { - s = simple_expression(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ROL_T: - case ROR_T: - case SLA_T: - case SLL_T: - case SRA_T: - case SRL_T:{ - if (!hasError) { - s1 = shift_operator(); - } - if (!hasError) { - s2 = simple_expression(); - } - break; - } - default: - jj_la1[202] = jj_gen; - ; - } - } -return s+s1+s2; -assert(false);return ""; -} - - -QCString VhdlParser::shift_operator() { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case SLL_T:{ - if (!hasError) { - jj_consume_token(SLL_T); - } - if (!hasError) { -return "sll"; - } - break; - } - case SRL_T:{ - if (!hasError) { - jj_consume_token(SRL_T); - } - if (!hasError) { -return "srl"; - } - break; - } - case SLA_T:{ - if (!hasError) { - jj_consume_token(SLA_T); - } - if (!hasError) { -return "sla"; - } - break; - } - case SRA_T:{ - if (!hasError) { - jj_consume_token(SRA_T); - } - if (!hasError) { -return "sra"; - } - break; - } - case ROL_T:{ - if (!hasError) { - jj_consume_token(ROL_T); - } - if (!hasError) { -return "rol"; - } - break; - } - case ROR_T:{ - if (!hasError) { - jj_consume_token(ROR_T); - } - if (!hasError) { -return "ror"; - } - break; - } - default: - jj_la1[203] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false);return ""; -} - - -QCString VhdlParser::sign() { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case PLUS_T:{ - if (!hasError) { - jj_consume_token(PLUS_T); - } - if (!hasError) { -return "+"; - } - break; - } - case MINUS_T:{ - if (!hasError) { - jj_consume_token(MINUS_T); - } - if (!hasError) { -return "-"; - } - break; - } - default: - jj_la1[204] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false);return ""; -} - - -QCString VhdlParser::signal_assignment_statement() {QCString s,s1,s2,s3; - if (jj_2_97(2147483647)) { - if (!hasError) { - conditional_signal_assignment_wave(); - } - if (!hasError) { -return ""; - } - } else if (jj_2_98(2147483647)) { - if (!hasError) { - selected_signal_assignment_wave(); - } - if (!hasError) { -return ""; - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case LPAREN_T: - case SLSL_T: - case STRINGLITERAL: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - if (jj_2_96(2)) { - if (!hasError) { - s = identifier(); - } - if (!hasError) { - jj_consume_token(COLON_T); - } - if (!hasError) { -s+=":"; - } - } else { - ; - } - } - if (!hasError) { - s1 = target(); - } - if (!hasError) { - jj_consume_token(LESSTHAN_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case INERTIAL_T: - case REJECT_T: - case TRANSPORT_T:{ - if (!hasError) { - s2 = delay_mechanism(); - } - break; - } - default: - jj_la1[205] = jj_gen; - ; - } - } - if (!hasError) { - s3 = waveform(); - } - if (!hasError) { - jj_consume_token(SEMI_T); - } - if (!hasError) { -return s+s1+"<="+s2+s3+";"; - } - break; - } - default: - jj_la1[206] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } -assert(false);return ""; -} - - -void VhdlParser::semi() { - if (!hasError) { - jj_consume_token(SEMI_T); - } -} - - -void VhdlParser::signal_declaration() {Token* tok=0;QCString s,s1,s2,s3,s4; - if (!hasError) { - jj_consume_token(SIGNAL_T); - } - if (!hasError) { - s = identifier_list(); - } - if (!hasError) { - jj_consume_token(COLON_T); - } - if (!hasError) { - s1 = subtype_indication(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BUS_T: - case REGISTER_T:{ - if (!hasError) { - s2 = signal_kind(); - } - break; - } - default: - jj_la1[207] = jj_gen; - ; - } - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case VARASSIGN_T:{ - if (!hasError) { - tok = jj_consume_token(VARASSIGN_T); - } - if (!hasError) { - s3 = expression(); - } - break; - } - default: - jj_la1[208] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -if(tok) - s3.prepend(":="); - s4=s1+s2+s3; - outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(),Entry::VARIABLE_SEC,VhdlDocGen::SIGNAL,0,s4.data(),Public); -} - - -QCString VhdlParser::signal_kind() { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case REGISTER_T:{ - if (!hasError) { - jj_consume_token(REGISTER_T); - } - if (!hasError) { -return "register"; - } - break; - } - case BUS_T:{ - if (!hasError) { - jj_consume_token(BUS_T); - } - if (!hasError) { -return "bus"; - } - break; - } - default: - jj_la1[209] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false);return ""; -} - - -QCString VhdlParser::signal_list() {QCString s,s1; - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case SLSL_T: - case STRINGLITERAL: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - s = name(); - } - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case COMMA_T:{ - ; - break; - } - default: - jj_la1[210] = jj_gen; - goto end_label_38; - } - if (!hasError) { - jj_consume_token(COMMA_T); - } - if (!hasError) { - s1 = name(); - } - if (!hasError) { -s+=",";s+=s1; - } - } - end_label_38: ; - } - break; - } - case OTHER_T:{ - if (!hasError) { - jj_consume_token(OTHER_T); - } - if (!hasError) { -return "other"; - } - break; - } - case ALL_T:{ - if (!hasError) { - jj_consume_token(ALL_T); - } - if (!hasError) { -return "all"; - } - break; - } - default: - jj_la1[211] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false);return ""; -} - - -QCString VhdlParser::signature() {QCString s,s1,s2; - if (!hasError) { - jj_consume_token(LBRACKET_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case SLSL_T: - case STRINGLITERAL: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - s = name(); - } - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case COMMA_T:{ - ; - break; - } - default: - jj_la1[212] = jj_gen; - goto end_label_39; - } - if (!hasError) { - jj_consume_token(COMMA_T); - } - if (!hasError) { - s1 = name(); - } - if (!hasError) { -s+=",";s+=s1; - } - } - end_label_39: ; - } - break; - } - default: - jj_la1[213] = jj_gen; - ; - } - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case RETURN_T:{ - if (!hasError) { - jj_consume_token(RETURN_T); - } - if (!hasError) { - s1 = name(); - } - if (!hasError) { -s+="return ";s+=s1; - } - break; - } - default: - jj_la1[214] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(RBRACKET_T); - } -s1="["+s+"]";return s1; -assert(false);return ""; -} - - -QCString VhdlParser::simple_expression() {QCString s,s1,s2; - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case PLUS_T: - case MINUS_T:{ - if (!hasError) { - s = sign(); - } - break; - } - default: - jj_la1[215] = jj_gen; - ; - } - } - if (!hasError) { - s1 = term(); - } - if (!hasError) { -s+=s1; - } - if (!hasError) { - while (!hasError) { - if (jj_2_99(2147483647)) { - ; - } else { - goto end_label_40; - } - if (!hasError) { - s1 = adding_operator(); - } - if (!hasError) { - s2 = term(); - } - if (!hasError) { -s+=s1;s+=s2; - } - } - end_label_40: ; - } -return s; -assert(false);return ""; -} - - -void VhdlParser::simple_name() { - if (!hasError) { - name(); - } -} - - -QCString VhdlParser::slice_name() {QCString s,s1; - if (!hasError) { - s = identifier(); - } - if (!hasError) { - jj_consume_token(LPAREN_T); - } - if (!hasError) { - s1 = discrete_range(); - } - if (!hasError) { - jj_consume_token(RPAREN_T); - } -return s+"("+s1+")"; -assert(false);return ""; -} - - -QCString VhdlParser::string_literal() {Token *tok=0; - if (!hasError) { - tok = jj_consume_token(STRINGLITERAL); - } -return tok->image.c_str(); -assert(false);return ""; -} - - -void VhdlParser::subprogram_body() {QCString s; - if (!hasError) { - jj_consume_token(IS_T); - } - if (!hasError) { - //try{ - s = subprogram_declarative_part(); - } - if (!hasError) { -if (s.data()) - { - FlowChart::addFlowChart(FlowChart::VARIABLE_NO,s,0); - } - FlowChart::addFlowChart(FlowChart::BEGIN_NO,"BEGIN",0); - } - if (!hasError) { - jj_consume_token(BEGIN_T); - } - if (!hasError) { - subprogram_statement_part(); - } - if (!hasError) { - jj_consume_token(END_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case FUNCTION_T: - case PROCEDURE_T:{ - if (!hasError) { - subprogram_kind(); - } - break; - } - default: - jj_la1[216] = jj_gen; - ; - } - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case STRINGLITERAL: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - designator(); - } - break; - } - default: - jj_la1[217] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -m_sharedState->tempEntry->endBodyLine=outlineParser()->getLine(END_T); - outlineParser()->createFlow(); - m_sharedState->currP=0; -} - - -void VhdlParser::subprogram_declaration() { - if (jj_2_100(2147483647)) { - if (!hasError) { - subprogram_instantiation_declaration(); - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case FUNCTION_T: - case IMPURE_T: - case PROCEDURE_T: - case PURE_T:{ - if (!hasError) { - subprogram_specification(); - } - if (!hasError) { - subprogram_1(); - } - if (!hasError) { -m_sharedState->currP=0; - } - break; - } - default: - jj_la1[218] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } -} - - -void VhdlParser::subprogram_1() { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case IS_T:{ - if (!hasError) { - subprogram_body(); - } - break; - } - case SEMI_T:{ - if (!hasError) { - jj_consume_token(SEMI_T); - } - break; - } - default: - jj_la1[219] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -} - - -QCString VhdlParser::subprogram_declarative_item() {QCString s; - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case FUNCTION_T: - case IMPURE_T: - case PROCEDURE_T: - case PURE_T:{ - if (!hasError) { - subprogram_declaration(); - } - if (!hasError) { -return ""; - } - break; - } - case TYPE_T:{ - if (!hasError) { - s = type_declaration(); - } - if (!hasError) { -return s; - } - break; - } - case IS_T:{ - if (!hasError) { - subprogram_body(); - } - if (!hasError) { -return ""; - } - break; - } - case SUBTYPE_T:{ - if (!hasError) { - s = subtype_declaration(); - } - if (!hasError) { -return s; - } - break; - } - case CONSTANT_T:{ - if (!hasError) { - s = constant_declaration(); - } - if (!hasError) { -return s; - } - break; - } - case SHARED_T: - case VARIABLE_T:{ - if (!hasError) { - s = variable_declaration(); - } - if (!hasError) { -return s; - } - break; - } - case FILE_T:{ - if (!hasError) { - s = file_declaration(); - } - if (!hasError) { -return s; - } - break; - } - case ALIAS_T:{ - if (!hasError) { - s = alias_declaration(); - } - if (!hasError) { -return s; - } - break; - } - default: - jj_la1[220] = jj_gen; - if (jj_2_101(2147483647)) { - if (!hasError) { - s = attribute_declaration(); - } - if (!hasError) { -return s; - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ATTRIBUTE_T:{ - if (!hasError) { - s = attribute_specification(); - } - if (!hasError) { -return s; - } - break; - } - case USE_T:{ - if (!hasError) { - s = use_clause(); - } - if (!hasError) { -return s; - } - break; - } - default: - jj_la1[221] = jj_gen; - if (jj_2_102(3)) { - if (!hasError) { - s = group_template_declaration(); - } - if (!hasError) { -return s; - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case GROUP_T:{ - if (!hasError) { - s = group_declaration(); - } - if (!hasError) { -return s; - } - break; - } - default: - jj_la1[222] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } - } - } - } -assert(false);return ""; -} - - -QCString VhdlParser::subprogram_declarative_part() {QCString s,s1; - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ALIAS_T: - case ATTRIBUTE_T: - case CONSTANT_T: - case FILE_T: - case FUNCTION_T: - case GROUP_T: - case IMPURE_T: - case IS_T: - case PROCEDURE_T: - case PURE_T: - case SHARED_T: - case SUBTYPE_T: - case TYPE_T: - case USE_T: - case VARIABLE_T:{ - ; - break; - } - default: - jj_la1[223] = jj_gen; - goto end_label_41; - } - if (!hasError) { - s1 = subprogram_declarative_item(); - } - if (!hasError) { -s+=s1; - } - } - end_label_41: ; - } -return s; -assert(false);return ""; -} - - -void VhdlParser::subprogram_kind() { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case FUNCTION_T:{ - if (!hasError) { - jj_consume_token(FUNCTION_T); - } - break; - } - case PROCEDURE_T:{ - if (!hasError) { - jj_consume_token(PROCEDURE_T); - } - break; - } - default: - jj_la1[224] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -} - - -void VhdlParser::subprogram_specification() {QCString s;Token *tok=0;Token *t; - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case PROCEDURE_T:{ - if (!hasError) { - jj_consume_token(PROCEDURE_T); - } - if (!hasError) { - s = designator(); - } - if (!hasError) { -m_sharedState->currP=VhdlDocGen::PROCEDURE; - outlineParser()->createFunction(s.data(),m_sharedState->currP,0); - m_sharedState->tempEntry=m_sharedState->current; - m_sharedState->current->startLine=outlineParser()->getLine(PROCEDURE_T); - m_sharedState->current->bodyLine=outlineParser()->getLine(PROCEDURE_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case LPAREN_T:{ - if (!hasError) { - jj_consume_token(LPAREN_T); - } - if (!hasError) { -m_sharedState->param_sec=PARAM_SEC; - } - if (!hasError) { - interface_list(); - } - if (!hasError) { -m_sharedState->param_sec=0; - } - if (!hasError) { - jj_consume_token(RPAREN_T); - } - break; - } - default: - jj_la1[225] = jj_gen; - ; - } - } - if (!hasError) { - if (jj_2_103(2)) { - if (!hasError) { - gen_interface_list(); - } - } else { - ; - } - } - if (!hasError) { - if (jj_2_104(2)) { - if (!hasError) { - gen_assoc_list(); - } - } else { - ; - } - } - if (!hasError) { - param(); - } - if (!hasError) { -outlineParser()->newEntry(); - } - break; - } - case FUNCTION_T: - case IMPURE_T: - case PURE_T:{ - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case IMPURE_T: - case PURE_T:{ - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case PURE_T:{ - if (!hasError) { - tok = jj_consume_token(PURE_T); - } - break; - } - case IMPURE_T:{ - if (!hasError) { - tok = jj_consume_token(IMPURE_T); - } - break; - } - default: - jj_la1[226] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } - break; - } - default: - jj_la1[227] = jj_gen; - ; - } - } - if (!hasError) { - t = jj_consume_token(FUNCTION_T); - } - if (!hasError) { - s = designator(); - } - if (!hasError) { -m_sharedState->currP=VhdlDocGen::FUNCTION; - if(tok) - outlineParser()->createFunction(tok->image.c_str(),m_sharedState->currP,s.data()); - else - outlineParser()->createFunction(0,m_sharedState->currP,s.data()); - m_sharedState->tempEntry=m_sharedState->current; - m_sharedState->current->startLine=outlineParser()->getLine(FUNCTION_T); - m_sharedState->current->bodyLine=outlineParser()->getLine(FUNCTION_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case LPAREN_T:{ - if (!hasError) { -m_sharedState->param_sec=PARAM_SEC; - } - if (!hasError) { - jj_consume_token(LPAREN_T); - } - if (!hasError) { - formal_parameter_list(); - } - if (!hasError) { - jj_consume_token(RPAREN_T); - } - if (!hasError) { -m_sharedState->param_sec=0; - } - break; - } - default: - jj_la1[228] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(RETURN_T); - } - if (!hasError) { - s = type_mark(); - } - if (!hasError) { -m_sharedState->tempEntry=m_sharedState->current; - m_sharedState->current->type=s; - outlineParser()->newEntry(); - } - break; - } - default: - jj_la1[229] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -} - - -void VhdlParser::subprogram_statement_part() { - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ASSERT_T: - case CASE_T: - case EXIT_T: - case FOR_T: - case IF_T: - case LOOP_T: - case NEXT_T: - case NULL_T: - case REPORT_T: - case RETURN_T: - case WAIT_T: - case WHILE_T: - case WITH_T: - case LPAREN_T: - case SLSL_T: - case STRINGLITERAL: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - ; - break; - } - default: - jj_la1[230] = jj_gen; - goto end_label_42; - } - if (!hasError) { - sequential_statement(); - } - } - end_label_42: ; - } -} - - -QCString VhdlParser::subtype_declaration() {QCString s,s1; - if (!hasError) { - jj_consume_token(SUBTYPE_T); - } - if (!hasError) { - s = identifier(); - } - if (!hasError) { - jj_consume_token(IS_T); - } - if (!hasError) { - s1 = subtype_indication(); - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(),Entry::VARIABLE_SEC,VhdlDocGen::SUBTYPE,0,s1.data(),Public); - return " subtype "+s+" is "+s1+";"; -assert(false);return ""; -} - - -QCString VhdlParser::reslution_indication() {QCString s; - if (!hasError) { - jj_consume_token(LPAREN_T); - } - if (!hasError) { - s = expression(); - } - if (!hasError) { - jj_consume_token(RPAREN_T); - } -return "("+s+")"; -assert(false);return ""; -} - - -QCString VhdlParser::subtype_indication() {QCString s,s1,s2; - if (!hasError) { - if (jj_2_105(5)) { - if (!hasError) { - s = reslution_indication(); - } - } else { - ; - } - } - if (!hasError) { - while (!hasError) { - if (!hasError) { - s1 = name(); - } - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case SLSL_T: - case STRINGLITERAL: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - ; - break; - } - default: - jj_la1[231] = jj_gen; - goto end_label_43; - } - } - end_label_43: ; - } - if (!hasError) { - if (jj_2_106(2147483647)) { - if (!hasError) { - s2 = constraint(); - } - } else { - ; - } - } -return s+" "+s1+" "+s2; -assert(false);return ""; -} - - -QCString VhdlParser::suffix() {QCString s; - if (jj_2_107(2147483647)) { - if (!hasError) { - s = name(); - } - if (!hasError) { -return s; - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case CHARACTER_LITERAL:{ - if (!hasError) { - s = character_literal(); - } - if (!hasError) { -return s; - } - break; - } - case STRINGLITERAL:{ - if (!hasError) { - s = operator_symbol(); - } - if (!hasError) { -return s; - } - break; - } - case ALL_T:{ - if (!hasError) { - jj_consume_token(ALL_T); - } - if (!hasError) { -return " all "; - } - break; - } - default: - jj_la1[232] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } -assert(false);return ""; -} - - -QCString VhdlParser::target() {QCString s; - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case SLSL_T: - case STRINGLITERAL: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - s = name(); - } - if (!hasError) { -return s; - } - break; - } - case LPAREN_T:{ - if (!hasError) { - s = aggregate(); - } - if (!hasError) { -return s; - } - break; - } - default: - jj_la1[233] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false);return ""; -} - - -QCString VhdlParser::term() {QCString s,s1,s2; - if (!hasError) { - s = factor(); - } - if (!hasError) { - while (!hasError) { - if (jj_2_108(2)) { - ; - } else { - goto end_label_44; - } - if (!hasError) { - s1 = multiplying_operation(); - } - if (!hasError) { - s2 = factor(); - } - if (!hasError) { -s+=s1;s+=s2; - } - } - end_label_44: ; - } -return s; -assert(false);return ""; -} - - -QCString VhdlParser::timeout_clause() {QCString s; - if (!hasError) { - jj_consume_token(FOR_T); - } - if (!hasError) { - s = expression(); - } -return " for "+s; -assert(false);return ""; -} - - -QCString VhdlParser::type_conversion() {QCString s,s1; - if (!hasError) { - s = name(); - } - if (!hasError) { - jj_consume_token(LPAREN_T); - } - if (!hasError) { - s1 = expression(); - } - if (!hasError) { - jj_consume_token(RPAREN_T); - } -return s+"("+s1+")"; -assert(false);return ""; -} - - -QCString VhdlParser::type_declaration() {QCString s; - if (jj_2_109(3)) { - if (!hasError) { - s = full_type_declaration(); - } - if (!hasError) { -return s; - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case TYPE_T:{ - if (!hasError) { - s = incomplete_type_declaration(); - } - if (!hasError) { -return s; - } - break; - } - default: - jj_la1[234] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } -assert(false);return ""; -} - - -QCString VhdlParser::type_definition() {QCString s; - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case RANGE_T: - case LPAREN_T:{ - if (!hasError) { - //try{ - s = scalar_type_definition(); - } - if (!hasError) { -return s; - } - break; - } - case ARRAY_T: - case RECORD_T:{ - if (!hasError) { - s = composite_type_definition(); - } - if (!hasError) { -return s; - } - break; - } - case ACCESS_T:{ - if (!hasError) { - s = access_type_definition(); - } - if (!hasError) { -return s; - } - break; - } - case FILE_T:{ - if (!hasError) { - s = file_type_definition(); - } - if (!hasError) { -return s; - } - break; - } - default: - jj_la1[235] = jj_gen; - if (jj_2_110(2)) { - if (!hasError) { - protected_type_body(); - } - if (!hasError) { -return ""; - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case PROTECTED_T:{ - if (!hasError) { - protected_type_declaration(); - } - if (!hasError) { -return ""; - } - break; - } - default: - jj_la1[236] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } - } -assert(false);return ""; -} - - -QCString VhdlParser::type_mark() {QCString s; - if (!hasError) { - s = name(); - } -return s; -assert(false);return ""; -} - - -QCString VhdlParser::unconstraint_array_definition() {QCString s,s1,s2,s3; - if (!hasError) { - jj_consume_token(ARRAY_T); - } - if (!hasError) { - jj_consume_token(LPAREN_T); - } - if (!hasError) { - s = index_subtype_definition(); - } - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case COMMA_T:{ - ; - break; - } - default: - jj_la1[237] = jj_gen; - goto end_label_45; - } - if (!hasError) { - jj_consume_token(COMMA_T); - } - if (!hasError) { - s1 = index_subtype_definition(); - } - if (!hasError) { -s3+=",";s3+=s1; - } - } - end_label_45: ; - } - if (!hasError) { - jj_consume_token(RPAREN_T); - } - if (!hasError) { - jj_consume_token(OF_T); - } - if (!hasError) { - s2 = subtype_indication(); - } -return "array("+s+s3+") of "+s2; -assert(false);return ""; -} - - -QCString VhdlParser::use_clause() {QCString s,s1; - if (!hasError) { - jj_consume_token(USE_T); - } - if (!hasError) { - s = selected_name(); - } - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case COMMA_T:{ - ; - break; - } - default: - jj_la1[238] = jj_gen; - goto end_label_46; - } - if (!hasError) { - jj_consume_token(COMMA_T); - } - if (!hasError) { - s1 = selected_name(); - } - if (!hasError) { -s+=",";s+=s1; - } - } - end_label_46: ; - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -QCStringList ql1=QCStringList::split(",",s); - for (uint j=0;jparse_sec==0 && Config_getBool(SHOW_INCLUDE_FILES) ) - { - outlineParser()->addVhdlType(it.data(),outlineParser()->getLine(),Entry::VARIABLE_SEC,VhdlDocGen::USE,it.data(),"_use_",Public); - } - } - s1="use "+s; - return s1; -assert(false);return ""; -} - - -QCString VhdlParser::variable_assignment_statement() {QCString s,s1,s2; - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case LPAREN_T: - case SLSL_T: - case STRINGLITERAL: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - if (jj_2_111(2)) { - if (!hasError) { - s = identifier(); - } - if (!hasError) { - jj_consume_token(COLON_T); - } - if (!hasError) { -s+=":"; - } - } else { - ; - } - } - if (!hasError) { - s1 = target(); - } - if (!hasError) { - jj_consume_token(VARASSIGN_T); - } - if (!hasError) { - s2 = expression(); - } - if (!hasError) { - jj_consume_token(SEMI_T); - } - if (!hasError) { -return s+s1+":="+s2+";"; - } - break; - } - case WITH_T:{ - if (!hasError) { - selected_variable_assignment(); - } - if (!hasError) { -return ""; - } - break; - } - default: - jj_la1[239] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false);return ""; -} - - -QCString VhdlParser::variable_declaration() {Token *tok=0;Token *t1=0;QCString s,s1,s2; - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case SHARED_T:{ - if (!hasError) { - tok = jj_consume_token(SHARED_T); - } - break; - } - default: - jj_la1[240] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(VARIABLE_T); - } - if (!hasError) { - s = identifier_list(); - } - if (!hasError) { - jj_consume_token(COLON_T); - } - if (!hasError) { - s1 = subtype_indication(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case VARASSIGN_T:{ - if (!hasError) { - t1 = jj_consume_token(VARASSIGN_T); - } - if (!hasError) { - s2 = expression(); - } - break; - } - default: - jj_la1[241] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -int spec; - if(t1) - s2.prepend(":="); - QCString val=" variable "+s+":"+s1+s2+";"; - QCString it=s1; - if(tok != 0) - { - it.prepend(" shared "); - val.prepend(" shared"); - spec=VhdlDocGen::SHAREDVARIABLE; - } - else - spec=VhdlDocGen::SHAREDVARIABLE; - - if(t1) - { - it+=":="; - it+=s2; - } - outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(),Entry::VARIABLE_SEC,spec,0,it.data(),Public); - return val; -assert(false);return ""; -} - - -QCString VhdlParser::wait_statement() {QCString s,s1,s2,s3;Token *t=0; - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - s = identifier(); - } - if (!hasError) { - t = jj_consume_token(COLON_T); - } - break; - } - default: - jj_la1[242] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(WAIT_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ON_T:{ - if (!hasError) { - s1 = sensitivity_clause(); - } - break; - } - default: - jj_la1[243] = jj_gen; - ; - } - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case UNTIL_T:{ - if (!hasError) { - s2 = condition_clause(); - } - break; - } - default: - jj_la1[244] = jj_gen; - ; - } - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case FOR_T:{ - if (!hasError) { - s3 = timeout_clause(); - } - break; - } - default: - jj_la1[245] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -if(t) s.append(":"); - return s+" wait "+s1+s2+s3+";"; -assert(false);return ""; -} - - -QCString VhdlParser::waveform() {QCString s,s1; - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ABS_T: - case AND_T: - case NAND_T: - case NEW_T: - case NOR_T: - case NOT_T: - case NULL_T: - case OR_T: - case XOR_T: - case XNOR_T: - case LPAREN_T: - case PLUS_T: - case MINUS_T: - case SLSL_T: - case QQ_T: - case INTEGER: - case STRINGLITERAL: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER: - case CHARACTER_LITERAL: - case DECIMAL_LITERAL: - case BASED_LITERAL: - case BIT_STRING_LITERAL:{ - if (!hasError) { - s = waveform_element(); - } - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case COMMA_T:{ - ; - break; - } - default: - jj_la1[246] = jj_gen; - goto end_label_47; - } - if (!hasError) { - jj_consume_token(COMMA_T); - } - if (!hasError) { - s1 = waveform_element(); - } - if (!hasError) { -s+=","; s+=s1; - } - } - end_label_47: ; - } - if (!hasError) { -return s; - } - break; - } - case UNAFFECTED_T:{ - if (!hasError) { - jj_consume_token(UNAFFECTED_T); - } - if (!hasError) { -return " unaffected "; - } - break; - } - default: - jj_la1[247] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false);return ""; -} - - -QCString VhdlParser::waveform_element() {QCString s,s1; - if (!hasError) { - s = expression(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case AFTER_T:{ - if (!hasError) { - jj_consume_token(AFTER_T); - } - if (!hasError) { - s1 = expression(); - } - if (!hasError) { -s1.prepend(" after "); - } - break; - } - default: - jj_la1[248] = jj_gen; - ; - } - } -return s+s1; -assert(false);return ""; -} - - -QCString VhdlParser::protected_type_body() { - if (!hasError) { - jj_consume_token(PROTECTED_T); - } - if (!hasError) { - jj_consume_token(BODY_T); - } - if (!hasError) { - protected_type_body_declarative_part(); - } - if (!hasError) { - jj_consume_token(END_T); - } - if (!hasError) { - jj_consume_token(PROTECTED_T); - } - if (!hasError) { - jj_consume_token(BODY_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - identifier(); - } - break; - } - default: - jj_la1[249] = jj_gen; - ; - } - } -return ""; -assert(false);return ""; -} - - -void VhdlParser::protected_type_body_declarative_item() { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case FUNCTION_T: - case IMPURE_T: - case PROCEDURE_T: - case PURE_T:{ - if (!hasError) { - subprogram_declaration(); - } - break; - } - case IS_T:{ - if (!hasError) { - subprogram_body(); - } - break; - } - case TYPE_T:{ - if (!hasError) { - type_declaration(); - } - break; - } - case SUBTYPE_T:{ - if (!hasError) { - subtype_declaration(); - } - break; - } - case CONSTANT_T:{ - if (!hasError) { - constant_declaration(); - } - break; - } - case SHARED_T: - case VARIABLE_T:{ - if (!hasError) { - variable_declaration(); - } - break; - } - case FILE_T:{ - if (!hasError) { - file_declaration(); - } - break; - } - case ALIAS_T:{ - if (!hasError) { - alias_declaration(); - } - break; - } - default: - jj_la1[250] = jj_gen; - if (jj_2_112(2147483647)) { - if (!hasError) { - attribute_declaration(); - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ATTRIBUTE_T:{ - if (!hasError) { - attribute_specification(); - } - break; - } - case USE_T:{ - if (!hasError) { - use_clause(); - } - break; - } - default: - jj_la1[251] = jj_gen; - if (jj_2_113(3)) { - if (!hasError) { - group_template_declaration(); - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case GROUP_T:{ - if (!hasError) { - group_declaration(); - } - break; - } - default: - jj_la1[252] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } - } - } - } -} - - -void VhdlParser::protected_type_body_declarative_part() { - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ALIAS_T: - case ATTRIBUTE_T: - case CONSTANT_T: - case FILE_T: - case FUNCTION_T: - case GROUP_T: - case IMPURE_T: - case IS_T: - case PROCEDURE_T: - case PURE_T: - case SHARED_T: - case SUBTYPE_T: - case TYPE_T: - case USE_T: - case VARIABLE_T:{ - ; - break; - } - default: - jj_la1[253] = jj_gen; - goto end_label_48; - } - if (!hasError) { - protected_type_body_declarative_item(); - } - } - end_label_48: ; - } -} - - -QCString VhdlParser::protected_type_declaration() { - if (!hasError) { - jj_consume_token(PROTECTED_T); - } - if (!hasError) { - try { - if (!hasError) { - protected_type_declarative_part(); - } - } catch ( ...) { -outlineParser()->error_skipto(END_T); - } - } - if (!hasError) { - jj_consume_token(END_T); - } - if (!hasError) { - jj_consume_token(PROTECTED_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - identifier(); - } - break; - } - default: - jj_la1[254] = jj_gen; - ; - } - } -return ""; -assert(false);return ""; -} - - -void VhdlParser::protected_type_declarative_item() { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case FUNCTION_T: - case IMPURE_T: - case PROCEDURE_T: - case PURE_T:{ - if (!hasError) { - subprogram_specification(); - } - break; - } - case ATTRIBUTE_T:{ - if (!hasError) { - attribute_specification(); - } - break; - } - case USE_T:{ - if (!hasError) { - use_clause(); - } - break; - } - default: - jj_la1[255] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -} - - -void VhdlParser::protected_type_declarative_part() { - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ATTRIBUTE_T: - case FUNCTION_T: - case IMPURE_T: - case PROCEDURE_T: - case PURE_T: - case USE_T:{ - ; - break; - } - default: - jj_la1[256] = jj_gen; - goto end_label_49; - } - if (!hasError) { - protected_type_declarative_item(); - } - if (!hasError) { - jj_consume_token(SEMI_T); - } - } - end_label_49: ; - } -} - - -QCString VhdlParser::context_ref() {QCString s, s1; - if (!hasError) { - jj_consume_token(CONTEXT_T); - } - if (!hasError) { - s = identifier(); - } - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case DOT_T:{ - ; - break; - } - default: - jj_la1[257] = jj_gen; - goto end_label_50; - } - if (!hasError) { - jj_consume_token(DOT_T); - } - if (!hasError) { - s1 = identifier(); - } - if (!hasError) { -s+=".";s+=s1; - } - } - end_label_50: ; - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -return "context "+s ; -assert(false);return ""; -} - - -void VhdlParser::context_declaration() {QCString s,s1; - if (!hasError) { - jj_consume_token(CONTEXT_T); - } - if (!hasError) { - s = identifier(); - } - if (!hasError) { - jj_consume_token(IS_T); - } - if (!hasError) { -m_sharedState->parse_sec=CONTEXT_SEC; - } - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case CONTEXT_T: - case LIBRARY_T: - case USE_T:{ - ; - break; - } - default: - jj_la1[258] = jj_gen; - goto end_label_51; - } - if (!hasError) { - s1 = libustcont_stats(); - } - } - end_label_51: ; - } - if (!hasError) { - jj_consume_token(END_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case CONTEXT_T:{ - if (!hasError) { - jj_consume_token(CONTEXT_T); - } - break; - } - default: - jj_la1[259] = jj_gen; - ; - } - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - identifier(); - } - break; - } - default: - jj_la1[260] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -m_sharedState->parse_sec=0; - outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(LIBRARY_T),Entry::VARIABLE_SEC,VhdlDocGen::LIBRARY,"context",s1.data(),Public); -} - - -QCString VhdlParser::libustcont_stats() {QCString s; - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case USE_T:{ - if (!hasError) { - s = use_clause(); - } - if (!hasError) { -return s; - } - break; - } - case LIBRARY_T:{ - if (!hasError) { - s = library_clause(); - } - if (!hasError) { -return s; - } - break; - } - case CONTEXT_T:{ - if (!hasError) { - s = context_ref(); - } - if (!hasError) { -return s; - } - break; - } - default: - jj_la1[261] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false);return ""; -} - - -void VhdlParser::package_instantiation_declaration() {QCString s,s1,s2; - if (!hasError) { - jj_consume_token(PACKAGE_T); - } - if (!hasError) { - s = identifier(); - } - if (!hasError) { - jj_consume_token(IS_T); - } - if (!hasError) { - jj_consume_token(NEW_T); - } - if (!hasError) { - s1 = name(); - } - if (!hasError) { - s2 = signature(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case GENERIC_T:{ - if (!hasError) { - gen_assoc_list(); - } - break; - } - default: - jj_la1[262] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -QCString q=" is new "+s1+s2; - outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(PACKAGE_T),Entry::VARIABLE_SEC,VhdlDocGen::INSTANTIATION,"package",q.data(),Public); -} - - -QCString VhdlParser::interface_package_declaration() {QCString s,s1; - if (!hasError) { - jj_consume_token(PACKAGE_T); - } - if (!hasError) { - s = identifier(); - } - if (!hasError) { - jj_consume_token(IS_T); - } - if (!hasError) { - jj_consume_token(NEW_T); - } - if (!hasError) { - s1 = name(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case GENERIC_T:{ - if (!hasError) { - gen_assoc_list(); - } - break; - } - default: - jj_la1[263] = jj_gen; - ; - } - } -m_sharedState->current->name=s; - return "package "+s+" is new "+s1; -assert(false);return ""; -} - - -QCString VhdlParser::subprogram_instantiation_declaration() {QCString s,s1,s2; - if (!hasError) { - jj_consume_token(FUNCTION_T); - } - if (!hasError) { - s = identifier(); - } - if (!hasError) { - jj_consume_token(IS_T); - } - if (!hasError) { - jj_consume_token(NEW_T); - } - if (!hasError) { - s1 = name(); - } - if (!hasError) { - s2 = signature(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case GENERIC_T:{ - if (!hasError) { - gen_assoc_list(); - } - break; - } - default: - jj_la1[264] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -QCString q= " is new "+s1+s2; - outlineParser()->addVhdlType(s.data(),outlineParser()->getLine(FUNCTION_T),Entry::VARIABLE_SEC,VhdlDocGen::INSTANTIATION,"function ",q.data(),Public); - return q; -assert(false);return ""; -} - - -void VhdlParser::gen_assoc_list() { - if (!hasError) { - jj_consume_token(GENERIC_T); - } - if (!hasError) { - jj_consume_token(MAP_T); - } - if (!hasError) { - jj_consume_token(LPAREN_T); - } - if (!hasError) { - association_list(); - } - if (!hasError) { - jj_consume_token(RPAREN_T); - } -} - - -void VhdlParser::gen_interface_list() { - if (!hasError) { - jj_consume_token(GENERIC_T); - } - if (!hasError) { - jj_consume_token(LPAREN_T); - } - if (!hasError) { -//int u=s_str.iLine; - m_sharedState->parse_sec=GEN_SEC; - } - if (!hasError) { - interface_list(); - } - if (!hasError) { -// QCString vo=$3; - m_sharedState->parse_sec=0; - } - if (!hasError) { - jj_consume_token(RPAREN_T); - } -} - - -void VhdlParser::case_scheme() { - if (!hasError) { - jj_consume_token(CASE_T); - } - if (!hasError) { - expression(); - } - if (!hasError) { - jj_consume_token(GENERATE_T); - } - if (!hasError) { - when_stats(); - } - if (!hasError) { - if (jj_2_114(3)) { - if (!hasError) { - ttend(); - } - } else { - ; - } - } - if (!hasError) { - jj_consume_token(END_T); - } - if (!hasError) { - jj_consume_token(GENERATE_T); - } - if (!hasError) { - generate_statement_body(); - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -} - - -void VhdlParser::when_stats() { - if (!hasError) { - while (!hasError) { - if (!hasError) { - jj_consume_token(WHEN_T); - } - if (!hasError) { - if (jj_2_115(2)) { - if (!hasError) { - label(); - } - if (!hasError) { - jj_consume_token(COLON_T); - } - } else { - ; - } - } - if (!hasError) { - choices(); - } - if (!hasError) { - jj_consume_token(ARROW_T); - } - if (!hasError) { - generate_statement_body(); - } - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case WHEN_T:{ - ; - break; - } - default: - jj_la1[265] = jj_gen; - goto end_label_52; - } - } - end_label_52: ; - } -} - - -void VhdlParser::ttend() { - if (!hasError) { - jj_consume_token(END_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - identifier(); - } - break; - } - default: - jj_la1[266] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -} - - -void VhdlParser::generate_statement_body() { - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ALIAS_T: - case ATTRIBUTE_T: - case BEGIN_T: - case COMPONENT_T: - case CONSTANT_T: - case DISCONNECT_T: - case FILE_T: - case FOR_T: - case FUNCTION_T: - case GROUP_T: - case IMPURE_T: - case PROCEDURE_T: - case PURE_T: - case SIGNAL_T: - case SHARED_T: - case SUBTYPE_T: - case TYPE_T: - case USE_T: - case VARIABLE_T:{ - if (!hasError) { - while (!hasError) { - if (jj_2_116(2147483647)) { - ; - } else { - goto end_label_53; - } - if (!hasError) { - block_declarative_item(); - } - } - end_label_53: ; - } - if (!hasError) { - jj_consume_token(BEGIN_T); - } - break; - } - default: - jj_la1[267] = jj_gen; - ; - } - } - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ASSERT_T: - case CASE_T: - case POSTPONED_T: - case PROCESS_T: - case WITH_T: - case LPAREN_T: - case SLSL_T: - case STRINGLITERAL: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER: - case VHDL2008TOOLDIR:{ - ; - break; - } - default: - jj_la1[268] = jj_gen; - goto end_label_54; - } - if (!hasError) { - concurrent_statement(); - } - } - end_label_54: ; - } -} - - -void VhdlParser::generate_statement_body1() { - if (!hasError) { - generate_statement_body(); - } - if (!hasError) { - generate_scheme_1(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ELSE_T:{ - if (!hasError) { - generate_scheme_2(); - } - break; - } - default: - jj_la1[269] = jj_gen; - ; - } - } -} - - -void VhdlParser::generate_scheme_1() { - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ELSIF_T:{ - ; - break; - } - default: - jj_la1[270] = jj_gen; - goto end_label_55; - } - if (!hasError) { - generate_scheme_3(); - } - } - end_label_55: ; - } -} - - -void VhdlParser::generate_scheme_2() { - if (!hasError) { - jj_consume_token(ELSE_T); - } - if (!hasError) { - if (jj_2_117(2)) { - if (!hasError) { - identifier(); - } - if (!hasError) { - jj_consume_token(COLON_T); - } - } else { - ; - } - } - if (!hasError) { - jj_consume_token(GENERATE_T); - } - if (!hasError) { - generate_statement_body(); - } -} - - -void VhdlParser::generate_scheme_3() { - if (!hasError) { - jj_consume_token(ELSIF_T); - } - if (!hasError) { - if (jj_2_118(2)) { - if (!hasError) { - identifier(); - } - if (!hasError) { - jj_consume_token(COLON_T); - } - } else { - ; - } - } - if (!hasError) { - expression(); - } - if (!hasError) { - jj_consume_token(GENERATE_T); - } - if (!hasError) { - generate_statement_body(); - } -} - - -QCString VhdlParser::external_name() {QCString s,s1,s2; - if (!hasError) { - jj_consume_token(SLSL_T); - } - if (!hasError) { - s = sig_stat(); - } - if (!hasError) { - s1 = external_pathname(); - } - if (!hasError) { - jj_consume_token(COLON_T); - } - if (!hasError) { - s2 = subtype_indication(); - } - if (!hasError) { - jj_consume_token(RSRS_T); - } -QCString t="<<"+s; - QCString t1=s1+":"+s2+">>"; - return s+s1; -assert(false);return ""; -} - - -QCString VhdlParser::sig_stat() {Token *t; - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case CONSTANT_T:{ - if (!hasError) { - t = jj_consume_token(CONSTANT_T); - } - if (!hasError) { -return t->image.data(); - } - break; - } - case SIGNAL_T:{ - if (!hasError) { - t = jj_consume_token(SIGNAL_T); - } - if (!hasError) { -return t->image.data(); - } - break; - } - case VARIABLE_T:{ - if (!hasError) { - t = jj_consume_token(VARIABLE_T); - } - if (!hasError) { -return t->image.data(); - } - break; - } - default: - jj_la1[271] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false);return ""; -} - - -QCString VhdlParser::external_pathname() {QCString s; - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case DOT_T:{ - if (!hasError) { - s = absolute_pathname(); - } - if (!hasError) { -return s; - } - break; - } - case NEG_T:{ - if (!hasError) { - s = relative_pathname(); - } - if (!hasError) { -return s; - } - break; - } - case AT_T:{ - if (!hasError) { - s = package_path_name(); - } - if (!hasError) { -return s; - } - break; - } - default: - jj_la1[272] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false);return ""; -} - - -QCString VhdlParser::absolute_pathname() {QCString s,s1; - if (jj_2_119(2147483647)) { - if (!hasError) { - jj_consume_token(DOT_T); - } - if (!hasError) { - s = pathname_element_list(); - } - if (!hasError) { - s1 = identifier(); - } - if (!hasError) { -return "."+s+s1; - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case DOT_T:{ - if (!hasError) { - jj_consume_token(DOT_T); - } - if (!hasError) { - s = identifier(); - } - if (!hasError) { -return "."+s; - } - break; - } - default: - jj_la1[273] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } -assert(false);return ""; -} - - -QCString VhdlParser::relative_pathname() {QCString s,s1,s2; - if (!hasError) { - s = neg_list(); - } - if (!hasError) { - if (jj_2_120(2147483647)) { - if (!hasError) { - s1 = pathname_element_list(); - } - } else { - ; - } - } - if (!hasError) { - s2 = identifier(); - } -return s+s1+s2; -assert(false);return ""; -} - - -QCString VhdlParser::neg_list() {QCString s; - if (!hasError) { - while (!hasError) { - if (!hasError) { - jj_consume_token(NEG_T); - } - if (!hasError) { - jj_consume_token(DOT_T); - } - if (!hasError) { -s+="^."; - } - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case NEG_T:{ - ; - break; - } - default: - jj_la1[274] = jj_gen; - goto end_label_56; - } - } - end_label_56: ; - } -return s; -assert(false);return ""; -} - - -QCString VhdlParser::pathname_element() {QCString s,s1; - if (!hasError) { - s = identifier(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case LPAREN_T:{ - if (!hasError) { - jj_consume_token(LPAREN_T); - } - if (!hasError) { - s1 = expression(); - } - if (!hasError) { - jj_consume_token(RPAREN_T); - } - break; - } - default: - jj_la1[275] = jj_gen; - ; - } - } -if(!s1.isEmpty()) - return s+"("+s1+")"; - - return s; -assert(false);return ""; -} - - -QCString VhdlParser::pathname_element_list() {QCString s,s1,s2; - if (!hasError) { - if (!hasError) { - s = pathname_element(); - } - if (!hasError) { - jj_consume_token(DOT_T); - } - } - if (!hasError) { -s+="."; - } - if (!hasError) { - while (!hasError) { - if (jj_2_121(2147483647)) { - ; - } else { - goto end_label_57; - } - if (!hasError) { - s1 = pathname_element(); - } - if (!hasError) { - jj_consume_token(DOT_T); - } - if (!hasError) { -s2+=s1;s2+="."; - } - } - end_label_57: ; - } -return s+s2; -assert(false);return ""; -} - - -QCString VhdlParser::package_path_name() {QCString s; - if (!hasError) { - jj_consume_token(AT_T); - } - if (!hasError) { - s = name(); - } -return "@"+s; -assert(false);return ""; -} - - -void VhdlParser::conditional_signal_assignment_wave() { - if (jj_2_122(2147483647)) { - if (!hasError) { - conditional_force_assignment(); - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case LPAREN_T: - case SLSL_T: - case STRINGLITERAL: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - conditional_waveform_assignment(); - } - break; - } - default: - jj_la1[276] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } -} - - -void VhdlParser::conditional_waveform_assignment() { - if (!hasError) { - target(); - } - if (!hasError) { - jj_consume_token(LESSTHAN_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case INERTIAL_T: - case REJECT_T: - case TRANSPORT_T:{ - if (!hasError) { - delay_mechanism(); - } - break; - } - default: - jj_la1[277] = jj_gen; - ; - } - } - if (!hasError) { - waveform_element(); - } - if (!hasError) { - jj_consume_token(WHEN_T); - } - if (!hasError) { - expression(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ELSE_T:{ - if (!hasError) { - else_wave_list(); - } - break; - } - default: - jj_la1[278] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -} - - -void VhdlParser::else_wave_list() { - if (!hasError) { - jj_consume_token(ELSE_T); - } - if (!hasError) { - expression(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case WHEN_T:{ - if (!hasError) { - jj_consume_token(WHEN_T); - } - if (!hasError) { - expression(); - } - break; - } - default: - jj_la1[279] = jj_gen; - ; - } - } -} - - -void VhdlParser::conditional_force_assignment() { - if (!hasError) { - target(); - } - if (!hasError) { - jj_consume_token(LESSTHAN_T); - } - if (!hasError) { - jj_consume_token(FORCE_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case IN_T: - case OUT_T:{ - if (!hasError) { - inout_stat(); - } - break; - } - default: - jj_la1[280] = jj_gen; - ; - } - } - if (!hasError) { - expression(); - } - if (!hasError) { - jj_consume_token(WHEN_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ABS_T: - case AND_T: - case NAND_T: - case NEW_T: - case NOR_T: - case NOT_T: - case NULL_T: - case OR_T: - case XOR_T: - case XNOR_T: - case LPAREN_T: - case PLUS_T: - case MINUS_T: - case SLSL_T: - case QQ_T: - case INTEGER: - case STRINGLITERAL: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER: - case CHARACTER_LITERAL: - case DECIMAL_LITERAL: - case BASED_LITERAL: - case BIT_STRING_LITERAL:{ - if (!hasError) { - expression(); - } - if (!hasError) { - else_stat(); - } - break; - } - default: - jj_la1[281] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -} - - -void VhdlParser::selected_signal_assignment_wave() { - if (jj_2_123(2147483647)) { - if (!hasError) { - selected_force_assignment(); - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case WITH_T:{ - if (!hasError) { - selected_waveform_assignment(); - } - break; - } - default: - jj_la1[282] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } -} - - -void VhdlParser::selected_variable_assignment() { - if (!hasError) { - jj_consume_token(WITH_T); - } - if (!hasError) { - expression(); - } - if (!hasError) { - jj_consume_token(SELECT_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case Q_T:{ - if (!hasError) { - jj_consume_token(Q_T); - } - break; - } - default: - jj_la1[283] = jj_gen; - ; - } - } - if (!hasError) { - select_name(); - } - if (!hasError) { - jj_consume_token(VARASSIGN_T); - } - if (!hasError) { - sel_var_list(); - } -} - - -void VhdlParser::select_name() { - if (jj_2_124(2147483647)) { - if (!hasError) { - aggregate(); - } - } else { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case SLSL_T: - case STRINGLITERAL: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - name(); - } - break; - } - default: - jj_la1[284] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } -} - - -void VhdlParser::selected_waveform_assignment() { - if (!hasError) { - jj_consume_token(WITH_T); - } - if (!hasError) { - expression(); - } - if (!hasError) { - jj_consume_token(SELECT_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case Q_T:{ - if (!hasError) { - jj_consume_token(Q_T); - } - break; - } - default: - jj_la1[285] = jj_gen; - ; - } - } - if (!hasError) { - target(); - } - if (!hasError) { - jj_consume_token(LESSTHAN_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case INERTIAL_T: - case REJECT_T: - case TRANSPORT_T:{ - if (!hasError) { - delay_mechanism(); - } - break; - } - default: - jj_la1[286] = jj_gen; - ; - } - } - if (!hasError) { - sel_wave_list(); - } -} - - -void VhdlParser::selected_force_assignment() { - if (!hasError) { - jj_consume_token(WITH_T); - } - if (!hasError) { - expression(); - } - if (!hasError) { - jj_consume_token(SELECT_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case Q_T:{ - if (!hasError) { - jj_consume_token(Q_T); - } - break; - } - default: - jj_la1[287] = jj_gen; - ; - } - } - if (!hasError) { - target(); - } - if (!hasError) { - jj_consume_token(LESSTHAN_T); - } - if (!hasError) { - jj_consume_token(FORCE_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case IN_T: - case OUT_T:{ - if (!hasError) { - inout_stat(); - } - break; - } - default: - jj_la1[288] = jj_gen; - ; - } - } - if (!hasError) { - sel_var_list(); - } -} - - -void VhdlParser::sel_var_list() { - if (!hasError) { - if (!hasError) { - expression(); - } - if (!hasError) { - jj_consume_token(WHEN_T); - } - if (!hasError) { - choices(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case COMMA_T:{ - if (!hasError) { - jj_consume_token(COMMA_T); - } - break; - } - case SEMI_T:{ - if (!hasError) { - jj_consume_token(SEMI_T); - } - break; - } - default: - jj_la1[289] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } - } - if (!hasError) { - while (!hasError) { - if (jj_2_125(2147483647)) { - ; - } else { - goto end_label_58; - } - if (!hasError) { - expression(); - } - if (!hasError) { - jj_consume_token(WHEN_T); - } - if (!hasError) { - choices(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case COMMA_T:{ - if (!hasError) { - jj_consume_token(COMMA_T); - } - break; - } - case SEMI_T:{ - if (!hasError) { - jj_consume_token(SEMI_T); - } - break; - } - default: - jj_la1[290] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } - } - end_label_58: ; - } -} - - -void VhdlParser::sel_wave_list() { - if (!hasError) { - waveform_element(); - } - if (!hasError) { - jj_consume_token(WHEN_T); - } - if (!hasError) { - choices(); - } - if (!hasError) { - while (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case COMMA_T:{ - ; - break; - } - default: - jj_la1[291] = jj_gen; - goto end_label_59; - } - if (!hasError) { - jj_consume_token(COMMA_T); - } - if (!hasError) { - sel_wave_list(); - } - } - end_label_59: ; - } - if (!hasError) { - jj_consume_token(SEMI_T); - } -} - - -void VhdlParser::inout_stat() { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case IN_T:{ - if (!hasError) { - jj_consume_token(IN_T); - } - break; - } - case OUT_T:{ - if (!hasError) { - jj_consume_token(OUT_T); - } - break; - } - default: - jj_la1[292] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -} - - -void VhdlParser::else_stat() { - if (!hasError) { - while (!hasError) { - if (!hasError) { - jj_consume_token(ELSE_T); - } - if (!hasError) { - expression(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case WHEN_T:{ - if (!hasError) { - jj_consume_token(WHEN_T); - } - if (!hasError) { - expression(); - } - break; - } - default: - jj_la1[293] = jj_gen; - ; - } - } - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case ELSE_T:{ - ; - break; - } - default: - jj_la1[294] = jj_gen; - goto end_label_60; - } - } - end_label_60: ; - } -} - - -QCString VhdlParser::interface_subprogram_declaration() {QCString s; - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case PROCEDURE_T:{ - if (!hasError) { - s = iproc(); - } - if (!hasError) { -return s; - } - break; - } - case FUNCTION_T: - case IMPURE_T: - case PURE_T:{ - if (!hasError) { - s = ifunc(); - } - if (!hasError) { -return s; - } - break; - } - default: - jj_la1[295] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -assert(false);return ""; -} - - -QCString VhdlParser::iproc() {QCString s,s1; - if (!hasError) { - jj_consume_token(PROCEDURE_T); - } - if (!hasError) { - s = identifier(); - } - if (!hasError) { - s1 = param(); - } -m_sharedState->current->name=s; - return "procedure "+s+s1; -assert(false);return ""; -} - - -QCString VhdlParser::ifunc() {QCString s,s1,s2,s3;Token *t=0;Token *t1=0;Token *t2=0; - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case IMPURE_T: - case PURE_T:{ - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case PURE_T:{ - if (!hasError) { - t = jj_consume_token(PURE_T); - } - break; - } - case IMPURE_T:{ - if (!hasError) { - t = jj_consume_token(IMPURE_T); - } - break; - } - default: - jj_la1[296] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - break; - } - default: - jj_la1[297] = jj_gen; - ; - } - } - if (!hasError) { - jj_consume_token(FUNCTION_T); - } - if (!hasError) { - s = name(); - } - if (!hasError) { - s1 = param(); - } - if (!hasError) { - jj_consume_token(RETURN_T); - } - if (!hasError) { - s2 = name(); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case IS_T:{ - if (!hasError) { - t1 = jj_consume_token(IS_T); - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - s3 = identifier(); - } - break; - } - case BOX_T:{ - if (!hasError) { - t2 = jj_consume_token(BOX_T); - } - break; - } - default: - jj_la1[298] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } - } - break; - } - default: - jj_la1[299] = jj_gen; - ; - } - } -QCString q; - if(t) q=t->image.data(); - if(t2) s3="<>"; - if (!s3.isEmpty()) - { - s3.prepend(" is "); - } - m_sharedState->current->name=s; - if (m_sharedState->parse_sec==GEN_SEC) - { - QCString ss=q+" function "+s1+" return "+s2+s3; - int a=outlineParser()->getLine(FUNCTION_T); - int b=outlineParser()->getLine(PROCEDURE_T); - - if (a>b) b=a; - outlineParser()->addVhdlType(m_sharedState->current->name.data(),b,Entry::VARIABLE_SEC,VhdlDocGen::GENERIC,ss.data(),0,Public); - } - m_sharedState->currP=0;return ""; -assert(false);return ""; -} - - -QCString VhdlParser::param() {QCString s,s1;Token *tok=0; - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case PARAMETER_T:{ - if (!hasError) { - tok = jj_consume_token(PARAMETER_T); - } - break; - } - default: - jj_la1[300] = jj_gen; - ; - } - } - if (!hasError) { -m_sharedState->param_sec=PARAM_SEC; - } - if (!hasError) { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case LPAREN_T:{ - if (!hasError) { - jj_consume_token(LPAREN_T); - } - if (!hasError) { - s1 = interface_list(); - } - if (!hasError) { - jj_consume_token(RPAREN_T); - } - break; - } - default: - jj_la1[301] = jj_gen; - ; - } - } -if(tok) - { - s = tok->image.data(); - } - m_sharedState->param_sec=0; - return s+"("+s1+")"; -assert(false);return ""; -} - - -void VhdlParser::parseInline() { - switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { - case POSTPONED_T: - case PROCESS_T: - case BASIC_IDENTIFIER: - case EXTENDED_CHARACTER:{ - if (!hasError) { - process_statement(); - } - break; - } - case FUNCTION_T: - case IMPURE_T: - case PROCEDURE_T: - case PURE_T:{ - if (!hasError) { - subprogram_declaration(); - } - break; - } - default: - jj_la1[302] = jj_gen; - jj_consume_token(-1); - errorHandler->handleParseError(token, getToken(1), __FUNCTION__, this), hasError = true; - } -} - - - VhdlParser::VhdlParser(TokenManager *tokenManager){ - head = nullptr; - ReInit(tokenManager); -} -VhdlParser::~VhdlParser() -{ - clear(); -} - -void VhdlParser::ReInit(TokenManager* tokenManager){ - clear(); - errorHandler = new ErrorHandler(); - hasError = false; - token_source = tokenManager; - head = token = new Token(); - token->kind = 0; - token->next = nullptr; - jj_lookingAhead = false; - jj_rescan = false; - jj_done = false; - jj_scanpos = jj_lastpos = nullptr; - jj_gc = 0; - jj_kind = -1; - indent = 0; - trace = false; - jj_ntk = -1; - jj_gen = 0; - for (int i = 0; i < 303; i++) jj_la1[i] = -1; - } - - -void VhdlParser::clear(){ - //Since token manager was generate from outside, - //parser should not take care of deleting - //if (token_source) delete token_source; - if (head) { - Token *next, *t = head; - while (t) { - next = t->next; - delete t; - t = next; - } - } - if (errorHandler) { - delete errorHandler, errorHandler = nullptr; - } -} - - -Token * VhdlParser::jj_consume_token(int kind) { - Token *oldToken; - if ((oldToken = token)->next != nullptr) token = token->next; - else token = token->next = token_source->getNextToken(); - jj_ntk = -1; - if (token->kind == kind) { - jj_gen++; - if (++jj_gc > 100) { - jj_gc = 0; - for (int i = 0; i < 125; i++) { - JJCalls *c = &jj_2_rtns[i]; - while (c != nullptr) { - if (c->gen < jj_gen) c->first = nullptr; - c = c->next; - } - } - } - return token; - } - token = oldToken; - jj_kind = kind; - JJString image = kind >= 0 ? tokenImage[kind] : tokenImage[0]; - errorHandler->handleUnexpectedToken(kind, image.substr(1, image.size() - 2), getToken(1), this); - hasError = true; - return token; - } - - -bool VhdlParser::jj_scan_token(int kind){ - if (jj_scanpos == jj_lastpos) { - jj_la--; - if (jj_scanpos->next == nullptr) { - jj_lastpos = jj_scanpos = jj_scanpos->next = token_source->getNextToken(); - } else { - jj_lastpos = jj_scanpos = jj_scanpos->next; - } - } else { - jj_scanpos = jj_scanpos->next; - } - if (jj_rescan) { - int i = 0; Token *tok = token; - while (tok != nullptr && tok != jj_scanpos) { i++; tok = tok->next; } - if (tok != nullptr) jj_add_error_token(kind, i); - } - if (jj_scanpos->kind != kind) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) { return jj_done = true; } - return false; - } - - -/** Get the next Token. */ - -Token * VhdlParser::getNextToken(){ - if (token->next != nullptr) token = token->next; - else token = token->next = token_source->getNextToken(); - jj_ntk = -1; - jj_gen++; - return token; - } - -/** Get the specific Token. */ - -Token * VhdlParser::getToken(int index){ - Token *t = token; - for (int i = 0; i < index; i++) { - if (t->next != nullptr) t = t->next; - else t = t->next = token_source->getNextToken(); - } - return t; - } - - -int VhdlParser::jj_ntk_f(){ - if ((jj_nt=token->next) == nullptr) - return (jj_ntk = (token->next=token_source->getNextToken())->kind); - else - return (jj_ntk = jj_nt->kind); - } - - - void VhdlParser::jj_add_error_token(int kind, int pos) { - } - - - void VhdlParser::parseError() { - fprintf(stderr, "Parse error at: %d:%d, after token: %s encountered: %s\n", token->beginLine, token->beginColumn, addUnicodeEscapes(token->image).c_str(), addUnicodeEscapes(getToken(1)->image).c_str()); - } - - - bool VhdlParser::trace_enabled() { - return trace; - } - - - void VhdlParser::enable_tracing() { - } - - void VhdlParser::disable_tracing() { - } - - - void VhdlParser::jj_rescan_token(){ - jj_rescan = true; - for (int i = 0; i < 125; i++) { - JJCalls *p = &jj_2_rtns[i]; - do { - if (p->gen > jj_gen) { - jj_la = p->arg; jj_lastpos = jj_scanpos = p->first; - switch (i) { - case 0: jj_3_1(); break; - case 1: jj_3_2(); break; - case 2: jj_3_3(); break; - case 3: jj_3_4(); break; - case 4: jj_3_5(); break; - case 5: jj_3_6(); break; - case 6: jj_3_7(); break; - case 7: jj_3_8(); break; - case 8: jj_3_9(); break; - case 9: jj_3_10(); break; - case 10: jj_3_11(); break; - case 11: jj_3_12(); break; - case 12: jj_3_13(); break; - case 13: jj_3_14(); break; - case 14: jj_3_15(); break; - case 15: jj_3_16(); break; - case 16: jj_3_17(); break; - case 17: jj_3_18(); break; - case 18: jj_3_19(); break; - case 19: jj_3_20(); break; - case 20: jj_3_21(); break; - case 21: jj_3_22(); break; - case 22: jj_3_23(); break; - case 23: jj_3_24(); break; - case 24: jj_3_25(); break; - case 25: jj_3_26(); break; - case 26: jj_3_27(); break; - case 27: jj_3_28(); break; - case 28: jj_3_29(); break; - case 29: jj_3_30(); break; - case 30: jj_3_31(); break; - case 31: jj_3_32(); break; - case 32: jj_3_33(); break; - case 33: jj_3_34(); break; - case 34: jj_3_35(); break; - case 35: jj_3_36(); break; - case 36: jj_3_37(); break; - case 37: jj_3_38(); break; - case 38: jj_3_39(); break; - case 39: jj_3_40(); break; - case 40: jj_3_41(); break; - case 41: jj_3_42(); break; - case 42: jj_3_43(); break; - case 43: jj_3_44(); break; - case 44: jj_3_45(); break; - case 45: jj_3_46(); break; - case 46: jj_3_47(); break; - case 47: jj_3_48(); break; - case 48: jj_3_49(); break; - case 49: jj_3_50(); break; - case 50: jj_3_51(); break; - case 51: jj_3_52(); break; - case 52: jj_3_53(); break; - case 53: jj_3_54(); break; - case 54: jj_3_55(); break; - case 55: jj_3_56(); break; - case 56: jj_3_57(); break; - case 57: jj_3_58(); break; - case 58: jj_3_59(); break; - case 59: jj_3_60(); break; - case 60: jj_3_61(); break; - case 61: jj_3_62(); break; - case 62: jj_3_63(); break; - case 63: jj_3_64(); break; - case 64: jj_3_65(); break; - case 65: jj_3_66(); break; - case 66: jj_3_67(); break; - case 67: jj_3_68(); break; - case 68: jj_3_69(); break; - case 69: jj_3_70(); break; - case 70: jj_3_71(); break; - case 71: jj_3_72(); break; - case 72: jj_3_73(); break; - case 73: jj_3_74(); break; - case 74: jj_3_75(); break; - case 75: jj_3_76(); break; - case 76: jj_3_77(); break; - case 77: jj_3_78(); break; - case 78: jj_3_79(); break; - case 79: jj_3_80(); break; - case 80: jj_3_81(); break; - case 81: jj_3_82(); break; - case 82: jj_3_83(); break; - case 83: jj_3_84(); break; - case 84: jj_3_85(); break; - case 85: jj_3_86(); break; - case 86: jj_3_87(); break; - case 87: jj_3_88(); break; - case 88: jj_3_89(); break; - case 89: jj_3_90(); break; - case 90: jj_3_91(); break; - case 91: jj_3_92(); break; - case 92: jj_3_93(); break; - case 93: jj_3_94(); break; - case 94: jj_3_95(); break; - case 95: jj_3_96(); break; - case 96: jj_3_97(); break; - case 97: jj_3_98(); break; - case 98: jj_3_99(); break; - case 99: jj_3_100(); break; - case 100: jj_3_101(); break; - case 101: jj_3_102(); break; - case 102: jj_3_103(); break; - case 103: jj_3_104(); break; - case 104: jj_3_105(); break; - case 105: jj_3_106(); break; - case 106: jj_3_107(); break; - case 107: jj_3_108(); break; - case 108: jj_3_109(); break; - case 109: jj_3_110(); break; - case 110: jj_3_111(); break; - case 111: jj_3_112(); break; - case 112: jj_3_113(); break; - case 113: jj_3_114(); break; - case 114: jj_3_115(); break; - case 115: jj_3_116(); break; - case 116: jj_3_117(); break; - case 117: jj_3_118(); break; - case 118: jj_3_119(); break; - case 119: jj_3_120(); break; - case 120: jj_3_121(); break; - case 121: jj_3_122(); break; - case 122: jj_3_123(); break; - case 123: jj_3_124(); break; - case 124: jj_3_125(); break; - } - } - p = p->next; - } while (p != nullptr); - } - jj_rescan = false; - } - - - void VhdlParser::jj_save(int index, int xla){ - JJCalls *p = &jj_2_rtns[index]; - while (p->gen > jj_gen) { - if (p->next == nullptr) { p = p->next = new JJCalls(); break; } - p = p->next; - } - p->gen = jj_gen + xla - jj_la; p->first = token; p->arg = xla; - } - - -} -}