diff options
Diffstat (limited to 'src/vhdlscanner.l')
-rw-r--r-- | src/vhdlscanner.l | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/vhdlscanner.l b/src/vhdlscanner.l index cedf780..073e0a1 100644 --- a/src/vhdlscanner.l +++ b/src/vhdlscanner.l @@ -417,6 +417,7 @@ static void parseFunctionProto() VhdlDocGen::parseFuncProto(qcs.data(),ql,name,ret); //printf("parseFuncProto(%s)=%s,%s\n",qcs.data(),name.data(),ret.data()); + VhdlDocGen::deleteAllChars(name,';'); current->name=name; current->startLine=iFuncLine; current->bodyLine=iFuncLine; @@ -639,6 +640,11 @@ BRACECLOSE [)]{1} ALLID [^;()\t ] +/* VHDL 2001 */ +ENDPROTECTED ("end"{BR}+"protected"{BR}+{NAME}{BR}*";")|("end"{BR}+"protected"{BR}*";") +ENDPROTECEDBODY "end"{BR}+"protected"{BR}+"body"{BR}+{NAME} + + %option noyywrap /* language parsing states */ @@ -661,6 +667,12 @@ ALLID [^;()\t ] %% +<Start>{ENDPROTECTED}|{ENDPROTECEDBODY} { + lineCount(); +} + + + <Start>{CONFIG} { // found configuration QCString qcs(vhdlscanYYtext); @@ -986,6 +998,21 @@ ALLID [^;()\t ] BEGIN(ParseType); } + +<ParseType>("is"){BR}+("protected"){BR}+("body") {lineCount(); BEGIN(Start); } + +<ParseType>("is"){BR}+("protected"){BR}+ { + lineCount(); + current->section=Entry::VARIABLE_SEC; + current->spec=VhdlDocGen::TYPE; + current->type="protected"; + newEntry(); + BEGIN(Start); +} + + + + <ParseType>("is"){BR}*("record") { // find record lineCount(); if (isFunc) |