Process Flow:
fun001(){
stm01;
stm02;
}
Node Text | ノート説明 | Create 文 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
n001 | MethodEntry | CREATE(n:BasicBlock {text:'n001'}) return n | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
n002 | stm01 | CREATE(n:BasicBlock {text:'n002'}) return n | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
n003 | stm02 | CREATE(n:BasicBlock {text:'n003'}) return n | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
n004 | MethodExit | CREATE(n:BasicBlock {text:'n004'}) return n |
Start Node Text | End Node Text | 関係説明 | Create 文 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
n001 | n002 | match (n1:BasicBlock), (n2:BasicBlock) where n1.text='n001' and n2.text='n002' create path=(n1)-[r:ControlFlow]->(n2) return path | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
n002 | n003 | match (n1:BasicBlock), (n2:BasicBlock) where n1.text='n002' and n2.text='n003' create path=(n1)-[r:ControlFlow]->(n2) return path | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
n003 | n004 | match (n1:BasicBlock), (n2:BasicBlock) where n1.text='n003' and n2.text='n004' create path=(n1)-[r:ControlFlow]->(n2) return path |
Cypher:
match path=(n1:BasicBlock)-[r:ControlFlow*]->(n2:BasicBlock) where n1.text='n001' and n2.text='n004' return path, length(path) as hops order by hops