* Copyright The Sett Ltd, 2005 to 2014.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
The name of the clause containing the body, and the position of the body within this clause are passed as arguments, mainly so that these coordinates can be used to help make any labels generated within the generated code unique.
expressionThe clause body to compile.
isFirstBodytrue iff this is the first body of a program clause.
clauseNameThe name of the clause within which this body appears.
bodyNumberThe body position within the containing clause.
expressionThe body functor to call.
isFirstBodyIff this is the first body in a clause.
isLastBodyIff this is the last body in a clause.
chainRuleIff the clause is a chain rule, so has no environment frame.
permVarsRemainingThe number of permanent variables remaining at this point in the calling clause. Used for environment trimming.
SizeableLinkedList<WAMInstruction> compileBodyCall(Functor expression, boolean isFirstBody, boolean isLastBody,
boolean chainRule, int permVarsRemaining);