CppParser
class CppParser
C++ source parser.
Variables
| Name | Description |
|---|---|
| entities | Stack of entities while parsing. |
| starts | Stack of start bytes, corresponding to entities, while parsing. |
| ends | Stack of end bytes, corresponding to entities, while parsing. |
| parser | C++ parser. |
| query | C++ entities query. |
| query_exclude | C++ exclusions query. |
| query_include | C++ inclusions query. |
Functions
| Name | Description |
|---|---|
| CppParser | Constructor. |
| ~CppParser | Destructor. |
| parse | Parse C++ source. |
| push | Push onto the stack. |
| pop | Pop the stack down to the parent of an entity, according to its byte range. |
| preprocess | Preprocess C++ source, replacing preprocessor macros as defined in the config file and attempting to recover from any parse errors. |
| report | Report errors after preprocessing. |
Variable Details
ends
std::list<uint32_t> ends
Stack of end bytes, corresponding to entities, while parsing.
entities
std::list<Entity> entities
Stack of entities while parsing.
parser
TSParser* parser
C++ parser.
query
TSQuery* query
C++ entities query.
query_exclude
TSQuery* query_exclude
C++ exclusions query.
query_include
TSQuery* query_include
C++ inclusions query.
starts
std::list<uint32_t> starts
Stack of start bytes, corresponding to entities, while parsing.
Function Details
CppParser
CppParser()
Constructor.
parse
void parse(const std::filesystem::path& filename, const std::string& style, const std::unordered_map<std::string,std::string>& defines, Entity& root)
Parse C++ source.
file- C++ source file name.
style- Markdown style.
defines- Macro definitions.
root- Root entity.
pop
Entity& pop(const uint32_t start = 0, const uint32_t end = 0)
Pop the stack down to the parent of an entity, according to its byte range.
start- Start byte of range.
end- End byte of range.
- Return
- The parent.
If both start and end are zero, this is interpreting as popping the stack down to the root node and returning it.
preprocess
std::string preprocess(const std::filesystem::path& file, const std::unordered_map<std::string,std::string>& defines)
Preprocess C++ source, replacing preprocessor macros as defined in the config file and attempting to recover from any parse errors. This is silent and does not report uncorrectable errors, these are reported later.
file- C++ source file name.
defines- Macro definitions.
- Return
- Preprocessed source.
push
void push(Entity&& entity, const uint32_t start, const uint32_t end)
Push onto the stack.
entity- Entity to push.
start- Start byte of range.
end- End byte of range.
report
void report(const std::filesystem::path& file, const std::string_view in, TSTree* tree)
Report errors after preprocessing.
file- C++ source file name.
in- Preprocessed source.
tree- Parse tree for file.
~CppParser
~CppParser()
Destructor.