diff --git a/src/parser/parser.cc b/src/parser/parser.cc index b38fb0c..74b0b50 100644 --- a/src/parser/parser.cc +++ b/src/parser/parser.cc @@ -6,6 +6,8 @@ #include #include +std::unordered_set type_names; + extern FILE * yyin; static const char * input_fname; @@ -192,3 +194,8 @@ void handle_parse_error(const char * str, const YYLTYPE * yylloc) yylloc->last_column); display_error_source(yylloc->last_line, yylloc->last_column); } + +void observe_type_name(const std::string & type_name) +{ + type_names.insert(type_name); +} diff --git a/src/parser/parser.h b/src/parser/parser.h index 2526f0d..7666566 100644 --- a/src/parser/parser.h +++ b/src/parser/parser.h @@ -3,10 +3,15 @@ #include "Node.h" #include "parser.tab.hh" +#include +#include #define YYSTYPE Node * +extern std::unordered_set type_names; + void parse(const char * filename); void handle_parse_error(const char * str, const YYLTYPE * yylloc); +void observe_type_name(const std::string & type_name); #endif