好的,下面是一个将四元式划分为基本块的 Python 函数:
```python
from typing import List
from collections import deque
class Quadruple:
def __init__(self, op: str, arg1: str, arg2: str, res: str):
self.op = op
self.arg1 = arg1
self.arg2 = arg2
self.res = res
def __str__(self):
return f'({self.op}, {self.arg1}, {self.arg2}, {self.res})'
def split_basic_blocks(quadruples: List[Quadruple]) -> List[List[Quadruple]]:
basic_blocks = []
current_block = []
for q in quadruples:
current_block.append(q)
if q.op == 'goto' or q.op == 'if':
basic_blocks.append(current_block)
current_block = []
if current_block:
basic_blocks.append(current_block)
return basic_blocks
```
这个函数接受一个四元式列表作为输入,并返回一个基本块列表。每个基本块都是一个四元式列表。