diff --git a/src/pre.l b/src/pre.l index 13ca91f30ac..e89a61c461f 100644 --- a/src/pre.l +++ b/src/pre.l @@ -1737,6 +1737,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) %x SkipString %x CopyLine %x CopyString +%x CopyStringFtn %x Include %x IncludeID %x EndImport @@ -1850,6 +1851,11 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) outputChar(*yytext); BEGIN( CopyString ); } +\' { + if (getLanguageFromFileName(g_yyFileName)!=SrcLangExt_Fortran) REJECT; + outputChar(*yytext); + BEGIN( CopyStringFtn ); + } [^\"\\\r\n]+ { outputArray(yytext,(int)yyleng); } @@ -1860,6 +1866,16 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'")) outputChar(*yytext); BEGIN( CopyLine ); } +[^\'\\\r\n]+ { + outputArray(yytext,(int)yyleng); + } +\\. { + outputArray(yytext,(int)yyleng); + } +\' { + outputChar(*yytext); + BEGIN( CopyLine ); + } {ID}/{BN}{0,80}"(" { g_expectGuard = FALSE; Define *def=0;