Python control flow granularity.

Answered

Hello,

 

I was exploring PyControlFlowProvider class to generate control flow. The generated control flow seems too detailed for me. I would like to have a less detailed control flow (like without ReadWriteInstruction, only expression-level control flow).

For this code snippet:

def control_flow():
    a = 20
    b = int(input('hi'))
    if b > 10:
        a = 30
    else:
        a = 20
    return a

I get this control flow using PyControlFlowProvider:

I would like to have a less granular version of this. Something like this:

    a = 20
     |
b = int(input('hi'))
     |
   b > 10
  /      \
a = 30    a = 20
  \      /
   \    /
   return a

Is there any way I can tune the amount of detail in the control flow provider?

0
2 comments

Hi,

PyControlFlowBuilder that is used in the provider does not have any options, feel free to take needed parts from the builder and create your own provider.

1

Please sign in to leave a comment.