1*288bf522SAndroid Build Coastguard Workerdigraph finite_state_machine { 2*288bf522SAndroid Build Coastguard Worker rankdir = "LR"; 3*288bf522SAndroid Build Coastguard Worker 4*288bf522SAndroid Build Coastguard Worker node [ shape = "doublecircle" ]; 5*288bf522SAndroid Build Coastguard Worker "End"; 6*288bf522SAndroid Build Coastguard Worker 7*288bf522SAndroid Build Coastguard Worker node [ shape = "point" ]; 8*288bf522SAndroid Build Coastguard Worker "Init"; 9*288bf522SAndroid Build Coastguard Worker 10*288bf522SAndroid Build Coastguard Worker node [ shape = "circle" ]; 11*288bf522SAndroid Build Coastguard Worker "Init" -> "Start"; 12*288bf522SAndroid Build Coastguard Worker 13*288bf522SAndroid Build Coastguard Worker "Start" -> "End" [ label = "EOF" ]; 14*288bf522SAndroid Build Coastguard Worker "Start" -> "Parse Method Name" [ label = "'begin_compilation'" ]; 15*288bf522SAndroid Build Coastguard Worker "Start" -> "Error" [ label = "NOT('begin_compilation')" ]; 16*288bf522SAndroid Build Coastguard Worker 17*288bf522SAndroid Build Coastguard Worker "Parse Method Name" -> "Skip to CFG" 18*288bf522SAndroid Build Coastguard Worker [ label = "method_name IN analyzer.methods" ]; 19*288bf522SAndroid Build Coastguard Worker "Parse Method Name" -> "Skip Method" 20*288bf522SAndroid Build Coastguard Worker [ label = "method_name NOT IN analyzer.methods" ]; 21*288bf522SAndroid Build Coastguard Worker "Parse Method Name" -> "Error" [ label = "EOF OR NOT('name')" ]; 22*288bf522SAndroid Build Coastguard Worker 23*288bf522SAndroid Build Coastguard Worker "Skip Method" -> "End" [ label = "EOF" ]; 24*288bf522SAndroid Build Coastguard Worker "Skip Method" -> "Parse Method Name" [ label = "'begin_compilation'" ]; 25*288bf522SAndroid Build Coastguard Worker "Skip Method" -> "Skip Method"; 26*288bf522SAndroid Build Coastguard Worker 27*288bf522SAndroid Build Coastguard Worker "Skip to CFG" -> "Start CFG" [ label = "'end_compilation'" ]; 28*288bf522SAndroid Build Coastguard Worker "Skip to CFG" -> "Skip to CFG"; 29*288bf522SAndroid Build Coastguard Worker "Skip to CFG" -> "Error" [ label = "EOF" ]; 30*288bf522SAndroid Build Coastguard Worker 31*288bf522SAndroid Build Coastguard Worker "Start CFG" -> "Is Disassembly Pass" [ label = "'begin_cfg'" ]; 32*288bf522SAndroid Build Coastguard Worker "Start CFG" -> "Error" [ label = "EOF OR NOT('begin_cfg')" ]; 33*288bf522SAndroid Build Coastguard Worker 34*288bf522SAndroid Build Coastguard Worker "Is Disassembly Pass" -> "Parse Flags" 35*288bf522SAndroid Build Coastguard Worker [ label = "'name \"disassembly (after)\"'" ]; 36*288bf522SAndroid Build Coastguard Worker "Is Disassembly Pass" -> "Skip Pass" 37*288bf522SAndroid Build Coastguard Worker [ label = "NOT('name \"disassembly (after)\"')" ]; 38*288bf522SAndroid Build Coastguard Worker "Is Disassembly Pass" -> "Error" [ label = "EOF OR NOT('name')" ]; 39*288bf522SAndroid Build Coastguard Worker 40*288bf522SAndroid Build Coastguard Worker "Skip Pass" -> "End CFG" [ label = "'end_cfg'" ]; 41*288bf522SAndroid Build Coastguard Worker "Skip Pass" -> "Skip Pass"; 42*288bf522SAndroid Build Coastguard Worker "Skip Pass" -> "Error" [ label = "EOF" ]; 43*288bf522SAndroid Build Coastguard Worker 44*288bf522SAndroid Build Coastguard Worker "Parse Flags" -> "Skip to HIR" [ label = "'flags'" ]; 45*288bf522SAndroid Build Coastguard Worker "Parse Flags" -> "Parse Flags"; 46*288bf522SAndroid Build Coastguard Worker "Parse Flags" -> "Error" [ label = "EOF" ]; 47*288bf522SAndroid Build Coastguard Worker 48*288bf522SAndroid Build Coastguard Worker "Skip to HIR" -> "HIR Instruction" [ label = "'begin_HIR'" ]; 49*288bf522SAndroid Build Coastguard Worker "Skip to HIR" -> "Skip to HIR"; 50*288bf522SAndroid Build Coastguard Worker "Skip to HIR" -> "Error" [ label = "EOF" ]; 51*288bf522SAndroid Build Coastguard Worker 52*288bf522SAndroid Build Coastguard Worker "HIR Instruction" -> "HIR Instruction" [ label = "'<|@'" ]; 53*288bf522SAndroid Build Coastguard Worker "HIR Instruction" -> "End HIR" [ label = "'end_HIR'" ]; 54*288bf522SAndroid Build Coastguard Worker "HIR Instruction" -> "Disassembly"; 55*288bf522SAndroid Build Coastguard Worker "HIR Instruction" -> "Error" [ label = "EOF" ]; 56*288bf522SAndroid Build Coastguard Worker 57*288bf522SAndroid Build Coastguard Worker "Disassembly" -> "HIR Instruction" [ label = "'<|@'" ]; 58*288bf522SAndroid Build Coastguard Worker "Disassembly" -> "Disassembly"; 59*288bf522SAndroid Build Coastguard Worker "Disassembly" -> "Error" [ label = "EOF" ]; 60*288bf522SAndroid Build Coastguard Worker 61*288bf522SAndroid Build Coastguard Worker "End HIR" -> "End Block" [ label = "'end_block'" ]; 62*288bf522SAndroid Build Coastguard Worker "End HIR" -> "Error" [ label = "EOF OR NOT('end_block')" ]; 63*288bf522SAndroid Build Coastguard Worker 64*288bf522SAndroid Build Coastguard Worker "End Block" -> "Parse Flags" [ label = "'begin_block'" ]; 65*288bf522SAndroid Build Coastguard Worker "End Block" -> "End CFG" [ label = "'end_cfg'" ]; 66*288bf522SAndroid Build Coastguard Worker "End Block" -> "Error" [ label = "EOF OR NOT('begin_block' OR 'end_cfg')" ]; 67*288bf522SAndroid Build Coastguard Worker 68*288bf522SAndroid Build Coastguard Worker "End CFG" -> "Is Disassembly Pass" [ label = "'begin_cfg'" ]; 69*288bf522SAndroid Build Coastguard Worker "End CFG" -> "Parse Method Name" [ label = "'begin_compilation'" ]; 70*288bf522SAndroid Build Coastguard Worker "End CFG" -> "End" [ label = "EOF" ]; 71*288bf522SAndroid Build Coastguard Worker} 72