Hello,
I'm working on a 'visual flutter widget builder' that parses dart files to reconstruct widget trees and I have a few questions about the analyzer.
1: Are there any design documents or other documentation that outline the internal design of the analyzer? (outside of what the doc folder provides)
2: I'd like to understand the steps that are taken to efficiently arrive at a resolved AST from an unresolved AST and the dependency graph. I don't have a background in building compilers so I'd appreciate any keywords or a very rough outline that could aid me in my research.
3: What is the role of the SDK summary and the library summaries? (Are summaries just serialized unresolved ASTs? Are summaries used for performance reasons so that they can be shared across isolates and subsequent analyzer runs?)
4: I'd like to resolve Dart files on mobile (offline) and I'm evaluating the plausibility of that idea. What does the analyzer need to be able to resolve an AST? Are summaries for each library in the .packages file enough or does it need all the .dart files?
5: I'm currently using heuristics to translate the AST into a runtime representation of the Flutter SDK (i.e. manually checking PrefixedIdentifiers against a list of known enums and so on). Are there any subsets of the analyzer package that could help me to resolve parts of an AST?
I'd greatly appreciate answers to even a few of those questions.
Thanks.