[parser][basis][backend] implement "atomic hammock" backend
The HDL parser backend for "atomic hammocks" elaboration to be implemented.
An atomic hammock is a hammock subgraph into process's control flow graph. This subgraph contains one switch node, one merge node, two case nodes and one (or two) basic block node. The subgraph structure is:
block1 block2 (or nothing)
Each basic block contains exactly one assignment. If there are two basic blocks in the hammock, same variables are defined.
For such hammock subgraph the backend performs it into the following basic block (let the block1 contains
x = 1 assignment and block2 contains
x= 2 assignment):
x = (switch_condition == case1) ? 1 : 2