Skip to content

Commit f26958e

Browse files
committed
SMV: remove legacy grammar rules
This removes the parser rules related to the following legacy constructs: * EXTERN * INC, DEC, ADD, SUB * complex identifiers that contain round ( ... ) parentheses * switch None of these are recognised by NuSMV.
1 parent 79a2e1e commit f26958e

File tree

3 files changed

+4
-41
lines changed

3 files changed

+4
-41
lines changed

CHANGELOG

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
# EBMC 6.0
2+
3+
* SMV: removed legacy keywords EXTERN and switch
4+
15
# EBMC 5.9
26

37
* Verilog: fix for four-valued | and &

src/smvlang/parser.y

Lines changed: 0 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -257,8 +257,6 @@ static smv_parse_treet::modulet &new_module(YYSTYPE &location, YYSTYPE &module_n
257257
%token min_Token "min"
258258

259259
/* Not in the NuSMV manual */
260-
%token EXTERN_Token "EXTERN"
261-
%token switch_Token "switch"
262260
%token notin_Token "notin"
263261
%token R_Token "R"
264262

@@ -280,12 +278,7 @@ static smv_parse_treet::modulet &new_module(YYSTYPE &location, YYSTYPE &module_n
280278
%token NOTEQUAL_Token "!="
281279
%token LTLT_Token "<<"
282280
%token GTGT_Token ">>"
283-
284-
%token INC_Token
285-
%token DEC_Token
286281
%token BECOMES_Token ":="
287-
%token ADD_Token
288-
%token SUB_Token
289282

290283
%token IDENTIFIER_Token "identifier"
291284
%token QIDENTIFIER_Token "quoted identifier"
@@ -360,9 +353,6 @@ module_element:
360353
| ltl_specification
361354
| compute_specification
362355
| isa_declaration
363-
/* not in the NuSMV manual */
364-
| EXTERN_Token extern_var semi_opt
365-
| EXTERN_Token
366356
;
367357

368358
var_declaration:
@@ -523,9 +513,6 @@ ltl_specification:
523513
}
524514
;
525515

526-
extern_var : variable_identifier EQUAL_Token STRING_Token
527-
;
528-
529516
var_list : var_decl
530517
| var_list var_decl
531518
;
@@ -739,11 +726,6 @@ basic_expr : constant
739726
unary($$, ID_member, $1);
740727
stack_expr($$).set(ID_component_name, stack_expr($3).id());
741728
}
742-
| basic_expr '(' basic_expr ')'
743-
{
744-
// Not in the NuSMV grammar.
745-
binary($$, $1, ID_index, $3);
746-
}
747729
| '(' formula ')' { $$=$2; }
748730
| NOT_Token basic_expr { init($$, ID_not); mto($$, $2); }
749731
| "abs" '(' basic_expr ')' { unary($$, ID_smv_abs, $3); }
@@ -790,12 +772,6 @@ basic_expr : constant
790772
{ init($$, ID_if); mto($$, $1); mto($$, $3); mto($$, $5); }
791773
| case_Token cases esac_Token { $$=$2; }
792774
| next_Token '(' basic_expr ')' { init($$, ID_smv_next); mto($$, $3); }
793-
/* Not in NuSMV manual */
794-
| INC_Token '(' basic_expr ')' { init($$, "inc"); mto($$, $3); }
795-
| DEC_Token '(' basic_expr ')' { init($$, "dec"); mto($$, $3); }
796-
| ADD_Token '(' basic_expr ',' basic_expr ')' { j_binary($$, $3, ID_plus, $5); }
797-
| SUB_Token '(' basic_expr ',' basic_expr ')' { init($$, ID_minus); mto($$, $3); mto($$, $5); }
798-
| switch_Token '(' variable_identifier ')' '{' switches '}' { init($$, ID_switch); mto($$, $3); mto($$, $6); }
799775
/* CTL */
800776
| AX_Token basic_expr { init($$, ID_AX); mto($$, $2); }
801777
| AF_Token basic_expr { init($$, ID_AF); mto($$, $2); }
@@ -907,11 +883,6 @@ complex_identifier:
907883
{
908884
binary($$, $1, ID_index, $3);
909885
}
910-
| complex_identifier '(' basic_expr ')'
911-
{
912-
// Not in the NuSMV grammar.
913-
binary($$, $1, ID_index, $3);
914-
}
915886
;
916887

917888
cases :
@@ -924,16 +895,6 @@ case : formula ':' formula ';'
924895
{ binary($$, $1, ID_case, $3); }
925896
;
926897

927-
switches :
928-
{ init($$, "switches"); }
929-
| switches switch
930-
{ $$=$1; mto($$, $2); }
931-
;
932-
933-
switch : NUMBER_Token ':' basic_expr ';'
934-
{ init($$, ID_switch); mto($$, $1); mto($$, $3); }
935-
;
936-
937898
%%
938899

939900
int yysmverror(const std::string &error)

src/smvlang/scanner.l

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -168,8 +168,6 @@ void newlocation(YYSTYPE &x)
168168
"min" token(min_Token);
169169

170170
/* Not in the NuSMV manual */
171-
"EXTERN" token(EXTERN_Token);
172-
"switch" token(switch_Token);
173171
"notin" token(notin_Token);
174172
"R" token(R_Token);
175173

0 commit comments

Comments
 (0)