Actions
Task #4656
closed[translator] Возможность инстанцирования операций в других операциях
Start date:
12/26/2013
Due date:
05/31/2014
% Done:
100%
Estimated time:
Detected in build:
svn
Published in build:
141230
Description
Цель - возможность выделения общей функциональность в операции.
Предположим, требуется выделить проверку условий возникновения исключений в отдельную операцию и вызывать ее из action-блоков инструкций.
op ExceptionChecker(flags: Flags) // возможны параметры action = { ... } // синтаксис не нужен
Сейчас для вызова одной операции из другой у родительской операции нужно заводить параметр. Соответственно, параметр нужно указывать в тестовом шаблоне (что уже кривовато); есть шанс, что он будет указан некорректно (это никуда не годится).
Другой вариант - создать инстанс требуемой операции и осуществить вызов.
op ADD(src1: REG, src2: REG, dst: REG) syntax = format("slozhenie %s %s %s", src1.syntax, src2.syntax, dst.syntax) action = { ExceptionChecker(0xDEAD).action; checker.action; ... }
Режимы с возвращаемым значением можно использовать в выражениях:
mode TypeOf(x: IMMEDIATE) = x<13..12>
if(TypeOf(x) == X) ... endif
Actions