#source #position #compiler #sourcemap #rustc

codemap

A data structure for efficiently storing source code position and span information (e.g. in a compiler AST), and mapping it back to file/line/column locations for error reporting and suggestions.

4 releases

Uses old Rust 2015

0.1.3 Apr 12, 2020
0.1.2 Jun 30, 2019
0.1.1 Mar 3, 2018
0.1.0 May 29, 2017

#396 in Data structures

Download history 7754/week @ 2023-10-18 7883/week @ 2023-10-25 7066/week @ 2023-11-01 8308/week @ 2023-11-08 9252/week @ 2023-11-15 8221/week @ 2023-11-22 8554/week @ 2023-11-29 8141/week @ 2023-12-06 7412/week @ 2023-12-13 5609/week @ 2023-12-20 5674/week @ 2023-12-27 8532/week @ 2024-01-03 10028/week @ 2024-01-10 8731/week @ 2024-01-17 9806/week @ 2024-01-24 8199/week @ 2024-01-31

38,162 downloads per month
Used in 81 crates (19 directly)

MIT/Apache

18KB
332 lines

CodeMap

Documentation

Build Status

A data structure for tracking source positions in language implementations, inspired by the SourceMap (formerly CodeMap) type in rustc's libsyntax.

The CodeMap tracks all source files and maps positions within them to linear indexes as if all source files were concatenated. This allows a source position to be represented by a small 32-bit Pos indexing into the CodeMap, under the assumption that the total amount of parsed source code will not exceed 4GiB. The CodeMap can look up the source file, line, and column of a Pos or Span, as well as provide source code snippets for error reporting.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

No runtime deps