commit | 6bb9d8033a9d75e4e4712fd8575041b1f6fddeb2 | [log] [tgz] |
---|---|---|
author | ichern <ichern@google.com> | Thu Nov 14 05:15:48 2019 -0800 |
committer | Copybara-Service <copybara-worker@google.com> | Thu Nov 14 05:16:54 2019 -0800 |
tree | 99ac7e088410913b7177c7a96cd2f49ea9d29e8c | |
parent | 160c81a2fb8719e6fa4b43ed0c021de977b3e431 [diff] |
Refactor the Ninja variable value class, and correct some lexer/parser issues. Ninja variable value now contains the list of functions for composing the expanded value. For the text fragments, the function return the text literal, for variable reference, it uses the passed variable expander function to obtain the variable value. Corrected lexing/parsing problems: - In text fragment, do not treat = and | symbols as special. - Do not allow the single $ symbol in text (always require it to be escaped). - In a variable value, allow non-escaped : symbol, except for the case in build line (this is still not coded). - Do not try to cut out the escape symbol; rather, un-escape text in parser. For convenience, introduce one more NinjaToken: escaped text. All the lexing/parsing changes are done in correspondence with Ninja manual and source code. Closes #10227. PiperOrigin-RevId: 280404778
{Fast, Correct} - Choose two
Build and test software of any size, quickly and reliably.
Speed up your builds and tests: Bazel rebuilds only what is necessary. With advanced local and distributed caching, optimized dependency analysis and parallel execution, you get fast and incremental builds.
One tool, multiple languages: Build and test Java, C++, Android, iOS, Go, and a wide variety of other language platforms. Bazel runs on Windows, macOS, and Linux.
Scalable: Bazel helps you scale your organization, codebase, and continuous integration solution. It handles codebases of any size, in multiple repositories or a huge monorepo.
Extensible to your needs: Easily add support for new languages and platforms with Bazel's familiar extension language. Share and re-use language rules written by the growing Bazel community.
Follow our tutorials:
See CONTRIBUTING.md