diff options
Diffstat (limited to 'doc/internals/Frontend.rst')
-rw-r--r-- | doc/internals/Frontend.rst | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/doc/internals/Frontend.rst b/doc/internals/Frontend.rst index 6d5e1da5c..fd5abd4e6 100644 --- a/doc/internals/Frontend.rst +++ b/doc/internals/Frontend.rst @@ -3,7 +3,13 @@ Front-end ######### -Input files (or source files) are read by `files_map.ad[sb]`. Only regular files can be read, because they are read entirely before being scanned. This simplifies the scanner, but this also allows to have a unique index for each character in any file. Therefore the source location is a simple 32-bit integer whose type is `Location_Type`. From the location, `files_map` can deduce the source file (type is `Source_File_Entry`) and then the offset in the source file. There is a line table for each source file in order to speed-up the conversion from file offset to line number and column number. +Input files (or source files) are read by `files_map.ad[sb]`. Only regular files can be +read, because they are read entirely before being scanned. This simplifies the scanner, +but this also allows to have a unique index for each character in any file. +Therefore the source location is a simple 32-bit integer whose type is `Location_Type`. +From the location, `files_map` can deduce the source file (type is `Source_File_Entry`) +and then the offset in the source file. There is a line table for each source file in +order to speed-up the conversion from file offset to line number and column number. The scanner (file :file:`vhdl-scanner.ad[sb]`) reads the source files and creates token from them. The tokens are defined in file :file:`vhdl-tokens.ads`. Tokens are scanned |