From 5e293b201f46bd98695bcc92ce2ecaa1f2b15c54 Mon Sep 17 00:00:00 2001 From: powARman Date: Mon, 3 Aug 2020 20:02:45 +0200 Subject: Vhdl improvements (ALIAS, translation) (#7813) * Support VHDL alias constructs. * Translate class to "Design Unit" for VHDL. * Fix compile error * Add new function trDesignUnitDocumentation() to translator. Adapt english and german translation to use the new function. Co-authored-by: Andreas Regel --- src/translator.h | 6 ++++++ src/translator_adapter.h | 12 +++++++++++- src/translator_br.h | 2 +- src/translator_de.h | 10 +++++++++- src/translator_en.h | 12 ++++++++++++ src/translator_nl.h | 2 +- src/translator_pt.h | 2 +- src/translator_sv.h | 2 +- vhdlparser/VhdlParserTokenManager.cc | 5 +++++ vhdlparser/vhdlparser.jj | 2 +- 10 files changed, 48 insertions(+), 7 deletions(-) diff --git a/src/translator.h b/src/translator.h index e3bfb51..a588763 100644 --- a/src/translator.h +++ b/src/translator.h @@ -650,6 +650,12 @@ class Translator virtual QCString trOperationDocumentation() = 0; virtual QCString trDataMembers() = 0; virtual QCString trDataMemberDocumentation() = 0; + +////////////////////////////////////////////////////////////////////////// +// new since 1.8.19 +////////////////////////////////////////////////////////////////////////// + + virtual QCString trDesignUnitDocumentation() = 0; }; #endif diff --git a/src/translator_adapter.h b/src/translator_adapter.h index fdc68f9..af18ab4 100644 --- a/src/translator_adapter.h +++ b/src/translator_adapter.h @@ -41,7 +41,17 @@ class TranslatorAdapterBase : public Translator }; -class TranslatorAdapter_1_8_15 : public TranslatorAdapterBase +class TranslatorAdapter_1_8_19 : public TranslatorAdapterBase +{ + public: + virtual QCString updateNeededMessage() + { return createUpdateNeededMessage(idLanguage(),"release 1.8.19"); } + + virtual QCString trDesignUnitDocumentation() + { return english.trDesignUnitDocumentation(); } +}; + +class TranslatorAdapter_1_8_15 : public TranslatorAdapter_1_8_19 { public: virtual QCString updateNeededMessage() diff --git a/src/translator_br.h b/src/translator_br.h index 7c98480..7c2122f 100644 --- a/src/translator_br.h +++ b/src/translator_br.h @@ -49,7 +49,7 @@ #ifndef TRANSLATOR_BR_H #define TRANSLATOR_BR_H -class TranslatorBrazilian : public Translator +class TranslatorBrazilian : public TranslatorAdapter_1_8_19 { public: diff --git a/src/translator_de.h b/src/translator_de.h index 9672fbe..09d58b3 100644 --- a/src/translator_de.h +++ b/src/translator_de.h @@ -480,7 +480,7 @@ class TranslatorGerman : public TranslatorAdapter_1_8_15 } else if (Config_getBool(OPTIMIZE_OUTPUT_VHDL)) { - return "Entwurfseinheiten-Dokumentation"; + return trDesignUnitDocumentation(); } else { @@ -2246,6 +2246,14 @@ class TranslatorGerman : public TranslatorAdapter_1_8_15 virtual QCString trCustomReference(const char *name) { return QCString(name)+"-Referenz"; } +////////////////////////////////////////////////////////////////////////// +// new since 1.8.19 +////////////////////////////////////////////////////////////////////////// + + /** VHDL design unit documentation */ + virtual QCString trDesignUnitDocumentation() + { return "Entwurfseinheiten-Dokumentation"; } + ////////////////////////////////////////////////////////////////////////// }; diff --git a/src/translator_en.h b/src/translator_en.h index a5be968..8666c10 100644 --- a/src/translator_en.h +++ b/src/translator_en.h @@ -394,6 +394,10 @@ class TranslatorEnglish : public Translator { return "Data Structure Documentation"; } + else if (Config_getBool(OPTIMIZE_OUTPUT_VHDL)) + { + return trDesignUnitDocumentation(); + } else { return "Class Documentation"; @@ -2246,6 +2250,14 @@ class TranslatorEnglish : public Translator } ////////////////////////////////////////////////////////////////////////// +// new since 1.8.19 +////////////////////////////////////////////////////////////////////////// + + /** VHDL design unit documentation */ + virtual QCString trDesignUnitDocumentation() + { return "Design Unit Documentation"; } + +////////////////////////////////////////////////////////////////////////// }; diff --git a/src/translator_nl.h b/src/translator_nl.h index f2887c6..c9fe946 100644 --- a/src/translator_nl.h +++ b/src/translator_nl.h @@ -18,7 +18,7 @@ #ifndef TRANSLATOR_NL_H #define TRANSLATOR_NL_H -class TranslatorDutch : public Translator +class TranslatorDutch : public TranslatorAdapter_1_8_19 { public: QCString idLanguage() diff --git a/src/translator_pt.h b/src/translator_pt.h index dfe4027..0ad107b 100644 --- a/src/translator_pt.h +++ b/src/translator_pt.h @@ -59,7 +59,7 @@ #define TRANSLATOR_PT_H -class TranslatorPortuguese : public Translator +class TranslatorPortuguese : public TranslatorAdapter_1_8_19 { public: diff --git a/src/translator_sv.h b/src/translator_sv.h index a4ff4f6..aea1bf5 100644 --- a/src/translator_sv.h +++ b/src/translator_sv.h @@ -143,7 +143,7 @@ I left use clause untouched as I didn't find a suitable translation for it. #ifndef TRANSLATOR_SE_H #define TRANSLATOR_SE_H -class TranslatorSwedish : public Translator +class TranslatorSwedish : public TranslatorAdapter_1_8_19 { public: diff --git a/vhdlparser/VhdlParserTokenManager.cc b/vhdlparser/VhdlParserTokenManager.cc index d51b004..341469f 100644 --- a/vhdlparser/VhdlParserTokenManager.cc +++ b/vhdlparser/VhdlParserTokenManager.cc @@ -3538,6 +3538,11 @@ void VhdlParserTokenManager::SkipLexicalActions(Token *matchedToken){ void VhdlParserTokenManager::TokenLexicalActions(Token *matchedToken){ switch(jjmatchedKind) { + case 14 : { + image.append(input_stream->GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))); + parser->outlineParser()->setLineParsed(ALIAS_T); + break; + } case 17 : { image.append(input_stream->GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))); parser->outlineParser()->setLineParsed(ARCHITECTURE_T); diff --git a/vhdlparser/vhdlparser.jj b/vhdlparser/vhdlparser.jj index 007bd5b..177b5f4 100755 --- a/vhdlparser/vhdlparser.jj +++ b/vhdlparser/vhdlparser.jj @@ -143,7 +143,7 @@ TOKEN [IGNORE_CASE] : | | -| +| {parser->outlineParser()->setLineParsed(ALIAS_T);} | | | {parser->outlineParser()->setLineParsed(ARCHITECTURE_T);} -- cgit v0.12