diff --git a/src/macro/MacroFlex.ll b/src/macro/MacroFlex.ll index b33411c2..96905460 100644 --- a/src/macro/MacroFlex.ll +++ b/src/macro/MacroFlex.ll @@ -41,6 +41,8 @@ using token = Macro::parser::token; Unfortunately yyterminate by default returns 0, which is not of token_type. */ #define yyterminate() return Macro::parser::token_type (0); + +int macro_comment_caller; %} %option c++ @@ -49,6 +51,7 @@ using token = Macro::parser::token; %option case-insensitive noyywrap nounput batch debug never-interactive +%x COMMENT %x STMT %x EXPR %x FOR_BODY @@ -74,6 +77,9 @@ CONT \\\\ // Ignore inline comments %.* { yylloc->step(); ECHO; } \/{2}.* { yylloc->step(); ECHO; } +"/*" { ECHO; macro_comment_caller = YY_START; BEGIN COMMENT; } +"*/" { BEGIN macro_comment_caller; ECHO; } +. { yylloc->step(); ECHO; } ^{SPC}*@#{SPC}*includepath{SPC}+\"([^\"\r\n:;|<>]*){1}(:[^\"\r\n:;|<>]*)*\"{SPC}*{EOL} { yylloc->lines(1);