Pharox
©2026 Systemi Co. Ltd.

Commands

Table of Contents

Command Description
\brief Short summary for a documented symbol
\class Documents a C++ class
\code Starts a code sample (closed with \endcode)
\def Documents a preprocessor macro
\deprecated Marks a symbol as deprecated
\details Longer description
\dto Documents a DTO-style type
\endcode Ends a \code region
\enum Documents an enumeration
\file Recognized; not processed in this version
\fn Documents a function or method
\note Note paragraph
\param Describes one parameter (\fn / \def)
\remark Extra remark
\return Describes the return value (\fn / \def)
\see Cross-reference (repeatable)
\struct Documents a C++ struct
\tparam Recognized; not processed yet
\typedef Recognized; not processed yet
\union Recognized; not processed yet
\var Documents a variable
\warning Warning paragraph

\brief

\brief <text>

Short summary for the symbol. <text> is getting recognized until: the next command, another comment start, a line of ten or more *, or the end of the block.

Example

/**
 * \class Box2
 * \brief Axis-aligned bounding box in 2D.
 *
 * A Box2 represents a rectangular box in 2D space that is aligned with the world
 * coordinate axes. It is defined by two Vector2 points: min (lower-left corner)
 * and max (upper-right corner).
 */

\class

\class <name>

Documents the class called <name>. The name must match the class in the header. Public members and bases come from tags and the source.

Example

/**
 * \class Box2
 * \brief Class representing an axis-aligned bounding box (AABB) in 2D space.
 **/
class Box2
{

\code

\code
... source ...
\endcode

Captures one or more code samples. You can use several \code\endcode pairs in the same block.

Example

/**
 * \fn void reset()
 * \brief Clears internal state.
 * \code
 * obj.reset();
 * \endcode
 */

\def

\def <macro-signature>

Documents a macro. The name before ( is matched to a macro in the file. Use \param and \return in the same block like for \fn.

Example

/**
 * \def MAX(a,b)
 * \brief Expands to the larger of two values.
 * \param a First operand
 * \param b Second operand
 */

\deprecated

\deprecated <text>

Marks the symbol as deprecated and records the reason or replacement.

Example

/**
 * \class OldApi
 * \deprecated Use NewApi instead.
 */

\details

\details <text>

Longer description. Stops at the same boundaries as \brief.

Example

/**
 * \struct Ray
 * \brief Half-line in 3D.
 * \details Origin and direction; 
 * used for intersection tests.
 */

\dto

\dto <name>

Documents a DataTransferObject called <name> and collects its members from tags. A \dto is a stripped down version of a struct without methods or scopes.

Example

/*************************************************************
* \dto Intersection
* \brief DataTransferObject for octree intersection methods
*************************************************************/
struct Intersection
{
    Vector3     normal;
    Vector3     point;
    f32         depth;
};

\endcode

\endcode

Closes a region opened with \code. Every \code must have a matching \endcode.

Example

/**
 * \code
 * float x = 1.f;
 * \endcode
 */

\enum

\enum <name>

Documents the enumeration <name> and its enumerators. All Enumuration will be collected in enums.html. Enumurator will be formatted as a table name | value | brief. (optional) brief must be a one line comment if needed.

Example

/**
* \enum LoopModes
* \brief Loop modes for animation playback
* 
* These modes control how animations repeat when they reach the end,
* providing different behaviors for continuous animation playback.
**/
enum class LoopModes
{
    LoopOnce        = 0     // Play animation once and stop
,   LoopRepeat      = 1     // Repeat animation from beginning
,   LoopPingPong    = 2     // Reverse direction and repeat
};

\file

\file <path>

Recognized for compatibility. It is not processed yet and does not create a page.

Example

/**
 * \file Engine.hpp
 */

\fn

\fn <full signature on one line>

Binds the comment to a function or method. The tool matches the name to tags; private members are skipped. Use \param and \return in the same block.

Example

/**
* \fn Vec3& multiplyVectors(const Vec3& a, const Vec3& b)
* \brief Sets this vector to a * b component-wise
* \param[in] a      First vector
* \param[in] b      Second vector
* \return Reference to this vector
**/
Vec3& multiplyVectors(const Vec3& a, const Vec3& b);

\note

\note <text>

Adds a note paragraph in the output.

Example

/**
 * \fn void tick(float dt)
 * \note Must be called once per frame.
 */

\param

\param[direction] <name> <description>

Describes one function or macro parameter. You may put a direction in square brackets immediately after \param, before the parameter name. Common forms:

Brackets Meaning
[in] Input only
[out] Output only (written by the callee)
[in,out] or [inout] Input and output

Any other text inside [ ] is accepted the same way. The description runs until the next \param, \tparam, \return, or the end of the block. To document a default argument, end the description with - default and the value on the same pattern the parser expects. Used with \fn and \def.

Example

/**
* \fn Vec3& multiplyVectors(const Vec3& a, const Vec3& b)
* \brief Sets this vector to a * b component-wise
* \param[in] a      First vector
* \param[in] b      Second vector
* \return Reference to this vector
**/
Vec3& multiplyVectors(const Vec3& a, const Vec3& b);

\remark

\remark <text>

Adds a remark paragraph.

Example

/**
 * \class Camera
 * \remark Thread-safe for read-only use.
 */

\return

\return <text>

Describes the return value of a function, method, or macro.

Example

/**
 * \fn int count()
 * \return Number of items in the container.
 */

\see

\see <reference>

One reference per line. Repeat \see for more than one link or symbol. Not implemented yet.

Example

/**
 * \class Mesh
 * \see BufferGeometry
 * \see Material
 */

\struct

\struct <name>

Documents a struct named <name>, like \class but for structs.

Example

/**
 * \struct Vertex
 * \brief Single vertex attributes.
 */

\tparam

\tparam[direction] <name> <description>

Describes one template parameter for a function or method documented with \fn. The same optional [direction] rules as for \param apply ([in], [out], [in,out], or custom tags). Use \tparam for template type or non-type parameters; use \param for regular function parameters. Not implemented yet.

Example

/**
 * \fn T max(T a, T b)
 * \tparam T Type comparable with `<`.
 * \param[in] a First value.
 * \param[in] b Second value.
 */

\typedef

\typedef ...

Recognized for compatibility. Not implemented yet.

Example

/**
 * \typedef unsigned int Id;
 */

\union

\union <name>

Recognized for compatibility. Not implemented yet.

Example

/**
 * \union FloatIntBits
 */

\var

\var <declaration>

Documents a variable. The last identifier in the declaration is matched to a variable in the file.

Example

/**
 * \var const float PI
 * \brief Pi constant.
 */

\warning

\warning <text>

Adds a warning paragraph.

Example

/**
 * \fn void* getRaw()
 *  Pointer is invalidated on the next resize.
 */