cmtice 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?

https://github.com/llvm/llvm-project/pull/95738
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to