Commit Graph

8 Commits

Author SHA1 Message Date
Brad King
266634bce5 Fortran: Teach lexer to recognize LLVMFlang preprocessor dependencies
The line directives have the form `#line <path> <number>`, and do not
have the line number before the path as other compilers do.
2023-05-09 09:56:41 -04:00
Brad King
a7211d6a2f Fortran: Teach lexer to handle CRLF newlines
We read sources in binary format, so we need to explicitly match CR
(`\r`) characters that occur as part of newlines in CRLF sources.
This is particularly important when line continuation (`&`) occurs
in the middle of module declaration or usage.
2022-08-09 09:09:51 -04:00
Brad King
c1b575f4d1 clang-analyzer: rename from scan-build in comments 2021-06-03 14:59:55 -04:00
Sean McBride
b056bc3425 Fix most clang -Wextra-semi-stmt warnings in C++ files
Suppress one in code generated by flex.
2019-01-15 14:09:46 -05:00
Kyle Edwards
9e4b6bcbe8 Source/LexerParser: Suppress "Use of zero-allocated memory" warning
clang scan-build warns about YY_CURRENT_BUFFER_LVALUE being zero-
allocated, but the whole point of the macro is to know that it's
not zero. Wrap the entire file in an "#ifndef __clang_analyzer__"
block in order to suppress the warning.
2019-01-14 10:31:38 -05:00
Brad King
ead16adfc8 Fortran: Fix module dependency scanning with upper-case SUBMODULE
The lexical token expression added by commit v3.7.0-rc1~73^2~1 (Fortran:
Add support for submodule syntax in dependency scanning, 2016-09-05)
has a typo and does not match upper-case `B` in `SUBMODULE`.  Fix it.

Fixes: #18595
2018-11-20 14:16:26 -05:00
Matthias Maennich
376c13958d cmFortranLexer: regenerate with flex 2.6.4 (previously 2.6.1)
flex 2.6.3 introduces symbol remapping through macro definitions. hence the
change appears bigger than one would expect from a minor version upgrade.

In addition some manual cleanup that had to be done previously is now
obsolete. namely:
  - the size_t cast of _yybytes_len in yy_scan_bytes
    (i is now also defined int and not size_t anymore)
  - the redefinition of yyl within yy_find_action
    (yyl is now already defined as int)

Line number preprocessor directives (#line) were previously generated into
the c source file. This actually breaks debugging as debuggers have a hard
time finding the original cmFortranLexer.in.l and mapping the current
instruction to a meaningful location within that file.

The prefix "cmFortran_yy" can already be set as %option directly.

For convenience also provide a sed command for all the manual steps that
need to be done after generating.

Signed-off-by: Matthias Maennich <matthias@maennich.net>
2017-08-29 00:34:36 +02:00
Daniel Pfeifer
9bad0dfcce LexerParser: move to custom directory 2017-04-28 23:10:39 +02:00