get_b_template_aux(any(Paras,_Pred,Body),LocalVars,State,Template) :- !,
append(Paras,LocalVars,LV2),
get_b_template2(Body,LV2,State,Template).
get_b_template_aux(let(Paras,_Pred,Body),LocalVars,State,Template) :- !,
append(Paras,LocalVars,LV2),
get_b_template2(Body,LV2,State,Template).
get_b_template_aux(var(Paras,Body),LocalVars,State,Template) :- !,
append(Paras,LocalVars,LV2),
get_b_template2(Body,LV2,State,Template).
get_b_template_aux(choice(Options),LocalVars,State,Template) :- !,
member(A,Options),
get_b_template2(A,LocalVars,State,Template).
get_b_template_aux(if(Options),LocalVars,State,Template) :- !,
get_b_template_for_if(Options,LocalVars,State,Template).
get_b_template_aux(precondition(Test,Body), LocalVars,State,Template) :- !,
b_test_boolean_expression_cs(Test,[],State,'ANIMATION_(RIGHT_)CLICK',0),
get_b_template2(Body,LocalVars,State,Template).
get_b_template_aux(operation_call(TOpID,_Result,Parameters),LocalVars,State,Template) :- !,
def_get_texpr_id(TOpID,op(OpID)),
% TO DO: deal with Result
maplist(eval_parameter(LocalVars,State,OpID),Parameters,TemplateArgs),
Template =.. [OpID|TemplateArgs].
get_b_template_aux(Subst,_LocalVars,_State,_) :-
add_error('ANIMATION_(RIGHT_)CLICK','Uncovered substitution in ANIMATION_(RIGHT_)CLICK: ',b(Subst,subst,[])),fail.