Skip to content

Grammar omissions in 1.9

ID0002187: This issue was created automatically from Mantis Issue 2187. Further discussion may take place here.


Id Project Category View Due Date Updated
ID0002187 Frama-C Documentation > ACSL public 2015-11-23 2019-07-17
Reporter dcok@grammatech.com Assigned To patrick Resolution won't fix
Priority normal Severity text Reproducibility N/A
Platform - OS - OS Version -
Product Version Frama-C Sodium Target Version - Fixed in Version -

Description :

Comments on the grammar in ACSL 1.9:

Corrections • There is no grammar for the \at, labelName, module, ::, open statement constructs • There is no grammar for the value of a logic array or union type (cf. Example 2.12). (The grammar of struct (record) values is in Fig. 2.16.) • In Fig. 2.11, including allocation-clause in a simple-clause-stmt is redundant, since it is already included in simple-clause. • The volatile declaration should end in a semicolon. (Fig. 2.26) • The grammar of a loop-behavior in Fig. 2.9 allows the for prefix, but no clauses. • The grammar allows a statement-contract and a behavior-body-stmt to have a completely empty set of clauses (Fig. 2.11), even with for prefixes.

Suggestions: • In Fig 2.12, the production for a C-external-declaration should allow global invariants, type invariants, model, module, and open declarations within one annotation, along with logic-def declarations, rather than in individual annotations as in Fig 2.23 and 2.24. • Volatile declarations should be allowed in annotations with other declarations. • Multiple assert specifications should be allowed in one annotation (Fig. 2.8)

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information