internal void SetTargetTempVariablesNames(GMacTargetVariablesNaming targetNaming) { //Temp variables target naming if (targetNaming.CodeBlock.TargetTempVarsCount > MaxTargetLocalVars) { //Name as array items targetNaming.SetTempVariables((int index) => "tempArray[" + index + "]"); } else { //Name as set of local variables targetNaming.SetTempVariables(index => "tempVar" + index.ToString("X4") + ""); } }
private void InitializeFullTargetNaming(GMacTargetVariablesNaming targetNaming) { var valueAccessList = targetNaming .CodeBlock .BaseMacro .Parameters .SelectMany(paramInfo => paramInfo.DatastoreValueAccess.ExpandStructures()); foreach (var valueAccess in valueAccessList) { if (valueAccess.IsPrimitive) { var varName = valueAccess.ValueAccessName; targetNaming.SetScalarParameter(valueAccess, varName); continue; } var parentName = valueAccess.ValueAccessName; targetNaming.SetMultivectorParameters( valueAccess, id => BasisBladeIdToCode(parentName, id) ); } targetNaming.SetTempVariables(v => "tmp" + v.NameIndex); }
public static void DefaultActionSetTargetVariablesNames(GMacTargetVariablesNaming targetNaming) { targetNaming.SetInputVariables(v => v.ValueAccessName); targetNaming.SetOutputVariables(v => v.ValueAccessName); //targetNaming.SetTempVariables(v => v.LowLevelName); targetNaming.SetTempVariables(v => "tmp" + v.NameIndex); }
private void SetTargetNaming(GMacTargetVariablesNaming targetNaming) { //Set default target variables names for macro parameters var valueAccessList = targetNaming .CodeBlock .BaseMacro .Parameters .SelectMany(paramInfo => paramInfo.DatastoreValueAccess.ExpandStructures()); foreach (var valueAccess in valueAccessList) { if (valueAccess.IsPrimitive) { var varName = valueAccess.ValueAccessName; targetNaming.SetScalarParameter(valueAccess, varName); continue; } var parentName = valueAccess.ValueAccessName; targetNaming.SetMultivectorParameters( valueAccess, id => BasisBladeIdToCode(parentName, id) ); } //Override default target variables names for macro parameters using the //items in the TargetVariablesNamesDictionary foreach (var pair in TargetVariablesNamesDictionary) { targetNaming.SetScalarParameter(pair.Key, pair.Value); } //Set temporary target variables names targetNaming.SetTempVariables(v => "tmp" + v.NameIndex); }