Pragma Abstract_State (GNAT Reference Manual) (original) (raw)
2.2 Pragma Abstract_State ¶
Syntax:
pragma Abstract_State (ABSTRACT_STATE_LIST);
ABSTRACT_STATE_LIST ::= null | STATE_NAME_WITH_OPTIONS | (STATE_NAME_WITH_OPTIONS {, STATE_NAME_WITH_OPTIONS} )
STATE_NAME_WITH_OPTIONS ::= STATE_NAME | (STATE_NAME with OPTION_LIST)
OPTION_LIST ::= OPTION {, OPTION}
OPTION ::= SIMPLE_OPTION | NAME_VALUE_OPTION
SIMPLE_OPTION ::= Ghost | Synchronous
NAME_VALUE_OPTION ::= Part_Of => ABSTRACT_STATE | External [=> EXTERNAL_PROPERTY_LIST]
EXTERNAL_PROPERTY_LIST ::= EXTERNAL_PROPERTY | (EXTERNAL_PROPERTY {, EXTERNAL_PROPERTY} )
EXTERNAL_PROPERTY ::= Async_Readers [=> static_boolean_EXPRESSION] | Async_Writers [=> static_boolean_EXPRESSION] | Effective_Reads [=> static_boolean_EXPRESSION] | Effective_Writes [=> static_boolean_EXPRESSION] others => static_boolean_EXPRESSION
STATE_NAME ::= defining_identifier
ABSTRACT_STATE ::= name
For the semantics of this pragma, see the entry for aspect Abstract_State
in the SPARK 2014 Reference Manual, section 7.1.4.