diff --git a/regression/smv/syntax-errors/syntax2.desc b/regression/smv/syntax-errors/syntax2.desc index a70f65a7..0337f3e0 100644 --- a/regression/smv/syntax-errors/syntax2.desc +++ b/regression/smv/syntax-errors/syntax2.desc @@ -1,7 +1,7 @@ CORE syntax2.smv -^file .* line 3: syntax error, unexpected VAR before 'VAR'$ +^file .* line 3: syntax error, unexpected VAR, expecting MODULE before 'VAR'$ ^EXIT=1$ ^SIGNAL=0$ -- diff --git a/src/smvlang/parser.y b/src/smvlang/parser.y index e4fb057a..1b25fdc6 100644 --- a/src/smvlang/parser.y +++ b/src/smvlang/parser.y @@ -140,7 +140,6 @@ static void new_module(YYSTYPE &module) PARSER.module=&PARSER.parse_tree.modules[name]; PARSER.module->name=name; PARSER.module->base_name=stack_expr(module).id_string(); - PARSER.module->used=true; } /*------------------------------------------------------------------------*/ @@ -236,8 +235,6 @@ static void new_module(YYSTYPE &module) %% start : modules - | formula { PARSER.module->add_ctlspec(stack_expr($1)); - PARSER.module->used=true; } ; modules : module diff --git a/src/smvlang/smv_language.cpp b/src/smvlang/smv_language.cpp index 326d201c..4b04e86b 100644 --- a/src/smvlang/smv_language.cpp +++ b/src/smvlang/smv_language.cpp @@ -34,21 +34,11 @@ bool smv_languaget::parse( { smv_parsert smv_parser(message_handler); - const std::string main_name=smv_module_symbol("main"); - smv_parser.module=&smv_parser.parse_tree.modules[main_name]; - smv_parser.module->name=main_name; - smv_parser.module->base_name="main"; - smv_parser.set_file(path); smv_parser.in=&instream; bool result=smv_parser.parse(); - // see if we used main - - if(!smv_parser.parse_tree.modules[main_name].used) - smv_parser.parse_tree.modules.erase(main_name); - smv_parse_tree.swap(smv_parser.parse_tree); return result; diff --git a/src/smvlang/smv_parse_tree.h b/src/smvlang/smv_parse_tree.h index cc1076d3..7191c99c 100644 --- a/src/smvlang/smv_parse_tree.h +++ b/src/smvlang/smv_parse_tree.h @@ -175,11 +175,8 @@ class smv_parse_treet mc_varst vars; enum_sett enum_set; - bool used; - + std::list ports; - - modulet():used(false) { } }; typedef std::unordered_map modulest; diff --git a/src/smvlang/smv_parser.h b/src/smvlang/smv_parser.h index 7f48407c..683d8844 100644 --- a/src/smvlang/smv_parser.h +++ b/src/smvlang/smv_parser.h @@ -34,7 +34,7 @@ class smv_parsert:public parsert smv_parse_treet parse_tree; smv_parse_treet::modulet *module; - + virtual bool parse() { return yysmvparse();