[Lldb-commits] [lldb] [LLDB] Add AST node classes, functions, etc. for Data Inspection Lang… (PR #95738)
Michael Buch via lldb-commits
lldb-commits at lists.llvm.org
Tue Sep 17 00:56:11 PDT 2024
Michael137 wrote:
> > Is the plan to get the DIL data structures merged before the rest of the patch series is up for review? I think it'd be great to see how the infrastructure introduced here will be used
>
> There are 3 major pieces to the DIL implementation (soon to be 4, once I've got the lexer written): The AST bit; the parser, which is a recursive descent parser using the .ebnf grammar; and the interpreter/evaluator. The parser performs parsing and type-checking on the input expression, building up the AST as it goes. Once the AST is built, it gets passed to the interpreter/evaluator, which evaluates the AST (performing more correctness checks along the way), returning an LLDB ValueObjectSP at the end. I have both 'stripped down' and 'full' versions of all of these pieces. The 'stripped down' pieces match the current 'frame variable' functionality, and the 'full' versions implement extensions to that functionality (allowing it to handle all the expressions that lldb-eval could handle).
>
> The plan is to submit a series of PRs as follows: 1). the AST parts (this PR). 2). the not-yet-written lexer (with any necessary changes to the already submitted AST parts); 3). the parser; 4) the evaluator; 5); the 'glue', i.e. updates to things like StackFrame.cpp & CommandObjectFrame.cpp, to hook up the new DIL implementation (optionally), as well as the test cases. Currently, the stripped down parser is ~2700 lines of code, and the stripped down evaluator is ~1000 lines of code.
>
> As I mentioned in an earlier comment (on June 24), you can see the full (not stripped down) implementation at https://github.com/cmtice/llvm-project/tree/DIL-work-new/ , although I have not (yet) updated that with the updates that have gone into this PR.
>
> Does that answer all of your questions? Or is there more you would like to know or see?
Thanks for the breakdown! I was just wondering whether the plan was to merge this before the other PRs are up. I think it'd be preferable to merge them once they all have been approved. Though if others are ok with the current strategy I don't want to block this.
https://github.com/llvm/llvm-project/pull/95738
More information about the lldb-commits
mailing list