Project File Complete Syntax
project ::=
context_clause project_declaration
context_clause ::=
{with_clause}
with_clause ::=
with literal_string { , literal_string } ;
project_declaration ::=
project <project_>simple_name [ extends literal_string ] is
{declarative_item}
end <project_>simple_name;
declarative_item ::=
package_declaration |
typed_string_declaration |
other_declarative_item
package_declaration ::=
package <package_>simple_name package_completion
package_completion ::=
package_body | package_renaming
package body ::=
is
{other_declarative_item}
end <package_>simple_name ;
package_renaming ::==
renames <project_>simple_name.<package_>simple_name ;
typed_string_declaration ::=
type <typed_string_>_simple_name is
( literal_string {, literal_string} );
other_declarative_item ::=
attribute_declaration |
typed_variable_declaration |
variable_declaration |
case_construction
attribute_declaration ::=
for attribute use expression ;
attribute ::=
<simple_attribute_>simple_name |
<associative_array_attribute_>simple_name ( literal_string )
typed_variable_declaration ::=
<typed_variable_>simple_name : <typed_string_>name := string_expression ;
variable_declaration ::=
<variable_>simple_name := expression;
expression ::=
term {& term}
term ::=
literal_string |
string_list |
<variable_>name |
external_value |
attribute_reference
literal_string ::=
(same as Ada)
string_list ::=
( <string_>expression { , <string_>expression } )
external_value ::=
external ( literal_string [, literal_string] )
attribute_reference ::=
attribute_parent ' <simple_attribute_>simple_name [ ( literal_string ) ]
attribute_parent ::=
project |
<project_or_package>simple_name |
<project_>simple_name . <package_>simple_name
case_construction ::=
case <typed_variable_>name is
{case_item}
end case ;
case_item ::=
when discrete_choice_list => {case_construction | attribute_declaration}
discrete_choice_list ::=
literal_string {| literal_string}
name ::=
simple_name {. simple_name}
simple_name ::=
identifier (same as Ada)