로딩중...
검색중...
일치하는것 없음
by::stelaWriter 클래스 참조

Serializes a stela tree back to stela source text. 더 자세히 ...

#include <stelaWriter.hpp>

by::stelaWriter에 대한 상속 다이어그램 :
by::stelaVisitor by::typeProvidable by::clonable

Public 멤버 함수

std::string write (stela &root)
 Serializes root and its subtree to a string.
 
nbool writeFile (stela &root, const std::string &path)
 Serializes root and writes the result to path (LF, UTF-8, non-atomic).
 
nbool writeFile (stela &root, const nchar *path) BY_SIDE_FUNC(path
 
nbool writeFile (root, std::string(path))
 
- by::stelaVisitor(으)로부터 상속된 Public 멤버 함수
void work (stela &root)
 
virtual void onLeave (const stelaVisitInfo &i, valStela &it)
 
virtual void visit (const stelaVisitInfo &i, stela &it)
 
virtual nbool onVisit (const stelaVisitInfo &i, stela &it)
 
virtual void onLeave (const stelaVisitInfo &i, stela &it)
 
virtual void onTraverse (const stelaVisitInfo &i, stela &it)
 
- by::typeProvidable(으)로부터 상속된 Public 멤버 함수
nbool operator== (const me &rhs) const
 
nbool operator!= (const me &rhs) const
 
virtual const typegetType () const =0
 
nbool isSub (const type &it) const
 
nbool isSub (const type *it) const BY_SIDE_FUNC(isSub)
 
nbool isSub (const me &it) const
 
nbool isSub (const me *it) const BY_SIDE_FUNC(isSub)
 
nbool isSuper (const type &it) const
 
nbool isSuper (const type *it) const BY_SIDE_FUNC(isSuper)
 
nbool isSuper (const me &it) const
 
nbool isSuper (const me *it) const BY_SIDE_FUNC(isSuper)
 
template<typename T >
nint isSub () const
 
template<typename T >
nint isSuper () const
 
template<typename T >
T * cast ()
 
template<typename T >
const T * cast () const BY_CONST_FUNC(cast< T >()) virtual void *cast(const type &to)
 Safe cast to target type using type hierarchy information
 
const void * cast (const type &to) const BY_CONST_FUNC(cast(to)) void *cast(const type *it) BY_SIDE_FUNC(cast)
 
- by::clonable(으)로부터 상속된 Public 멤버 함수
virtual me * clone () const =0
 
virtual me * cloneDeep () const
 
virtual void onCloneDeep (const me &from)
 

Public 속성

nbool false
 

Protected 멤버 함수

nbool onVisit (const stelaVisitInfo &i, rootStela &it) override
 
nbool onVisit (const stelaVisitInfo &i, defStela &it) override
 
nbool onVisit (const stelaVisitInfo &i, valStela &it) override
 
nbool onVisit (const stelaVisitInfo &i, strStela &it) override
 
nbool onVisit (const stelaVisitInfo &i, arrStela &it) override
 
void onLeave (const stelaVisitInfo &i, arrStela &it) override
 

상세한 설명

Serializes a stela tree back to stela source text.

Implemented as a stelaVisitor. writes a canonical, lossy form. What is NOT preserved:

  • comments in the original file
  • original whitespace, blank lines, and indentation width beyond the writer's configured indent
  • the original insertion order of children (std::map inside Stela sorts them alphabetically)
  • the exact literal spelling of numbers (e.g. 1_000 becomes 1000)

What IS preserved: values and structure. Round-trip parse -> edit -> write -> parse gives the same value tree, and write -> parse -> write produces the same string (canonical fixed point).

Root handling

The writer serializes a compilation unit, so it accepts only a rootStela: handing write() or writeFile() any other node is rejected (empty string / false). The rootStela itself is never emitted as def <name> — only its children are — matching the shape of stela source, where the top level is implicit.

Usage

std::string src = stelaWriter().write(*root);
stelaWriter().writeFile(*root, "out.by");
Source location information
Definition src.hpp:15
Serializes a stela tree back to stela source text.
Definition stelaWriter.hpp:35
std::string write(stela &root)
Serializes root and its subtree to a string.
nbool writeFile(stela &root, const std::string &path)
Serializes root and writes the result to path (LF, UTF-8, non-atomic).
Weak reference smart pointer with type-safe access
Definition tweak.hpp:16

멤버 함수 문서화

◆ onVisit()

nbool by::stelaWriter::onVisit ( const stelaVisitInfo & i,
valStela & it )
overrideprotectedvirtual

by::stelaVisitor(으)로부터 재구현되었습니다.

◆ writeFile()

nbool by::stelaWriter::writeFile ( stela & root,
const std::string & path )

Serializes root and writes the result to path (LF, UTF-8, non-atomic).

반환값
true on success. false if the file could not be opened for writing.

이 클래스에 대한 문서화 페이지는 다음의 파일로부터 생성되었습니다.:
to Top