# dmd.hdrgen

Generate D interface files.

#### Discussion

Also used to convert AST nodes to D code in general, e.g. for error messages or `printf` debugging.

#### Authors

Walter Bright

#### License

Boost License 1.0

Source: hdrgen.d

Documentation: https://dlang.org/phobos/dmd_hdrgen.html

Coverage: https://codecov.io/gh/dlang/dmd/src/master/src/dmd/hdrgen.d

- `moduleToBuffer`

  #### Declaration

  `void `moduleToBuffer`(OutBuffer* `buf`, Module `m`);`

  Dumps the full contents of module ``m`` to ``buf``.

  #### Parameters

  `OutBuffer* `buf`` | buffer to write to.
  `Module `m`` | module to visit all members of.

- `floatToBuffer`

  #### Declaration

  `void `floatToBuffer`(Type `type`, const real_t `value`, OutBuffer* `buf`, const bool `allowHex`);`

  Formats ``value`` as a literal of `type` ``type`` into ``buf``.

  #### Parameters

  `Type `type`` | literal `type` (e.g. Tfloat)
  `real_t `value`` | `value` to print
  `OutBuffer* `buf`` | target buffer
  `bool `allowHex`` | whether hex floating point literals may be used for greater accuracy

- `stcToString`

  #### Declaration

  `string `stcToString`(ref StorageClass `stc`);
  pure nothrow string `trustToString`(TRUST `trust`);`

  Pick off one of the storage classes from `stc`, and return a string representation of it. `stc` is reduced by the one picked.

- `protectionToChars`

  #### Declaration

  `const(char)* `protectionToChars`(Prot.Kind `kind`);
  pure nothrow string `protectionToString`(Prot.Kind `kind`);`

  #### Return Value

  a human readable representation of ``kind``

- `argExpTypesToCBuffer`

  #### Declaration

  `void `argExpTypesToCBuffer`(OutBuffer* `buf`, Expressions* `arguments`);`

  Write out argument types to `buf`.

- `parametersTypeToChars`

  #### Declaration

  `const(char)* `parametersTypeToChars`(ParameterList `pl`);`

  Pretty print function parameters.

  #### Parameters

  `ParameterList `pl`` | parameter list to print

  #### Return Value

  Null-terminated string representing parameters.

- `parameterToChars`

  #### Declaration

  `const(char)* `parameterToChars`(Parameter `parameter`, TypeFunction `tf`, bool `fullQual`);`

  Pretty print function `parameter`.

  #### Parameters

  `Parameter `parameter`` | `parameter` to print.
  `TypeFunction `tf`` | TypeFunction which holds `parameter`.
  `bool `fullQual`` | whether to fully qualify types.

  #### Return Value

  Null-terminated string representing parameters.