26 me& addRow(ncnt step);
28 me& addCol(ncnt step);
32 me& setSrcFile(
const srcFile& s);
36 const point& getPos()
const;
37 const srcFile& getSrcFile()
const;
39 tstr<src> makeSrc(
const std::string& name)
const;
42 template <
typename T,
typename... Args> T*
birth(
const std::string& name,
const Args&...
args)
const {
43 T* ret =
new T(
args...);
44 if(_file) ret->_setSrc(*makeSrc(name));
48 template <
typename T,
typename... Args> T* make(
const Args&...
args)
const {
49 T* ret =
new T(
args...);
50 if(_file) ret->_setSrc(*makeSrc(
""));
54 func* makeExpandFunc(
const defBlock& blk)
const;
55 assignExpr* makeAssignExprFrom(
const defVarExpr& e)
const;
56 func* makeCommonFunc(
const defBlock& blk)
const;
59 func* _makeFunc(
const std::string& name,
const narr& stmts)
const;
Function call arguments container.
Definition: args.hpp:13
Interface for objects that can be cloned.
Definition: clonable.hpp:12
Factory for creating expressions with source location information.
Definition: exprMaker.hpp:17
T * birth(const std::string &name, const Args &... args) const
Definition: exprMaker.hpp:42
Source file representation.
Definition: srcFile.hpp:13
Strong reference smart pointer with strict type checking.
Definition: tstr.hpp:13
Interface for objects that can provide their type information.
Definition: typeProvidable.hpp:12
Source code position tracking structure.
Definition: point.hpp:11