 PrintTarget - Maple Help

Printer

 PrintTarget
 print translated code Calling Sequence Printer:-PrintTarget(ic, digits, precision, func_precision, namelist) Parameters

 Printer - Printer module ic - Intermediate Code expression precision - symbol; precision of variables of numeric type func_precision - symbol; precision of function arguments and return values namelist - list; names appearing in intermediate code Description

 • The PrintTarget command initiates printing of the Intermediate Code expression ic according to the printing rules previously defined for the module Printer.  PrintTarget returns a string, which corresponds to the translated output.
 • In most cases, PrintTarget is called by the PrintTarget procedure of the language definition module containing this Printer, perhaps with some pre- or postprocessing.  For example, in a language definition module m, the command m:-PrintTarget may call m:-Printer:-PrintTarget. Examples

Note: The following defines a Fortran translator that converts the output of Printer:-PrintTarget all to uppercase.

 > $\mathrm{with}\left(\mathrm{CodeGeneration}\right):$
 > UppercaseFortran77 := 'module()     export Printer, PrintTarget;     Printer := eval(LanguageDefinition[Get]("Fortran")):-Printer;     PrintTarget := proc()         StringTools[UpperCase](Printer:-PrintTarget(args));     end proc: end module':
 > $\mathrm{LanguageDefinition}\left[\mathrm{Add}\right]\left("UppercaseFortran",\mathrm{UppercaseFortran77}\right)$
 > p1 := proc() sin(x+y*z)+trunc(x); end proc:
 > $\mathrm{Translate}\left(\mathrm{p1},\mathrm{language}="Fortran"\right)$
 doubleprecision function p1 ()         p1 = dsin(y * z + x) + dble(int(dint(x)))         return       end
 > $\mathrm{Translate}\left(\mathrm{p1},\mathrm{language}="UppercaseFortran"\right)$
 DOUBLEPRECISION FUNCTION P1 ()         P1 = DSIN(Y * Z + X) + DBLE(INT(DINT(X)))         RETURN       END