Printer
AddLibrary
declare that library is used by generated code
Calling Sequence
Parameters
Description
Examples
Printer:-AddLibrary(libraryname)
-
Printer module
libraryname
string; name of library
When called during the printing of intermediate code, the AddLibrary command declares that the library libraryname is used by the generated code.
Many programming languages rely on external archives or libraries to supply functions for specialized tasks. Several CodeGeneration translators produce code that relies on such libraries.
To enable the printing of these inclusion statements in your custom translator, call AddLibrary from within the handler procedure in which the code using this library is printed.
Define an extension of C that uses custom functions from some library custom_lib addition, negation, multiplication, and inversion.
with⁡CodeGeneration:
LanguageDefinition[Define]("AddLibraryExample", extend="C", AddPrintHandler( Names:-Inverse = proc(x) Printer:-Print( "custom_inv(", x, ")"); Printer:-AddLibrary( "custom_lib"); end proc, Names:-Negation = proc(x) Printer:-Print( "custom_neg(", x, ")"); Printer:-AddLibrary( "custom_lib"); end proc, Names:-Product = proc() Printer:-Print( "custom_mult(" ); Printer:-PrintDelimitedList( [args], ", "); Printer:-Print(")"); Printer:-AddLibrary( "custom_lib"); end proc, Names:-Sum = proc() Printer:-Print( "custom_add(" ); Printer:-PrintDelimitedList( [args], ", "); Printer:-Print(")"); Printer:-AddLibrary( "custom_lib"); end proc ) );
Observe that in both cases the custom functions are printed instead of the usual binary operators +,-,*,/, and that in the second case custom_lib is explicitly included.
Translate⁡3⁢x−y,language=AddLibraryExample
cg = custom_add(custom_mult(3, x), custom_neg(y));
p := proc(x,y) local z; z := (sin(x)*y+1)*Pi; printf("%f", z); end proc:
Translate⁡p,language=AddLibraryExample
void p (double x, double y) { double z; z = custom_mult(custom_add(custom_mult(sin(x), y), 0.1e1), 0.3141592654e1); printf("%f", z); }
See Also
AddFunction
GetIncludes
Download Help Document