26 tstr<leaf> parseFromFile(
const std::string& path);
30 std::vector<ncnt>& getIndents();
34 template <
typename T>
void setScan() { _mode = T::_instance; }
38 int pushState(
int newState);
43 using leafTokenScanable::onScan;
44 nint onScan(
leafParser& ps, ZZSTYPE* val, ZZLTYPE* loc, zzscan_t scanner, nbool& isBypass)
override;
45 nint onTokenEndOfFile();
46 nint onTokenColon(nint tok);
47 nint onTokenNewLine(nint tok);
48 nint onTokenComma(nint tok);
49 nint onIndent(ncnt col, nint tok);
50 nint onDedent(ncnt col, nint tok);
51 nint onIgnoreIndent(nint tok);
52 nchar onScanUnexpected(
const nchar* token);
62 template <
typename T>
leaf* onPrimitive(
const T& arg) {
return new valLeaf(arg); }
64 verLeaf* onVer(
const std::string& version);
66 leaf* onDefProp(
const std::string& name,
leaf& rhs);
67 leaf* onDefAssign(
const std::string& name,
leaf* rhs);
69 leaf* onDefOrigin(
const std::string& name,
leaf& blk);
76 void onParseErr(
const std::string& msg,
const nchar* symbolName);
77 void report(
const std::string& msg);
81 void* _scanString(
const nchar*
src,
void* scanner);
82 nint _onTokenEndOfInlineBlock(nint tok);
83 nint _onScan(ZZSTYPE* val, ZZLTYPE* loc, zzscan_t scanner);
88 nbool _isIgnoreWhitespace;
90 std::vector<ncnt> _indents;
92 std::vector<nint> _states;
94 std::vector<std::string> _errs;
Core AST node for leaf configuration language.
Definition: leaf.hpp:12
Parser for leaf configuration language.
Definition: leafParser.hpp:17
Smart dedent handler for indentation-based parsing.
Definition: leafSmartDedent.hpp:11
Token dispatcher for managing token queue during parsing.
Definition: leafTokenDispatcher.hpp:13
Base class for token scanning strategies.
Definition: leafTokenScan.hpp:19
Interface for token scanning during leaf parsing.
Definition: leafTokenScanable.hpp:18
Source location information.
Definition: src.hpp:11
Strong reference smart pointer with strict type checking.
Definition: tstr.hpp:13
Value leaf node for storing primitive values.
Definition: valLeaf.hpp:12
Version leaf node for semantic version handling.
Definition: verLeaf.hpp:12