33 me& setSrcFile(
const srcFile& s);
37 const point& getPos()
const;
38 const srcFile& getSrcFile()
const;
40 tstr<src> makeSrc(
const std::string& name)
const;
45 template <
typename T,
typename... Args> T*
birth(
const std::string& name,
const Args&...
args)
const {
46 T* ret =
new T(
args...);
47 if(_file) _setSrc(*ret, *makeSrc(name));
58 template <
typename T,
typename... Args> T*
make(
const Args&...
args)
const {
59 T* ret =
new T(
args...);
60 if(_file) _setSrc(*ret, *makeSrc(
""));
84 func* _makeFunc(
const std::string& name,
const narr&
stmts)
const;
Function or object evaluation arguments
Definition args.hpp:22
Assignment expression
Definition assignExpr.hpp:19
Interface for objects that can be cloned
Definition clonable.hpp:13
Definition block for organizing object definitions
Definition defBlock.hpp:16
Variable definition expression base class
Definition defVarExpr.hpp:18
Factory for creating expressions with source location information
Definition exprMaker.hpp:18
T * make(const Args &... args) const
Creates a new expression object without a specific name and sets its source location.
Definition exprMaker.hpp:58
func * makeCommonFunc(const defBlock &blk) const
Creates a "common" function associated with a definition block.
T * birth(const std::string &name, const Args &... args) const
Definition exprMaker.hpp:45
func * makeExpandFunc(const defBlock &blk) const
Creates a function specifically for handling "expand" logic within definition blocks.
assignExpr * makeAssignExprFrom(const defVarExpr &e) const
Creates an assignment expression from a variable definition expression.
Function definition in byeol language
Definition func.hpp:38
Base class for all AST nodes in the byeol language
Definition node.hpp:195
Source code file information
Definition srcFile.hpp:14
Source location information
Definition src.hpp:15
Weak reference smart pointer with type-safe access
Definition tweak.hpp:16
Interface for objects that can provide their type information
Definition typeProvidable.hpp:13
Source code position tracking structure
Definition point.hpp:12