private void CompileMethod(PrologCodeTerm method)
{
PrologCodePredicate predicate = (PrologCodePredicate)method;
_generator.EmitFCall(predicate.MethodInfo.PredicateName,
predicate.MethodInfo.MethodName,
predicate.MethodInfo.AssemblyName,
predicate.MethodInfo.Class);
if (_dictionary.InLastGoal)
{
if (_dictionary.GoalCount > 2)
{
_generator.Emit(OpCodes.Deallocate);
}
// Emit 'proceed'
_generator.EndProcedure();
}
}