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