Skip to content

Commit bcf000d

Browse files
authored
Merge pull request #1004 from diffblue/smv-grammar-rename
SMV: rename grammar rules to match NuSMV manual
2 parents 29491d5 + d5d4c74 commit bcf000d

File tree

1 file changed

+56
-19
lines changed

1 file changed

+56
-19
lines changed

src/smvlang/parser.y

Lines changed: 56 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ modules : module
303303
| modules module
304304
;
305305

306-
module : module_head sections
306+
module : module_head module_body
307307
;
308308

309309
module_name: STRING_Token
@@ -314,34 +314,71 @@ module_head: MODULE_Token module_name { new_module($2); }
314314
| MODULE_Token module_name { new_module($2); } '(' module_argument_list_opt ')'
315315
;
316316

317-
sections : /* epsilon */
318-
| sections section
317+
module_body: /* optional */
318+
| module_body module_element
319319
;
320320

321321
semi_opt : /* empty */
322322
| ';'
323323
;
324324

325-
section : VAR_Token vardecls
325+
module_element:
326+
var_declaration
327+
| define_declaration
328+
| assign_constraint
329+
| trans_constraint
330+
| init_constraint
331+
| invar_constraint
332+
| fairness_constraint
333+
| ctl_specification
334+
| ltl_specification
335+
| EXTERN_Token extern_var semi_opt
336+
| EXTERN_Token
337+
;
338+
339+
var_declaration:
340+
VAR_Token vardecls
326341
| VAR_Token
327-
| INIT_Token formula semi_opt { PARSER.module->add_init(stack_expr($2), stack_expr($1).source_location()); }
328-
| INIT_Token
329-
| TRANS_Token formula semi_opt { PARSER.module->add_trans(stack_expr($2), stack_expr($1).source_location()); }
330-
| TRANS_Token
331-
| SPEC_Token formula semi_opt { PARSER.module->add_ctlspec(stack_expr($2), stack_expr($1).source_location()); }
332-
| SPEC_Token
333-
| LTLSPEC_Token formula semi_opt { PARSER.module->add_ltlspec(stack_expr($2), stack_expr($1).source_location()); }
334-
| LTLSPEC_Token
335-
| ASSIGN_Token assignments
336-
| ASSIGN_Token
337-
| DEFINE_Token defines
342+
;
343+
344+
define_declaration:
345+
DEFINE_Token defines
338346
| DEFINE_Token
339-
| INVAR_Token formula semi_opt { PARSER.module->add_invar(stack_expr($2), stack_expr($1).source_location()); }
347+
;
348+
349+
assign_constraint:
350+
ASSIGN_Token assignments
351+
| ASSIGN_Token
352+
;
353+
354+
trans_constraint:
355+
TRANS_Token formula semi_opt { PARSER.module->add_trans(stack_expr($2), stack_expr($1).source_location()); }
356+
| TRANS_Token
357+
;
358+
359+
init_constraint:
360+
INIT_Token formula semi_opt { PARSER.module->add_init(stack_expr($2), stack_expr($1).source_location()); }
361+
| INIT_Token
362+
;
363+
364+
invar_constraint:
365+
INVAR_Token formula semi_opt { PARSER.module->add_invar(stack_expr($2), stack_expr($1).source_location()); }
340366
| INVAR_Token
341-
| FAIRNESS_Token formula semi_opt { PARSER.module->add_fairness(stack_expr($2), stack_expr($1).source_location()); }
367+
;
368+
369+
fairness_constraint:
370+
FAIRNESS_Token formula semi_opt { PARSER.module->add_fairness(stack_expr($2), stack_expr($1).source_location()); }
342371
| FAIRNESS_Token
343-
| EXTERN_Token extern_var semi_opt
344-
| EXTERN_Token
372+
;
373+
374+
ctl_specification:
375+
SPEC_Token formula semi_opt { PARSER.module->add_ctlspec(stack_expr($2), stack_expr($1).source_location()); }
376+
| SPEC_Token
377+
;
378+
379+
ltl_specification:
380+
LTLSPEC_Token formula semi_opt { PARSER.module->add_ltlspec(stack_expr($2), stack_expr($1).source_location()); }
381+
| LTLSPEC_Token
345382
;
346383

347384
extern_var : variable_name EQUAL_Token QUOTE_Token

0 commit comments

Comments
 (0)