forked from mindspore-Ecosystem/mindspore
To handle 'break' and 'continue' statement, a loop context is pushed to a stack before we parse the loop body, and pop it after body parsed. When a 'break', 'continue' statement is encountered, we retrieve current loop contex from the stack, and let the current block jump to the end block or header block; For 'break' statement, we added an extra 'end_block' follow the 'after_block', because 'after_block' is called from a ContionalJump in 'header_block', it can not be set as jump target from other place. to support 'break', we let loop body jump to the 'end_block' at the 'break' point. and 'after_block' maybe a good place to handle loop 'else' clause in the future. Handle 'pass' is simple, just bypass it when doing parse. |
||
---|---|---|
.. | ||
mindspore_test_framework | ||
perf_test | ||
st | ||
ut | ||
vm_impl | ||
.gitignore | ||
CMakeLists.txt | ||
__init__.py | ||
dataset_mock.py | ||
ops_common.py | ||
runtest.sh | ||
train_step_wrap.py |