TextEditor EBNF: Difference between revisions
From Event-B
Jump to navigationJump to search
imported>Fabian New page: ''Coming soon'' |
imported>Fabian No edit summary |
||
Line 1: | Line 1: | ||
'' | ===EBNF for the TextEditor's syntax === | ||
parse_unit = | |||
comment? | |||
'machine' identifier_literal | |||
('refines' identifier_literal (',' identifier_literal)*)? | |||
('sees' identifier_literal (',' identifier_literal)*)? | |||
('variables' identifier_list)? | |||
('invariants' labeled_predicate_with_theorem+)? | |||
('variant' variant)? | |||
('events' event+)? | |||
end | | |||
comment? | |||
'context' identifier_literal | |||
('extends' identifier_literal (',' identifier_literal)*)? | |||
('sets' identifier_list)? | |||
('constants' identifier_list)? | |||
('axioms' labeled_predicate_with_theorem+)? | |||
end ; | |||
variant = comment? expression ; | |||
event = | |||
comment? | |||
convergence? 'event' identifier_literal | |||
event_refinement? | |||
('any' identifier_list)? | |||
('where' labeled_predicate+)? | |||
('with' labeled_predicate+)? | |||
('then' labeled_action+)? ; | |||
convergence = 'ordinary' | 'convergent' | 'anticipated' ; | |||
event_refinement = | |||
'refines' identifier_literal (',' identifier_literal)* | | |||
'extends' identifier_literal ; | |||
labeled_action = comment? '@' identifier_literal action ; | |||
labeled_predicate = comment? '@' identifier_literal predicate ; | |||
labeled_predicate_with_theorem = | |||
comment? '@' identifier_literal predicate | | |||
comment? 'theorem' '@' identifier_literal predicate ; | |||
identifier = comment? identifier_literal ; | |||
identifier_list = identifier (',' identifier)* ; |
Revision as of 14:31, 13 May 2009
EBNF for the TextEditor's syntax
parse_unit = comment? 'machine' identifier_literal ('refines' identifier_literal (',' identifier_literal)*)? ('sees' identifier_literal (',' identifier_literal)*)? ('variables' identifier_list)? ('invariants' labeled_predicate_with_theorem+)? ('variant' variant)? ('events' event+)? end | comment? 'context' identifier_literal ('extends' identifier_literal (',' identifier_literal)*)? ('sets' identifier_list)? ('constants' identifier_list)? ('axioms' labeled_predicate_with_theorem+)? end ; variant = comment? expression ; event = comment? convergence? 'event' identifier_literal event_refinement? ('any' identifier_list)? ('where' labeled_predicate+)? ('with' labeled_predicate+)? ('then' labeled_action+)? ; convergence = 'ordinary' | 'convergent' | 'anticipated' ; event_refinement = 'refines' identifier_literal (',' identifier_literal)* | 'extends' identifier_literal ; labeled_action = comment? '@' identifier_literal action ; labeled_predicate = comment? '@' identifier_literal predicate ; labeled_predicate_with_theorem = comment? '@' identifier_literal predicate | comment? 'theorem' '@' identifier_literal predicate ; identifier = comment? identifier_literal ; identifier_list = identifier (',' identifier)* ;