18 #include <hilti/ast/all.h> 19 #include <hilti/base/result.h> 23 hilti::detail::parser::Parser::token_type \ 24 hilti::detail::parser::Scanner::lex(hilti::detail::parser::Parser::semantic_type* yylval, \ 25 hilti::detail::parser::location* yylloc, \ 26 hilti::detail::parser::Driver* driver) 28 #define YYSTYPE yystype_hilti 30 #ifndef __FLEX_LEXER_H 31 #define yyFlexLexer HiltiFlexLexer 32 #include <FlexLexer.h> 46 hilti::Declaration declaration;
49 hilti::Expression expression;
50 hilti::Statement statement;
55 std::optional<hilti::Expression> opt_expression;
56 std::optional<hilti::Statement> opt_statement;
57 std::optional<hilti::AttributeSet> opt_attributes;
59 hilti::declaration::Linkage linkage;
60 hilti::declaration::parameter::Kind function_parameter_kind;
61 hilti::function::CallingConvention function_calling_convention;
64 hilti::type::function::Flavor function_flavor;
68 std::vector<std::string> strings;
69 std::vector<hilti::Declaration> declarations;
70 std::vector<hilti::Expression> expressions;
71 std::vector<hilti::Statement> statements;
72 std::vector<hilti::type::function::Parameter> function_parameters;
73 std::vector<hilti::statement::switch_::Case> switch_cases;
74 std::vector<hilti::statement::try_::Catch> try_catches;
76 std::pair<hilti::ID, hilti::Type> tuple_type_elem;
77 std::vector<std::pair<hilti::ID, hilti::Type>> tuple_type_elems;
80 hilti::ctor::struct_::Field struct_elem;
81 std::vector<hilti::type::struct_::Field> struct_fields;
82 std::vector<hilti::ctor::struct_::Field> struct_elems;
85 std::vector<hilti::type::union_::Field> union_fields;
87 hilti::ctor::Map::Element map_elem;
88 std::vector<hilti::ctor::Map::Element> map_elems;
91 std::vector<hilti::type::enum_::Label> enum_labels;
93 std::pair<std::vector<hilti::Declaration>, std::vector<hilti::Statement>> decls_and_stmts;
98 namespace logging::debug {
99 inline const DebugStream Parser(
"parser");
113 Scanner* scanner()
const {
return _scanner; }
114 Parser* parser()
const {
return _parser; }
118 std::string* currentFile() {
return &_filename; }
119 void error(
const std::string& msg,
const Meta& m);
120 void enablePatternMode();
121 void disablePatternMode();
122 void enableExpressionMode();
123 void disableExpressionMode();
124 void enableDottedIDMode();
125 void disableDottedIDMode();
126 void setDestinationModule(
Module&& m) { _module = std::move(m); }
130 std::string _filename;
131 Parser* _parser =
nullptr;
133 int _expression_mode = 0;
Definition: function.h:47
Definition: function.h:44
Definition: attribute.h:26
Definition: parameter.h:45