From fdd10f2415c65a9a34d64c985ea5ff0a6f4b6654 Mon Sep 17 00:00:00 2001
From: albert-github <albert.tests@gmail.com>
Date: Fri, 24 Aug 2018 14:48:56 +0200
Subject: Correction of some coloring of code comments in VHDL, adding data
 type 'positive'

---
 src/vhdlcode.l     | 69 +++++++++++++++++++++++++++---------------------------
 src/vhdldocgen.cpp |  4 ++--
 2 files changed, 37 insertions(+), 36 deletions(-)

diff --git a/src/vhdlcode.l b/src/vhdlcode.l
index 68dcafb..ee0731f 100644
--- a/src/vhdlcode.l
+++ b/src/vhdlcode.l
@@ -370,7 +370,7 @@ static void codifyLines(const char *text,const char *cl=0,bool classlink=FALSE,b
       //g_code->codify(sp);
       if (comment)
       {
-        writeFont("keyword",line.data());
+        writeFont("comment",line.data());
       }
       else
       {
@@ -381,7 +381,7 @@ static void codifyLines(const char *text,const char *cl=0,bool classlink=FALSE,b
     else
     {
       if (comment)
-        writeFont("keyword",sp);
+        writeFont("comment",sp);
       else
         writeWord(sp,cl,classlink);
       done=TRUE;
@@ -1478,11 +1478,11 @@ XILINX      "INST"|"NET"|"PIN"|"BLKNM"|"BUFG"|"COLLAPSE"|"CPLD"|"COMPGRP"|"CONFI
                                       writeFont("keyword",vhdlcodeYYtext);
                                     }
                                      
-<Bases>^{B}*{XILINX}[^\n]*  { 
-                            writeWord(yytext);
-                            //codifyLines(vhdlcodeYYtext,g_CurrClass.data(),TRUE);
-                         }           
-                             
+<Bases>^{B}*{XILINX}/[^a-zA-Z0-9_] {
+                                      writeWord(yytext);
+                                      //codifyLines(vhdlcodeYYtext,g_CurrClass.data(),TRUE);
+                                   }
+
 <Bases>^{B}*"set_"[^\n]*  { 
                                       writeWord(yytext);
                                     }
@@ -1497,37 +1497,38 @@ XILINX      "INST"|"NET"|"PIN"|"BLKNM"|"BUFG"|"COLLAPSE"|"CPLD"|"COMPGRP"|"CONFI
                          }
 
 <*>\n{TEXTT}             { // found normal or special comment on its own line
-			   QCString text(vhdlcodeYYtext);
-			   int i=text.find("--");
-			   if (text.mid(i,3)=="--!" && // hide special comment
-                               Config_getBool(STRIP_CODE_COMMENTS)) 
-			   { 
-			     g_yyLineNr++; // skip complete line
-			   }  
-			   else // normal comment
-			   {
-			     //    startFontClass("keyword");
-			     codifyLines(text,0,FALSE,TRUE);
-			     //    endFontClass();
-			   }
+                           QCString text(vhdlcodeYYtext);
+                           int i=text.find("--");
+                           if (text.mid(i,3)=="--!") // && // hide special comment
+                           {
+                             if (!Config_getBool(STRIP_CODE_COMMENTS))
+                             {
+                               codifyLines(text,0,FALSE,TRUE);
+                             }
+                             g_yyLineNr++; // skip complete line
+                           }
+                           else // normal comment
+                           {
+                             codifyLines(text,0,FALSE,TRUE);
+                           }
                          }
 <*>{TEXTT}               { // found normal or special comment after something
-			   QCString text(vhdlcodeYYtext);
-			   int i=text.find("--");
-			   if (text.mid(i,3)=="--!" &&
-                               Config_getBool(STRIP_CODE_COMMENTS)) 
-			   { 
-			      // hide special comment
-			   }  
-			   else // normal comment
-			   {
-			     //   startFontClass("keyword");
-			     codifyLines(text,0,FALSE,TRUE);
-			     //   endFontClass();
-			   }
+                           QCString text(vhdlcodeYYtext);
+                           int i=text.find("--");
+                           if (text.mid(i,3)=="--!")
+                           {
+                             // hide special comment
+                             if (!Config_getBool(STRIP_CODE_COMMENTS))
+                             {
+                               codifyLines(text,0,FALSE,TRUE);
+                             }
+                           }
+                           else // normal comment
+                           {
+                             codifyLines(text,0,FALSE,TRUE);
+                           }
                          }
 
-
 %%
 
 /*@ ----------------------------------------------------------------------------
diff --git a/src/vhdldocgen.cpp b/src/vhdldocgen.cpp
index 287565b..373e6de 100644
--- a/src/vhdldocgen.cpp
+++ b/src/vhdldocgen.cpp
@@ -602,7 +602,7 @@ const char* g_vhdlKeyWordMap1[] =
 {
   "natural","unsigned","signed","string","boolean", "bit","bit_vector","character",
   "std_ulogic","std_ulogic_vector","std_logic","std_logic_vector","integer",
-  "real","float","ufixed","sfixed","time",0
+  "real","float","ufixed","sfixed","time","positive",0
 };
 
 // logic
@@ -667,7 +667,7 @@ const char* g_vhdlKeyWordMap3[] =
 QCString* VhdlDocGen::findKeyWord(const QCString& tmp)
 {
   static  QCString vhdlkeyword("vhdlkeyword");
-  static  QCString vhdltype("comment");
+  static  QCString vhdltype("keywordtype");
   static  QCString vhdllogic("vhdllogic");
   static  QCString preprocessor("keywordflow");
 
-- 
cgit v0.12

