18 #include <hilti/ast/all.h> 19 #include <hilti/base/preprocessor.h> 21 #include <spicy/ast/all.h> 22 #include <spicy/autogen/config.h> 26 spicy::detail::parser::Parser::token_type \ 27 spicy::detail::parser::Scanner::lex(spicy::detail::parser::Parser::semantic_type* yylval, \ 28 spicy::detail::parser::location* yylloc, \ 29 spicy::detail::parser::Driver* driver) 31 #ifndef __FLEX_LEXER_H 32 #define yyFlexLexer SpicyFlexLexer 33 #include <FlexLexer.h> 40 namespace logging::debug {
53 Driver() : _preprocessor(spicy::configuration().preprocessor_constants) {}
58 Scanner* scanner()
const {
return _scanner; }
59 Parser* parser()
const {
return _parser; }
63 std::string* currentFile() {
return &_filename; }
64 int currentLine() {
return _line; }
65 void error(
const std::string& msg,
const Meta& m);
66 void enablePatternMode();
67 void disablePatternMode();
68 void enableExpressionMode();
69 void disableExpressionMode();
70 void enableDottedIDMode();
71 void disableDottedIDMode();
72 void enableHookIDMode();
73 void disableHookIDMode();
74 void setDestinationModule(
Module m) { _module = std::move(m); }
75 void setDestinationExpression(Expression e) { _expression = std::move(e); }
77 void processPreprocessorLine(
const std::string_view& directive,
const std::string_view& expression,
const Meta& m);
81 Expression _expression;
82 std::string _filename;
84 Parser* _parser =
nullptr;
Definition: preprocessor.h:22