Luma 0.1.0
A low-level compiled alternative to C, C++, and more!
Loading...
Searching...
No Matches
Functions
member_access.c File Reference
#include "../llvm.h"
Include dependency graph for member_access.c:

Functions

LLVMValueRef codegen_module_access (CodeGenContext *ctx, AstNode *node)
 Handle compile-time member access (::)
 
bool is_module_identifier (CodeGenContext *ctx, const char *name)
 Check if an identifier might be a module/alias.
 
const char * get_module_name_from_access (AstNode *node)
 Get module name/alias from a compile-time member access node.
 
bool validate_module_access (CodeGenContext *ctx, const char *prefix, const char *symbol_name)
 Validate that a module access is permitted.
 

Function Documentation

◆ codegen_module_access()

LLVMValueRef codegen_module_access ( CodeGenContext ctx,
AstNode node 
)

Handle compile-time member access (::)

Works with the existing import system:

  • @use "std_io" as io creates symbols like "io.println"
  • Then io::println looks up "io.println"
Parameters
ctxCode generation context
nodeAST node for member access expression
Returns
Generated LLVM value or NULL on error

◆ get_module_name_from_access()

const char * get_module_name_from_access ( AstNode node)

Get module name/alias from a compile-time member access node.

◆ is_module_identifier()

bool is_module_identifier ( CodeGenContext ctx,
const char *  name 
)

Check if an identifier might be a module/alias.

◆ validate_module_access()

bool validate_module_access ( CodeGenContext ctx,
const char *  prefix,
const char *  symbol_name 
)

Validate that a module access is permitted.

Checks that the qualified symbol exists