|
| virtual void | parseDirective (const String &directive, bool ignoreUnknown) |
| |
| virtual void | writeLineDirective (UInt32 lineNo, const String &filename) |
| |
| void | ignoreDirective () |
| |
| void | defineMacro (const Macro ¯o) |
| |
| void | defineStandardMacro (const String &ident, Int32 intValue=1) |
| |
| void | undefineMacro (const String &ident, const Token *token=nullptr) |
| |
| bool | isDefined (const String &ident) const |
| |
| virtual bool | onDefineMacro (const Macro ¯o) |
| |
| virtual bool | onRedefineMacro (const Macro ¯o, const Macro &previousMacro) |
| |
| virtual bool | onUndefineMacro (const Macro ¯o) |
| |
| virtual bool | onSubstituteStdMacro (const Token &identifierToken, TokenPtrString &tokenString) |
| |
| Variant | evaluateExpression (const TokenPtrString &tokenString, const Token *token=nullptr) |
| |
| Variant | parseAndEvaluateExpression (const Token *token=nullptr) |
| |
| Variant | parseAndEvaluateArgumentExpression (const Token *token=nullptr) |
| |
| StringStream & | getOutputStream () |
| |
| | Parser (Log *log) |
| |
| void | error (const String &msg, const SourceArea &area, bool breakWithException=true) |
| |
| void | error (const String &msg, const Token *token, bool breakWithException=true) |
| |
| void | error (const String &msg, bool prevToken=true, bool breakWithException=true) |
| |
| void | errorUnexpected (const String &hint="", const Token *token=nullptr, bool breakWithException=false) |
| |
| void | errorUnexpected (const Tokens type, const Token *token=nullptr, bool breakWithException=false) |
| |
| void | errorInternal (const String &msg, const String &procName) |
| |
| void | warning (const String &msg, const SourceArea &area) |
| |
| void | warning (const String &msg, const Token *token) |
| |
| void | warning (const String &msg, bool prevToken=true) |
| |
| void | enableWarnings (bool enable) |
| |
| ParsingState | getActiveParsingState () const |
| |
| Scanner & | getScanner () |
| |
| String | getCurrentFilename () const |
| |
| TokenPtr | accept (const Tokens type) |
| |
| TokenPtr | accept (const Tokens type, const String &spell) |
| |
| virtual TokenPtr | acceptIt () |
| |
| void | pushTokenString (const TokenPtrString &tokenString) |
| |
| void | popTokenString () |
| |
| void | ignoreWhiteSpaces (bool includeNewLines=false, bool includeComments=false) |
| |
| void | ignoreNewLines () |
| |
| template<typename T > |
| const T & | updateSourceArea (const T &ast, const AST *areaOriginAST=nullptr) |
| |
| template<typename T > |
| const T & | updateSourceArea (const T &ast, const ASTPtr &firstAreaOriginAST, const ASTPtr &lastAreaOriginAST) |
| |
| template<typename T > |
| const T & | updateSourceAreaOffset (const T &ast) |
| |
| void | pushParsingState (const ParsingState &state) |
| |
| void | popParsingState () |
| |
| void | pushPreParsedAST (const ASTPtr &ast) |
| | Pushes the specified AST node onto the stack of pre-parsed AST nodes.
|
| |
| ASTPtr | popPreParsedAST () |
| |
| ExpressionPtr | parseGenericExpression () |
| |
| TernaryExpressionPtr | parseTernaryExpression (const ExpressionPtr &condExpression) |
| |
| ExpressionPtr | parseLogicOrExpression () |
| |
| ExpressionPtr | parseLogicAndExpression () |
| |
| ExpressionPtr | parseBitwiseOrExpression () |
| |
| ExpressionPtr | parseBitwiseXOrExpression () |
| |
| ExpressionPtr | parseBitwiseAndExpression () |
| |
| ExpressionPtr | parseEqualityExpression () |
| |
| ExpressionPtr | parseRelationExpression () |
| |
| ExpressionPtr | parseShiftExpression () |
| |
| ExpressionPtr | parseAddExpression () |
| |
| ExpressionPtr | parseSubExpression () |
| |
| ExpressionPtr | parseMulExpression () |
| |
| ExpressionPtr | parseDivExpression () |
| |
| ExpressionPtr | parseValueExpression () |
| |
| Int32 | parseIntLiteral (TokenPtr token=nullptr) |
| |
| Int32 | parseIntLiteral (const String &valueStr, const Token *token=nullptr) |
| |
| Log * | getLog () const |
| |
| ReportHandler & | getReportHandler () |
| |
| NameMangling & | getNameMangling () |
| |
| const String * | findNameManglingPrefix (const String &ident) const |
| |
| template<typename T , typename... Args> |
| SPtr< T > | make (Args &&... args) |
| |
| const TokenPtr & | getToken () const |
| |
| Tokens | getTokenType () const |
| |
| bool | is (const Tokens type) const |
| |
| bool | is (const Tokens type, const String &spell) const |
| |
Pre-processor to substitute macros and include directives.
The preprocessor works on something similar to a Concrete Syntax Tree (CST) rather than an Abstract Syntax Tree (AST). This is because the output is not an intermediate representation but rather concrete source code. Therefore, all white spaces and new-line characters must NOT be ignored. All other parsers and analyzers only work on an AST.