[PATCH] D156858: Add Documentation for Execution Results Handling in Clang-REPL
QuillPusher via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Sun Aug 13 09:22:52 PDT 2023
QuillPusher added a comment.
@Krishna-13-cyber added Graphviz code snippets to replace all .png images
================
Comment at: clang/docs/ClangRepl.rst:248-250
+.. image:: valuesynth.png
+ :align: center
+ :alt: valuesynth design
----------------
v.g.vassilev wrote:
> Can we replace that with its graphviz version?
.. graphviz::
:name: valuesynthesis
:caption: Value Synthesis
:alt: Shows how an object of type 'Value' is synthesized
:align: center
digraph "valuesynthesis" {
rankdir="LR";
graph [fontname="Verdana", fontsize="12"];
node [fontname="Verdana", fontsize="12"];
edge [fontname="Sans", fontsize="9"];
start [label=" Create an Object \n 'Last Value' \n of type 'Value' ", shape="note", fontcolor=white, fillcolor="#3333ff", style=filled];
assign [label=" Assign the result \n to the 'LastValue' \n (based on respective \n Memory Allocation \n scenario) ", shape="box"]
print [label=" Pretty Print \n the Value Object ", shape="Msquare", fillcolor="yellow", style=filled];
start -> assign;
assign -> print;
subgraph SynthesizeExpression {
synth [label=" SynthesizeExpr() ", shape="note", fontcolor=white, fillcolor="#3333ff", style=filled];
mem [label=" New Memory \n Allocation? ", shape="diamond"];
withaloc [label=" SetValueWithAlloc() ", shape="box"];
noaloc [label=" SetValueNoAlloc() ", shape="box"];
right [label=" 1. RValue Structure \n (a temporary value)", shape="box"];
left2 [label=" 2. LValue Structure \n (a variable with \n an address)", shape="box"];
left3 [label=" 3. Built-In Type \n (int, float, etc.)", shape="box"];
output [label=" move to 'Assign' step ", shape="box"];
synth -> mem;
mem -> withaloc [label="Yes"];
mem -> noaloc [label="No"];
withaloc -> right;
noaloc -> left2;
noaloc -> left3;
right -> output;
left2 -> output;
left3 -> output;
}
output -> assign;
}
================
Comment at: clang/docs/ClangRepl.rst:424-427
+
+.. image:: prettyprint.png
+ :align: center
+ :alt: prettyprint design
----------------
@Krishna-13-cyber please replace the image reference with the following code:
.. graphviz::
:name: parsing
:caption: Parsing Mechanism
:alt: Shows the Parsing Mechanism for Pretty Printing
:align: center
digraph "prettyprint" {
rankdir="LR";
graph [fontname="Verdana", fontsize="12"];
node [fontname="Verdana", fontsize="12"];
edge [fontname="Verdana", fontsize="9"];
parse [label=" ParseAndExecute() \n in Clang ", shape="box"];
capture [label=" Capture 'Value' parameter \n for processing? ", shape="diamond"];
use [label=" Use for processing ", shape="box"];
dump [label=" Validate and push \n to dump()", shape="box"];
callp [label=" call print() function ", shape="box"];
type [label=" Print the Type \n ReplPrintTypeImpl()", shape="box"];
data [label=" Print the Data \n ReplPrintDataImpl() ", shape="box"];
output [label=" Output Pretty Print \n to the user ", shape="box", fontcolor=white, fillcolor="#3333ff", style=filled];
parse -> capture [label="Optional 'Value' Parameter"];
capture -> use [label="Yes"];
use -> End;
capture -> dump [label="No"];
dump -> callp;
callp -> type;
callp -> data;
type -> output;
data -> output;
}
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D156858/new/
https://reviews.llvm.org/D156858
More information about the cfe-commits
mailing list