From 158f027db299b7c4cdd84543fbda51a1152514f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= <sebastien@dynare.org> Date: Thu, 14 Jun 2018 16:54:31 +0200 Subject: [PATCH] Fix parsing of empty strings in macro-processor Those were treated as comments. Incidentally, fix a similar issue in the Dynare parser (which is much less problematic, since double quotes are not used in the Dynare language). Closes DynareTeam/dynare#1621 --- src/DynareFlex.ll | 4 ++-- src/macro/MacroFlex.ll | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/DynareFlex.ll b/src/DynareFlex.ll index b7dd9770..74527313 100644 --- a/src/DynareFlex.ll +++ b/src/DynareFlex.ll @@ -96,8 +96,8 @@ DATE -?[0-9]+([YyAa]|[Mm]([1-9]|1[0-2])|[Qq][1-4]|[Ww]([1-9]{1}|[1-4][0-9]|5[0-2 <INITIAL,DYNARE_STATEMENT,DYNARE_BLOCK,COMMENT,DATES_STATEMENT,LINE1,LINE2,LINE3>[\n]+ { yylloc->step(); } /* Comments */ -<INITIAL,DYNARE_STATEMENT,DYNARE_BLOCK,DATES_STATEMENT>["%"].* -<INITIAL,DYNARE_STATEMENT,DYNARE_BLOCK,DATES_STATEMENT>["/"]["/"].* +<INITIAL,DYNARE_STATEMENT,DYNARE_BLOCK,DATES_STATEMENT>%.* +<INITIAL,DYNARE_STATEMENT,DYNARE_BLOCK,DATES_STATEMENT>\/{2}.* <INITIAL,DYNARE_STATEMENT,DYNARE_BLOCK,DATES_STATEMENT>"/*" {comment_caller = YY_START; BEGIN COMMENT;} <COMMENT>"*/" {BEGIN comment_caller;} diff --git a/src/macro/MacroFlex.ll b/src/macro/MacroFlex.ll index 5913fe89..d4d31939 100644 --- a/src/macro/MacroFlex.ll +++ b/src/macro/MacroFlex.ll @@ -71,7 +71,8 @@ CONT \\\\ yylloc->step(); %} -<STMT,EXPR,FOR_BODY,THEN_BODY,ELSE_BODY>["/"]["/"].* + // Ignore inline comments +<STMT,EXPR,FOR_BODY,THEN_BODY,ELSE_BODY>\/{2}.* <INITIAL>^{SPC}*@#{SPC}*includepath{SPC}+\"([^\"\r\n:;|<>]*){1}(:[^\"\r\n:;|<>]*)*\"{SPC}*{EOL} { yylloc->lines(1); -- GitLab