Porytiles
Loading...
Searching...
No Matches
porytiles::EnumDeclaration Class Reference

Represents a parsed C enum declaration. More...

#include <enum_declaration.hpp>

Public Member Functions

 EnumDeclaration (std::vector< EnumMember > members, SourcePosition position)
 Constructs an anonymous enum declaration.
 
 EnumDeclaration (std::string name, std::vector< EnumMember > members, SourcePosition position)
 Constructs a named enum declaration.
 
bool has_name () const
 Checks if this enum has a name.
 
const std::optional< std::string > & name () const
 Returns the enum name if present.
 
const std::vector< EnumMember > & members () const
 Returns the enum members.
 
const SourcePositionposition () const
 Returns the source position of the enum keyword.
 

Detailed Description

Represents a parsed C enum declaration.

EnumDeclaration captures the complete structure of a C enum, including its optional name (anonymous enums have no name) and all its members. The original source position of the enum keyword is preserved for error reporting.

Example enums this class can represent:

enum { MB_NORMAL, MB_TALL_GRASS }; // anonymous, name=nullopt
enum MetatileBehavior { MB_NORMAL, MB_TALL_GRASS }; // named

Definition at line 25 of file enum_declaration.hpp.

Constructor & Destructor Documentation

◆ EnumDeclaration() [1/2]

porytiles::EnumDeclaration::EnumDeclaration ( std::vector< EnumMember members,
SourcePosition  position 
)
inline

Constructs an anonymous enum declaration.

Parameters
membersThe enum members
positionThe source position of the enum keyword

Definition at line 33 of file enum_declaration.hpp.

◆ EnumDeclaration() [2/2]

porytiles::EnumDeclaration::EnumDeclaration ( std::string  name,
std::vector< EnumMember members,
SourcePosition  position 
)
inline

Constructs a named enum declaration.

Parameters
nameThe enum name
membersThe enum members
positionThe source position of the enum keyword

Definition at line 45 of file enum_declaration.hpp.

Member Function Documentation

◆ has_name()

bool porytiles::EnumDeclaration::has_name ( ) const
inline

Checks if this enum has a name.

Returns
True if the enum has a name (not anonymous)

Definition at line 55 of file enum_declaration.hpp.

◆ members()

const std::vector< EnumMember > & porytiles::EnumDeclaration::members ( ) const
inline

Returns the enum members.

Returns
A const reference to the member vector

Definition at line 75 of file enum_declaration.hpp.

◆ name()

const std::optional< std::string > & porytiles::EnumDeclaration::name ( ) const
inline

Returns the enum name if present.

Returns
A const reference to the optional name

Definition at line 65 of file enum_declaration.hpp.

◆ position()

const SourcePosition & porytiles::EnumDeclaration::position ( ) const
inline

Returns the source position of the enum keyword.

Returns
A const reference to the source position

Definition at line 85 of file enum_declaration.hpp.


The documentation for this class was generated from the following file: