Visually display conditional logic [duplicate]

This question already has an answer here:

I need to make a visual display for setting up conditional logic, for this questions sake lets consider it an input validator based on certain criteria. The best option I've found so far is letting the user create "nodes" for each condition and then "paths" between each nodes, with different branches being "or" operators and conditions on the same branch being "and" operators.

Like this (crappy paint) example: enter image description here

Which is the psuedocode equivalent of:

if ((!empty && >60 characters && <120 characters) || (empty)){
    return true
}

However, I feel like this route is too complicated/cumbersome.

For one, I've never really been a fan of the "connecting nodes" interface. I feel like it's always hard to interact with and get the nodes to connect correctly. It also makes it difficult to explicitly explain that different branches are mutually exclusive "or" conditions. Plus in this specific case, what happens if I need more branches maybe even from the middle of one branch such as to represent this code:

if ((!empty && (>60 letters || >12 numbers || contains >1 symbol) && <120 characters) || (empty)){
    return true
}

It could quickly get out of hand with lines likely crossing over each other or being too crowded.

So I ask, is there a simpler interface for setting up conditional logic geared toward non-developers or beginner developers, that allows for grouping of logic such as above?