diff --git a/book.org b/book.org index 5a04e42..6382300 100644 --- a/book.org +++ b/book.org @@ -2941,10 +2941,10 @@ Previous iterations considered all the nodes that contained the relevant line (e #+CAPTION: Sample code that simply reads a number from standard input and prints its digits. #+NAME: lst:feedbacksubtreesample #+BEGIN_SRC python -number = input() -print(f'{number} has the following digits:') -for digit in number: - print(digit) +def jump(alpha, n): + alpha_number = ord(alpha) + adjusted = alpha_number + n + return chr(adjusted) #+END_SRC #+CAPTION: AST subtree corresponding to line 3 in Listing\nbsp{}[[lst:feedbacksubtreesample]]. diff --git a/diagrams/feedbacksubtree.svg b/diagrams/feedbacksubtree.svg index 3cb8805..ae8f01f 100644 --- a/diagrams/feedbacksubtree.svg +++ b/diagrams/feedbacksubtree.svg @@ -1,22 +1,23 @@ + + + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:xhtml="http://www.w3.org/1999/xhtml"> + inkscape:current-layer="g11" /> + id="defs1" /> + + - + transform="translate(-0.5 -0.5)" + id="g1"> + + + + + expression_statement + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + d="m 61.51203,17.448 q 0.828,0 1.416,0.36 0.6,0.36 0.912,1.02 0.324,0.648 0.324,1.524 v 0.636 h -4.404 q 0.024,1.092 0.552,1.668 0.54,0.564 1.5,0.564 0.612,0 1.08,-0.108 0.48,-0.12 0.984,-0.336 V 23.7 q -0.492,0.216 -0.972,0.312 -0.48,0.108 -1.14,0.108 -0.912,0 -1.62,-0.372 -0.696,-0.372 -1.092,-1.104 -0.384,-0.744 -0.384,-1.812 0,-1.056 0.348,-1.812 0.36,-0.756 0.996,-1.164 0.648,-0.408 1.5,-0.408 z m -0.012,0.864 q -0.756,0 -1.2,0.492 -0.432,0.48 -0.516,1.344 h 3.276 q 0,-0.552 -0.168,-0.96 -0.168,-0.408 -0.516,-0.636 -0.336,-0.24 -0.876,-0.24 z m 5.579985,2.4 -2.22,-3.144 h 1.2 l 1.656,2.424 1.644,-2.424 h 1.188 l -2.22,3.144 2.34,3.288 h -1.2 l -1.752,-2.568 -1.776,2.568 h -1.188 z m 7.883992,-3.264 q 1.188,0 1.908,0.828 0.732,0.828 0.732,2.496 0,1.092 -0.336,1.848 -0.324,0.744 -0.924,1.128 -0.588,0.372 -1.392,0.372 -0.492,0 -0.876,-0.132 -0.384,-0.132 -0.66,-0.336 -0.264,-0.216 -0.456,-0.468 h -0.072 q 0.024,0.204 0.048,0.516 0.024,0.312 0.024,0.54 v 2.64 h -1.056 v -9.312 h 0.864 l 0.144,0.876 h 0.048 q 0.192,-0.276 0.456,-0.504 0.276,-0.228 0.648,-0.36 0.384,-0.132 0.9,-0.132 z m -0.192,0.888 q -0.648,0 -1.044,0.252 -0.396,0.24 -0.576,0.732 -0.18,0.492 -0.192,1.248 v 0.204 q 0,0.792 0.168,1.344 0.168,0.552 0.564,0.84 0.408,0.288 1.104,0.288 0.588,0 0.96,-0.324 0.384,-0.324 0.564,-0.876 0.192,-0.564 0.192,-1.284 0,-1.104 -0.432,-1.764 -0.42,-0.66 -1.308,-0.66 z m 7.511997,-0.888 q 0.18,0 0.384,0.024 0.216,0.012 0.372,0.048 l -0.132,0.972 q -0.156,-0.036 -0.348,-0.06 -0.18,-0.024 -0.348,-0.024 -0.372,0 -0.708,0.156 -0.336,0.156 -0.6,0.444 -0.264,0.276 -0.42,0.672 -0.144,0.396 -0.144,0.888 V 24 h -1.056 v -6.432 h 0.864 l 0.12,1.176 h 0.048 q 0.204,-0.36 0.492,-0.648 0.288,-0.3 0.66,-0.468 0.372,-0.18 0.816,-0.18 z m 4.199996,0 q 0.828,0 1.416,0.36 0.6,0.36 0.912,1.02 0.324,0.648 0.324,1.524 v 0.636 h -4.404 q 0.024,1.092 0.552,1.668 0.54,0.564 1.5,0.564 0.612,0 1.08,-0.108 0.48,-0.12 0.984,-0.336 V 23.7 q -0.492,0.216 -0.972,0.312 -0.48,0.108 -1.14,0.108 -0.912,0 -1.62,-0.372 Q 84.42,23.376 84.024,22.644 83.64,21.9 83.64,20.832 q 0,-1.056 0.348,-1.812 0.36,-0.756 0.996,-1.164 0.648,-0.408 1.5,-0.408 z m -0.012,0.864 q -0.756,0 -1.2,0.492 -0.432,0.48 -0.516,1.344 h 3.276 q 0,-0.552 -0.168,-0.96 -0.168,-0.408 -0.516,-0.636 -0.336,-0.24 -0.876,-0.24 z m 8.48399,3.912 q 0,0.624 -0.312,1.044 -0.312,0.42 -0.888,0.636 -0.576,0.216 -1.368,0.216 -0.672,0 -1.164,-0.108 -0.48,-0.108 -0.852,-0.3 v -0.96 q 0.384,0.192 0.924,0.36 0.552,0.156 1.116,0.156 0.804,0 1.164,-0.252 0.36,-0.264 0.36,-0.696 0,-0.24 -0.132,-0.432 -0.132,-0.192 -0.48,-0.384 -0.336,-0.192 -0.972,-0.432 -0.624,-0.24 -1.068,-0.48 -0.444,-0.24 -0.684,-0.576 -0.24,-0.336 -0.24,-0.864 0,-0.816 0.66,-1.26 0.672,-0.444 1.752,-0.444 0.588,0 1.092,0.12 0.516,0.108 0.96,0.312 l -0.36,0.84 q -0.408,-0.168 -0.852,-0.288 -0.444,-0.12 -0.912,-0.12 -0.648,0 -0.996,0.216 -0.336,0.204 -0.336,0.564 0,0.264 0.156,0.456 0.156,0.18 0.516,0.36 0.372,0.168 0.984,0.408 0.612,0.228 1.044,0.468 0.432,0.24 0.66,0.588 0.228,0.336 0.228,0.852 z m 5.748,0 q 0,0.624 -0.312,1.044 -0.312,0.42 -0.887999,0.636 -0.576,0.216 -1.368,0.216 -0.672,0 -1.164,-0.108 -0.48,-0.108 -0.852,-0.3 v -0.96 q 0.384,0.192 0.924,0.36 0.552,0.156 1.116,0.156 0.804,0 1.164,-0.252 0.36,-0.264 0.36,-0.696 0,-0.24 -0.132,-0.432 -0.132,-0.192 -0.48,-0.384 -0.336,-0.192 -0.972,-0.432 -0.624,-0.24 -1.068,-0.48 -0.444,-0.24 -0.684,-0.576 -0.24,-0.336 -0.24,-0.864 0,-0.816 0.66,-1.26 0.672,-0.444 1.752,-0.444 0.588,0 1.092,0.12 0.515999,0.108 0.959999,0.312 l -0.36,0.84 q -0.407999,-0.168 -0.851999,-0.288 -0.444,-0.12 -0.912,-0.12 -0.648,0 -0.996,0.216 -0.336,0.204 -0.336,0.564 0,0.264 0.156,0.456 0.156,0.18 0.516,0.36 0.372,0.168 0.984,0.408 0.612,0.228 1.044,0.468 0.431999,0.24 0.659999,0.588 0.228,0.336 0.228,0.852 z m 2.616,-4.656 V 24 h -1.056 v -6.432 z m -0.516,-2.412 q 0.24,0 0.42,0.168 0.192,0.156 0.192,0.504 0,0.336 -0.192,0.504 -0.18,0.168 -0.42,0.168 -0.264,0 -0.444,-0.168 -0.18,-0.168 -0.18,-0.504 0,-0.348 0.18,-0.504 0.18,-0.168 0.444,-0.168 z m 8.14799,5.616 q 0,0.804 -0.216,1.428 -0.204,0.612 -0.6,1.044 -0.384,0.432 -0.948,0.66 -0.552,0.216 -1.236,0.216 -0.636,0 -1.176,-0.216 -0.54,-0.228 -0.936,-0.66 -0.396,-0.432 -0.624,-1.044 -0.216,-0.624 -0.216,-1.428 0,-1.068 0.36,-1.8 0.36,-0.744 1.032,-1.128 0.672,-0.396 1.596,-0.396 0.876,0 1.536,0.396 0.672,0.384 1.044,1.128 0.384,0.732 0.384,1.8 z m -4.86,0 q 0,0.756 0.192,1.32 0.204,0.552 0.624,0.852 0.42,0.3 1.068,0.3 0.648,0 1.068,-0.3 0.42,-0.3 0.612,-0.852 0.204,-0.564 0.204,-1.32 0,-0.768 -0.204,-1.308 -0.204,-0.54 -0.624,-0.828 -0.408,-0.3 -1.068,-0.3 -0.984,0 -1.428,0.648 -0.444,0.648 -0.444,1.788 z m 9.624,-3.324 q 1.152,0 1.74,0.564 0.588,0.552 0.588,1.8 V 24 h -1.044 v -4.116 q 0,-0.78 -0.348,-1.164 -0.348,-0.384 -1.092,-0.384 -1.068,0 -1.476,0.6 -0.408,0.6 -0.408,1.728 V 24 h -1.056 v -6.432 h 0.852 l 0.156,0.876 h 0.06 q 0.216,-0.336 0.528,-0.552 0.324,-0.228 0.708,-0.336 0.384,-0.108 0.792,-0.108 z m 8.652,8.4 h -5.376 V 25.08 h 5.376 z m 5.184,-3.624 q 0,0.624 -0.312,1.044 -0.312,0.42 -0.888,0.636 -0.576,0.216 -1.368,0.216 -0.672,0 -1.164,-0.108 -0.48,-0.108 -0.852,-0.3 v -0.96 q 0.384,0.192 0.924,0.36 0.552,0.156 1.116,0.156 0.804,0 1.164,-0.252 0.36,-0.264 0.36,-0.696 0,-0.24 -0.132,-0.432 -0.132,-0.192 -0.48,-0.384 -0.336,-0.192 -0.972,-0.432 -0.624,-0.24 -1.068,-0.48 -0.444,-0.24 -0.684,-0.576 -0.24,-0.336 -0.24,-0.864 0,-0.816 0.66,-1.26 0.672,-0.444 1.752,-0.444 0.588,0 1.092,0.12 0.516,0.108 0.96,0.312 l -0.36,0.84 q -0.408,-0.168 -0.852,-0.288 -0.444,-0.12 -0.912,-0.12 -0.648,0 -0.996,0.216 -0.336,0.204 -0.336,0.564 0,0.264 0.156,0.456 0.156,0.18 0.516,0.36 0.372,0.168 0.984,0.408 0.612,0.228 1.044,0.468 0.432,0.24 0.66,0.588 0.228,0.336 0.228,0.852 z m 3.708,1.032 q 0.24,0 0.492,-0.036 0.252,-0.048 0.408,-0.096 v 0.804 q -0.168,0.084 -0.48,0.132 -0.312,0.06 -0.6,0.06 -0.504,0 -0.936,-0.168 -0.42,-0.18 -0.684,-0.612 -0.264,-0.432 -0.264,-1.212 v -3.744 h -0.912 V 17.88 l 0.924,-0.42 0.42,-1.368 h 0.624 v 1.476 h 1.86 v 0.816 h -1.86 v 3.72 q 0,0.588 0.276,0.876 0.288,0.276 0.732,0.276 z m 4.62,-5.796 q 1.176,0 1.74,0.516 0.564,0.516 0.564,1.644 V 24 h -0.768 l -0.204,-0.912 h -0.048 q -0.276,0.348 -0.576,0.588 -0.288,0.228 -0.672,0.336 -0.372,0.108 -0.912,0.108 -0.576,0 -1.044,-0.204 -0.456,-0.204 -0.72,-0.624 -0.264,-0.432 -0.264,-1.08 0,-0.96 0.756,-1.476 0.756,-0.528 2.328,-0.576 l 1.092,-0.036 V 19.74 q 0,-0.804 -0.348,-1.116 -0.348,-0.312 -0.984,-0.312 -0.504,0 -0.96,0.156 -0.456,0.144 -0.852,0.336 l -0.324,-0.792 q 0.42,-0.228 0.996,-0.384 0.576,-0.168 1.2,-0.168 z m 0.312,3.432 q -1.2,0.048 -1.668,0.384 -0.456,0.336 -0.456,0.948 0,0.54 0.324,0.792 0.336,0.252 0.852,0.252 0.816,0 1.356,-0.444 0.54,-0.456 0.54,-1.392 v -0.576 z m 6.13201,2.364 q 0.24,0 0.492,-0.036 0.252,-0.048 0.408,-0.096 v 0.804 q -0.168,0.084 -0.48,0.132 -0.312,0.06 -0.6,0.06 -0.504,0 -0.936,-0.168 -0.42,-0.18 -0.684,-0.612 -0.264,-0.432 -0.264,-1.212 v -3.744 h -0.912 V 17.88 l 0.924,-0.42 0.42,-1.368 h 0.624 v 1.476 h 1.86 v 0.816 h -1.86 v 3.72 q 0,0.588 0.276,0.876 0.288,0.276 0.732,0.276 z m 4.66801,-5.808 q 0.828,0 1.416,0.36 0.6,0.36 0.912,1.02 0.324,0.648 0.324,1.524 v 0.636 h -4.404 q 0.024,1.092 0.552,1.668 0.54,0.564 1.5,0.564 0.612,0 1.08,-0.108 0.48,-0.12 0.984,-0.336 V 23.7 q -0.492,0.216 -0.972,0.312 -0.48,0.108 -1.14,0.108 -0.912,0 -1.62,-0.372 -0.696,-0.372 -1.092,-1.104 -0.384,-0.744 -0.384,-1.812 0,-1.056 0.348,-1.812 0.36,-0.756 0.996,-1.164 0.648,-0.408 1.5,-0.408 z m -0.012,0.864 q -0.756,0 -1.2,0.492 -0.432,0.48 -0.516,1.344 h 3.276 q 0,-0.552 -0.168,-0.96 -0.168,-0.408 -0.516,-0.636 -0.336,-0.24 -0.876,-0.24 z m 11.35199,-0.864 q 1.092,0 1.632,0.564 0.54,0.552 0.54,1.8 V 24 h -1.044 v -4.14 q 0,-0.756 -0.324,-1.14 -0.312,-0.384 -0.984,-0.384 -0.936,0 -1.344,0.54 -0.396,0.54 -0.396,1.572 V 24 h -1.044 v -4.14 q 0,-0.504 -0.144,-0.84 -0.144,-0.348 -0.432,-0.516 -0.288,-0.168 -0.744,-0.168 -0.648,0 -1.02,0.276 -0.372,0.264 -0.54,0.78 -0.156,0.516 -0.156,1.272 V 24 h -1.056 v -6.432 h 0.852 l 0.156,0.876 h 0.06 q 0.204,-0.336 0.492,-0.552 0.3,-0.228 0.66,-0.336 0.36,-0.108 0.744,-0.108 0.744,0 1.236,0.264 0.504,0.264 0.732,0.816 h 0.06 q 0.324,-0.552 0.876,-0.816 0.564,-0.264 1.188,-0.264 z m 6.64799,0 q 0.828,0 1.416,0.36 0.6,0.36 0.912,1.02 0.324,0.648 0.324,1.524 v 0.636 h -4.404 q 0.024,1.092 0.552,1.668 0.54,0.564 1.5,0.564 0.612,0 1.08,-0.108 0.48,-0.12 0.984,-0.336 V 23.7 q -0.492,0.216 -0.972,0.312 -0.48,0.108 -1.14,0.108 -0.912,0 -1.62,-0.372 -0.696,-0.372 -1.092,-1.104 -0.384,-0.744 -0.384,-1.812 0,-1.056 0.348,-1.812 0.36,-0.756 0.996,-1.164 0.648,-0.408 1.5,-0.408 z m -0.012,0.864 q -0.756,0 -1.2,0.492 -0.432,0.48 -0.516,1.344 h 3.276 q 0,-0.552 -0.168,-0.96 -0.168,-0.408 -0.516,-0.636 -0.336,-0.24 -0.876,-0.24 z m 7.39199,-0.864 q 1.152,0 1.74,0.564 0.588,0.552 0.588,1.8 V 24 h -1.044 v -4.116 q 0,-0.78 -0.348,-1.164 -0.348,-0.384 -1.092,-0.384 -1.068,0 -1.476,0.6 -0.408,0.6 -0.408,1.728 V 24 h -1.056 v -6.432 h 0.852 l 0.156,0.876 h 0.06 q 0.216,-0.336 0.528,-0.552 0.324,-0.228 0.708,-0.336 0.384,-0.108 0.792,-0.108 z m 6.468,5.808 q 0.24,0 0.492,-0.036 0.252,-0.048 0.408,-0.096 v 0.804 q -0.168,0.084 -0.48,0.132 -0.312,0.06 -0.6,0.06 -0.504,0 -0.936,-0.168 -0.42,-0.18 -0.684,-0.612 -0.264,-0.432 -0.264,-1.212 v -3.744 h -0.912 V 17.88 l 0.924,-0.42 0.42,-1.368 h 0.624 v 1.476 h 1.86 v 0.816 h -1.86 v 3.72 q 0,0.588 0.276,0.876 0.288,0.276 0.732,0.276 z" + id="text1" + style="font-size:12px;font-family:Helvetica;text-anchor:middle" + aria-label="expression_statement" /> + + + + + + + + + assignment + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + stroke="rgb(0, 0, 0)" + stroke-miterlimit="10" + pointer-events="stroke" + id="path2" /> + + + + + + + 'adjusted' + + + + + + + + + + + + + '=' + + + + + + + + + + + + + binary_operator + + + + + + - - - - - - - - - - - - + stroke="rgb(0, 0, 0)" + stroke-miterlimit="10" + pointer-events="stroke" + id="path5" /> - - - - - - - - - + stroke="rgb(0, 0, 0)" + stroke-miterlimit="10" + pointer-events="stroke" + id="path6" /> - - - - - - - - - - - - - + stroke="rgb(0, 0, 0)" + stroke-miterlimit="10" + pointer-events="stroke" + id="path7" /> + + + + + + + 'alpha_number' + + + + + + + + + + + + + '+' + + + + + + + + + + + + + 'n' + + + + + + - - - - - - - - + stroke="rgb(0, 0, 0)" + stroke-miterlimit="10" + pointer-events="stroke" + id="path9" /> - - - - - - - + stroke="rgb(0, 0, 0)" + stroke-miterlimit="10" + pointer-events="stroke" + id="path10" /> + + + + + Text is not SVG - cannot display + +