5aba7b7b85
Several places in the analyzer and the analysis server were using hardcoded integers to represent precedence, rather than referring to constants defined in the front_end. This led to some subtle off-by-one errors, because the old analyzer convention (prior to integration with the front_end parser) used 0 to represent the lowest precedence of an expression (and -1000 to represent the precedence of non-expressions), whereas the front_end convention is for 1 to represent the lowest precedence of an expression. As far as I can tell there was no user visible impact, but it made it very difficult to reason about operator precedence. This CL updates the analyzer and the analysis server so that they don't hardcode any precedence values; instead they refer to named constants in the front end. In a follow-up CL I'll reduce some hardcoded precedence numbers in the front end itself. Change-Id: Id3869afeb83042cc7d6630a0a4a0533a07058736 Reviewed-on: https://dart-review.googlesource.com/c/93964 Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
analysis_server
A long-running process that provides analysis results to other tools.
The analysis server is designed to provide on-going analysis of one or more code bases as those code bases are changing.
Using the server
The analysis server is not intended to be used stand-alone, and therefore does not have a human-friendly user interface.
Clients (typically tools, such as an editor) are expected to run the analysis
server in a separate process and communicate with it using a JSON protocol. The
protocol is specified in the file analysis_server/doc/api.html.
Features and bugs
Please file feature requests and bugs at the issue tracker.