home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Unsorted BBS Collection
/
thegreatunsorted.tar
/
thegreatunsorted
/
programming
/
misc_programming
/
ace.lng
< prev
next >
Wrap
Text File
|
1990-09-23
|
25KB
|
991 lines
Σ≡«»≤≥
«starting_menu»
«compilation_unit»
Σ«starting_menu»
«simple_statement»
«declarative_part»
«compilation_unit»
«pragma»
«comment»
≡«INPUT_comment_text?» %1"Input comment"
Σ«comment_text»
«INPUT_comment_text?»
«graphic_characters»
≡«comment» --«comment_text»
≡«INPUT_graphic_character?» %1"Input character"
Σ«graphic_character»
«INPUT_graphic_character?»
«basic_graphic_character»
«lower_case_letter»
«other_special_character»
Σ«digit»
0
1
2
3
4
5
6
7
8
9
Σ«upper_case_letter»
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
Σ«lower_case_letter»
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Σ«basic_graphic_character»
«upper_case_letter»
«digit»
«special_character»
«space_character»
≡«space_character» ≤ ≥
Σ«special_character»
"
#
&
'
(
)
*
+
,
-
.
/
:
;
<
=
>
_
|
Σ«other_special_character»
!
$
%
?
@
[
\
]
^
`
{
}
~
≡«INPUT_identifier?» %1"Input identifier"
Σ«identifier»
«INPUT_identifier?»
«letter»≤«more_identifier»≥
Examples
TBD
a_more_readable_name
Σ«more_identifier»
«letter_or_digit»≤«more_identifier»≥
_«letter_or_digit»≤«more_identifier»≥
Σ«letter_or_digit»
«letter»
«digit»
Σ«letter»
«lower_case_letter»
«upper_case_letter»
≡«INPUT_number?» %1"Input number"
Σ«numeric_literal»
«INPUT_number?»
«decimal_literal»
«based_literal»
Σ«decimal_literal»
«INPUT_number?»
«integer»
«integer».«integer»
«integer»«exponent»
«integer».«integer»«exponent»
1990
1_000_000
1E6
3.141516
0.123
1.2345e-7
16_777.001_001e+3
Σ«integer»
«INPUT_number?»
«digit»≤«more_integer»≥
16
1_427
Σ«more_integer»
«digit»≤«more_integer»≥
_«digit»≤«more_integer»≥
Σ«exponent»
E«integer»
E+«integer»
E-«integer»
Σ«based_literal»
«INPUT_number?»
«base»#«based_integer»≤.«based_integer»≥#≤«exponent»≥
16#FFFF#
2#10110#e-5
16#f.001#
≡«base» «integer»
Σ«based_integer»
«INPUT_number?»
«extended_digits»
144
1_011_111
7FFF
Σ«extended_digits»
«extended_digit»≤«extended_digits»≥
_«extended_digit»≤«extended_digits»≥
Σ«extended_digit»
«digit»
A
B
C
D
E
F
a
b
c
d
e
f
≡«character_literal» '«graphic_character»'
≡«INPUT_string?» %1"Input string"
Σ«string_literal»
"«INPUT_string?»"
""
"«graphic_characters»"
"Example string ..."
≡«graphic_characters» «graphic_character»≤«graphic_characters»≥
Σ«pragma»
pragma controlled(«access_type_simple_name»);
pragma elaborate(«library_unit_simple_name»);
pragma inline(«subprogram_name»);
pragma interface(«language_name», «subprogram_name»≤, «link_name»≥);
pragma list(on);
pragma list(off);
pragma memory_size(«numeric_literal»);
pragma optimize(time);
pragma optimize(space);
pragma pack(«record_or_array_type_simple_name»);
pragma page;
pragma priority(«static_simple_expression»);
pragma shared(«variable_simple_name»);
pragma storage_unit(«numeric_literal»);
pragma suppress(«check_name», «suppress_name»);
pragma system_name(«enumeration_literal»);
pragma «identifier»≤(«argument_associations»)≥;
≡«access_type_simple_name» «simple_name»
≡«library_unit_simple_name» «simple_name»
≡«record_or_array_type_simple_name» «simple_name»
≡«variable_simple_name» «simple_name»
Σ«language_name»
assembly
builtin
internal
microsoft_c
Σ«check_name»
access_check
discriminant_check
division_check
elaboration_check
index_check
length_check
overflow_check
range_check
storage_check
≡«suppress_name» «name»
≡«link_name» «string_literal»
≡«argument_associations»
«argument_association»≤, «argument_associations»≥
≡«argument_identifier» «identifier»
≡«argument_association» ≤«argument_identifier» => ≥«expression»
Σ«basic_declaration»
«object_declaration»
«number_declaration»
«type_declaration»
«subtype_declaration»
«subprogram_declaration»
«package_declaration»
«task_declaration»
«generic_declaration»
«exception_declaration»
«generic_instantiation»
«renaming_declaration»
«deferred_constant_declaration»
Σ«object_declaration»
«identifier_list» :≤ constant≥ «subtype_indication»≤ := «expression»≥;
«identifier_list» :≤ constant≥ «constrained_array_def»≤ := «expression»≥;
≡«constrained_array_def» «constrained_array_definition»
≡«universal_static_expression» «expression»
≡«number_declaration» «identifier_list» : constant := «universal_static_expression»;
≡«identifier_list» «identifier»≤, «identifier_list»≥
Σ«type_declaration»
«full_type_declaration»
«incomplete_type_declaration»
«private_type_declaration»
≡«full_type_declaration» type «identifier»≤ «discriminant_part»≥ is «type_definition»;
Σ«type_definition»
«integer_type_definition»
«real_type_definition»
«enumeration_type_definition»
«array_type_definition»
«record_type_definition»
«access_type_definition»
«derived_type_definition»
≡«subtype_declaration» subtype «identifier» is «subtype_indication»;
≡«subtype_indication» «type_mark»≤ «constraint»≥
Σ«subtype_name»
«real_name»
natural
positive
Σ«type_name»
«real_name»
boolean
byte_integer
character
duration
float
integer
long_integer
string
Σ«type_mark»
«type_name»
«subtype_name»
Σ«constraint»
«range_constraint»
«floating_point_constraint»
«fixed_point_constraint»
«index_constraint»
«discriminant_constraint»
≡«derived_type_definition» new «subtype_indication»
≡«range_constraint» range «range»
Σ«range»
«simple_expression» .. «simple_expression»
«prefix»'range
«prefix»'range(«universal_static_expression»)
≡«enumeration_type_definition» («enumeration_literals»)
≡«enumeration_literals» «enumeration_literal»≤, «enumeration_literals»≥
Σ«enumeration_literal»
«identifier»
«character_literal»
≡«integer_type_definition» «range_constraint»
Σ«real_type_definition»
«floating_point_constraint»
«fixed_point_constraint»
≡«floating_point_constraint» «floating_accuracy_definition»≤ «range_constraint»≥
≡«static_simple_expression» «simple_expression»
≡«floating_accuracy_definition» digits «static_simple_expression»
≡«fixed_point_constraint» «fixed_accuracy_definition»≤ «range_constraint»≥
≡«fixed_accuracy_definition» delta «static_simple_expression»
Σ«array_type_definition»
«unconstrained_array_definition»
«constrained_array_definition»
≡«component_subtype_indication» «subtype_indication»
≡«unconstrained_array_definition» array(«index_subtype_definitions») of «component_subtype_indication»
≡«index_subtype_definitions» «index_subtype_definition»≤, «index_subtype_definitions»≥
≡«constrained_array_definition» array «index_constraint» of «component_subtype_indication»
≡«index_subtype_definition» «type_mark» range <>
≡«index_constraint» («discrete_ranges»)
≡«discrete_ranges» «discrete_range»≤, «discrete_ranges»≥
≡«discrete_subtype_indication» «subtype_indication»
Σ«discrete_range»
«range»
«discrete_subtype_indication»
≡«record_type_definition»
record
«component_list»
end record
Σ«component_list»
«component_declarations»≤ «variant_part»≥
«variant_part»
null;
≡«component_declarations» «component_declaration»
≤«component_declarations»≥
≡«component_declaration» «identifier_list» : «component_subtype_definition»≤ := «expression»≥;
≡«component_subtype_definition» «subtype_indication»
≡«discriminant_part» («discriminant_specification»≤; «discriminant_specifications»≥)
≡«discriminant_specifications» «discriminant_specification»≤; «discriminant_specifications»≥
≡«discriminant_specification» «identifier_list» : «type_mark»≤ := «expression»≥
≡«discriminant_constraint» («discriminant_associations»)
≡«discriminant_associations» «discriminant_association» ≤, «discriminant_associations»≥
≡«discriminant_simple_name» «simple_name»
≡«discriminant_association» ≤«discriminant_simple_names» => ≥«expression»
≡«discriminant_simple_names» «discriminant_simple_name»≤ | «discriminant_simple_names»≥
≡«variant_part» case «discriminant_simple_name» is
«variants»
end case;
≡«variants» «variant»
≤«variants»≥
≡«variant» when «choices» =>
«component_list»
≡«component_simple_name» «simple_name»
≡«choices» «choice»≤ | «choices»≥
Σ«choice»
«simple_expression»
«discrete_range»
others
«component_simple_name»
≡«access_type_definition» access «subtype_indication»
≡«incomplete_type_declaration» type «identifier»≤ «discriminant_part»≥;
≡«declarative_part» ≤«basic_declarative_items»≥
≤«later_declarative_items»≥
≡«basic_declarative_items» «basic_declarative_item»
≤«basic_declarative_items»≥
≡«later_declarative_items» «later_declarative_item»
≤«later_declarative_items»≥
Σ«basic_declarative_item»
«basic_declaration»
«representation_clause»
«use_clause»
Σ«later_declarative_item»
«body»
«subprogram_declaration»
«package_declaration»
«task_declaration»
«generic_declaration»
«use_clause»
«generic_instantiation»
Σ«body»
«proper_body»
«body_stub»
Σ«proper_body»
«subprogram_body»
«package_body»
«task_body»
Σ«name»
«simple_name»
«character_literal»
«operator_symbol»
«indexed_component»
«slice»
«selected_component»
«attribute»
Σ«real_name»
«simple_name»
«real_name».«simple_name»
≡«simple_name» «identifier»
Σ«prefix»
«name»
«function_call»
≡«indexed_component» «prefix»(«expressions»)
≡«expressions» «expression»≤, «expressions»≥
≡«slice» «prefix»(«discrete_range»)
≡«selected_component» «prefix».«selector»
Σ«selector»
«simple_name»
«character_literal»
«operator_symbol»
all
≡«attribute» «prefix»'«attribute_designator»
Σ«attribute_designator»
address
aft
base
callable
constrained
count
delta
digits
emax
epsilon
first
first(«universal_static_expression»)
first_bit
fore
image(«expression»)
large
last
last(«universal_static_expression»)
last_bit
length
length(«universal_static_expression»)
locoffset
machine_emax
machine_emin
machine_mantissa
machine_overflows
machine_radix
machine_rounds
mantissa
pos(«expression»)
position
pred(«expression»)
range
range(«universal_static_expression»)
safe_emax
safe_large
safe_small
size
small
storage_size
succ(«expression»)
terminated
val(«expression»)
value(«expression»)
width
≡«aggregate» («component_associations»)
≡«component_associations» «component_association»≤, «component_associations»≥
≡«component_association» ≤«choices» => ≥«expression»
≡«INPUT_expression?» %1"Input expression"
Σ«expression»
«INPUT_expression?»
«relation»
«relation» and «and_expression»
«relation» and then «and_then_expression»
«relation» or «or_expression»
«relation» or else «or_else_expression»
«relation» xor «xor_expression»
Σ«and_expression»
«relation»
«relation» and «and_expression»
Σ«and_then_expression»
«relation»
«relation» and then «and_then_expression»
Σ«or_expression»
«relation»
«relation» or «or_expression»
Σ«or_else_expression»
«relation»
«relation» or else «or_else_expression»
Σ«xor_expression»
«relation»
«relation» xor «xor_expression»
Σ«relation»
«simple_expression»
«simple_expression» = «simple_expression»
«simple_expression» /= «simple_expression»
«simple_expression» < «simple_expression»
«simple_expression» <= «simple_expression»
«simple_expression» > «simple_expression»
«simple_expression» >= «simple_expression»
«simple_expression» ≤not ≥in «range»
«simple_expression» ≤not ≥in «type_mark»
≡«INPUT_simple_expression?» %1"Input simple expression"
Σ«simple_expression»
«INPUT_simple_expression?»
«binary_adding_expression»
+«binary_adding_expression»
-«binary_adding_expression»
Σ«binary_adding_expression»
«term»
«term» + «binary_adding_expression»
«term» - «binary_adding_expression»
«term» & «binary_adding_expression»
Σ«term»
«factor»
«factor» * «term»
«factor» / «term»
«factor» mod «term»
«factor» rem «term»
Σ«factor»
«primary»
«primary» ** «primary»
abs «primary»
not «primary»
Σ«primary»
«name»
«numeric_literal»
«string_literal»
«function_call»
(«expression»)
«aggregate»
«allocator»
null
«qualified_expression»
«type_conversion»
≡«type_conversion» «type_mark»(«expression»)
Σ«qualified_expression»
«type_mark»'(«expression»)
«type_mark»'«aggregate»
Σ«allocator»
new «subtype_indication»
new «qualified_expression»
≡«sequence_of_statements» «statement»
≤«sequence_of_statements»≥
Σ«statement»
«simple_statement»
«labeled_simple_statement»
≡«labeled_simple_statement» «labels»
«simple_statement»
≡«labels» «label»
≤«labels»≥
Σ«simple_statement»
«assignment_statement»
«if_statement»
«procedure_call_statement»
«while_statement»
«for_statement»
«loop_statement»
«return_statement»
«case_statement»
«block_statement»
«raise_statement»
«exit_statement»
«null_statement»
«delay_statement»
«accept_statement»
«entry_call_statement»
«select_statement»
«abort_statement»
«code_statement»
«goto_statement»
≡«label_simple_name» «simple_name»
≡«label» <<«label_simple_name»>>
≡«null_statement» null;
≡«variable_name» «real_name»
≡«assignment_statement» «variable_name» := «expression»;
≡«if_statement» if «condition» then
«sequence_of_statements»
≤«elsif_clause»≥
≤«else_clause»≥
end if;
≡«elsif_clause» elsif «condition» then
«sequence_of_statements»
≤«elsif_clause»≥
≡«else_clause» else
«sequence_of_statements»
≡«boolean_expression» «expression»
≡«condition» «boolean_expression»
≡«case_statement» case «expression» is
«case_statement_alternatives»
end case;
≡«case_statement_alternatives» «case_statement_alternative»
≤«case_statement_alternatives»≥
≡«case_statement_alternative» when «case_choices» =>
«sequence_of_statements»
≡«case_choices» «case_choice»≤ | «case_choices»≥
Σ«case_choice»
«simple_expression»
«discrete_range»
others
Σ«loop_statement»
«unnamed_loop_statement»
«named_loop_statement»
≡«unnamed_loop_statement» loop
«sequence_of_statements»
end loop;
≡«named_loop_statement» %1"Input loop simple name":
loop
«sequence_of_statements»
end loop %1;
Σ«while_statement»
«unnamed_while_statement»
«named_while_statement»
≡«unnamed_while_statement» while «condition» loop
«sequence_of_statements»
end loop;
≡«named_while_statement» %1"Input loop simple name":
while «condition» loop
«sequence_of_statements»
end loop %1;
Σ«for_statement»
«unnamed_for_statement»
«named_for_statement»
≡«unnamed_for_statement» for «loop_parameter_specification» loop
«sequence_of_statements»
end loop;
≡«named_for_statement» %1"Input loop simple name":
for «loop_parameter_specification» loop
«sequence_of_statements»
end loop %1;
≡«loop_parameter_specification» «identifier» in ≤reverse ≥«discrete_range»
≡«block_simple_name» «simple_name»
Σ«block_statement»
«unnamed_block_statement»
«named_block_statement»
≡«unnamed_block_statement» ≤«declarative_section»≥
begin
«sequence_of_statements»
≤«exception_handler_section»≥
end;
≡«named_block_statement» %1"Input loop simple name":
≤«declarative_section»≥
begin
«sequence_of_statements»
≤«exception_handler_section»≥
end %1;
≡«declarative_section» declare
«declarative_part»
≡«exception_handler_section» exception
«exception_handlers»
≡«exception_handlers» «exception_handler»
≤«exception_handlers»≥
≡«loop_name» «real_name»
≡«exit_statement» exit≤ «loop_name»≥≤ when «condition»≥;
≡«return_statement» return≤ «expression»≥;
≡«label_name» «real_name»
≡«goto_statement» goto «label_name»;
≡«subprogram_declaration» «subprogram_specification»;
Σ«subprogram_specification»
procedure «identifier»≤«formal_part»≥
function «designator»≤«formal_part»≥ return «type_mark»
Σ«designator»
«identifier»
«operator_symbol»
Σ«operator_symbol»
"and"
"or"
"xor"
"="
"/="
"<"
"<="
">"
">="
"+"
"-"
"&"
"*"
"/"
"mod"
"rem"
"**"
"abs"
"not"
≡«formal_part» («parameter_specifications»)
≡«parameter_specifications» «parameter_specification»≤; «parameter_specifications»≥
≡«parameter_specification» «identifier_list» : «mode» «type_mark»≤ := «expression»≥
Σ«mode»
≤in≥
in out
out
Σ«subprogram_body»
«procedure_body»
«function_body»
≡«procedure_body» procedure %1"Input procedure identifier"≤«formal_part»≥ is
≤«declarative_part»≥
begin
«sequence_of_statements»
≤«exception_handler_section»≥
end %1;
≡«function_body» function %1"Input function designator"≤«formal_part»≥ return «type_mark» is
≤«declarative_part»≥
begin
«sequence_of_statements»
≤«exception_handler_section»≥
end %1;
≡«procedure_name» «real_name»
≡«procedure_call_statement» «procedure_name»≤«actual_parameter_part»≥;
≡«function_name» «subprogram_name»
≡«function_call» «function_name»≤«actual_parameter_part»≥
≡«actual_parameter_part» («parameter_associations»)
≡«parameter_associations» «parameter_association»≤, «parameter_associations»≥
≡«parameter_association» ≤«formal_parameter» => ≥«actual_parameter»
≡«parameter_simple_name» «simple_name»
≡«formal_parameter» «parameter_simple_name»
Σ«actual_parameter»
«expression»
«variable_name»
«type_mark»(«variable_name»)
≡«package_declaration» «package_specification»;
≡«package_simple_name» «simple_name»
≡«package_specification» package %1"Package identifier" is
≤«basic_declarative_items»≥
≤«private_part»≥
end %1
≡«private_part» private
≤«basic_declarative_items»≥
≡«package_body» package body %1"Package identifier" is
≤«declarative_part»≥
≤«package_body_statements»≥
end %1;
≡«package_body_statements» begin
«sequence_of_statements»
≤«exception_handler_section»≥
≡«private_type_declaration» type «identifier»≤ «discriminant_part»≥ is≤ limited≥ private;
≡«deferred_constant_declaration» «identifier_list» : constant «type_mark»;
≡«INPUT_package_name?» %1"Input package name"
Σ«package_name»
«INPUT_package_name?»
«real_name»
ascii
calendar
direct_io
io_exceptions
machine_code
sequential_io
standard
system
text_io
unchecked_conversion
unchecked_deallocation
≡«use_clause» use «package_names»;
≡«package_names» «package_name»≤, «package_names»≥
Σ«exception_name»
«real_name»
constraint_error
numeric_error
program_error
storage_error
tasking_error
≡«object_name» «real_name»
≡«subprogram_or_entry_name» «subprogram_name»
Σ«renaming_declaration»
«identifier» : «type_mark» renames «object_name»;
«identifier» : exception renames «exception_name»;
package «identifier» renames «package_name»;
«subprogram_specification» renames «subprogram_or_entry_name»;
≡«task_declaration» «task_specification»;
≡«task_simple_name» «simple_name»
Σ«task_specification»
«task_with_entries»
«task_without_entries»
≡«task_without_entries» task ≤type≥ %1"Input task identifier"
≡«task_with_entries» task ≤type≥ %1"Input task identifier" is
≤«entry_declarations»≥
≤«address_clauses»≥
end %1
≡«entry_declarations» «entry_declaration»
≤«entry_declarations»≥
≡«address_clauses» «address_clause»
≤«address_clauses»≥
≡«task_body» task body %1"Input task identifier" is
≤«declarative_part»≥
begin
«sequence_of_statements»
≤«exception_handler_section»≥
end %1;
≡«entry_declaration» entry «identifier»≤(«discrete_range»)≥≤«formal_part»≥;
≡«entry_name» «real_name»
≡«entry_call_statement» «entry_name»≤«actual_parameter_part»≥;
≡«entry_simple_name» «simple_name»
Σ«accept_statement»
«accept_with_do_part»
«accept_without_do_part»
≡«accept_with_do_part» accept %1"Input entry identifier"≤(«entry_index»)≥≤«formal_part»≥ do
«sequence_of_statements»
end %1;
≡«accept_without_do_part» accept «entry_simple_name»≤(«entry_index»)≥≤«formal_part»≥;
≡«entry_index» «expression»
≡«delay_statement» delay «simple_expression»;
Σ«select_statement»
«selective_wait»
«conditional_entry_call»
«timed_entry_call»
≡«selective_wait» select
«select_alternative»
≤«selective_wait_or_alternatives»≥
≤«selective_wait_else_alternative»≥
end select;
≡«selective_wait_or_alternatives» or
«select_alternative»
≤«selective_wait_or_alternatives»≥
≡«selective_wait_else_alternative» else
«sequence_of_statements»
≡«select_alternative» ≤when «condition» =>≥
«selective_wait_alternative»
Σ«selective_wait_alternative»
«accept_alternative»
«delay_alternative»
«terminate_alternative»
≡«accept_alternative» «accept_statement»
≤«sequence_of_statements»≥
≡«delay_alternative» «delay_statement»
≤«sequence_of_statements»≥
≡«terminate_alternative» terminate;
≡«conditional_entry_call» select
«entry_call_statement»
≤«sequence_of_statements»≥
else
«sequence_of_statements»
end select;
≡«timed_entry_call» select
«entry_call_statement»
≤«sequence_of_statements»≥
or
«delay_alternative»
end select;
≡«task_name» «real_name»
Σ«abort_statement» abort «task_names»;
≡«task_names» «task_name»≤, «task_names»≥
Σ«compilation»
«compilation_unit»
«compilation_units»
Σ«compilation_units»
«compilation_unit»
«compilation_units»
≡«compilation_unit» ≤«context_clause»≥
«library_or_secondary_unit»
Σ«library_or_secondary_unit»
«subprogram_body»
«subprogram_declaration»
«package_declaration»
«package_body»
«generic_declaration»
«generic_instantiation»
«subunit»
≡«context_clause» «with_clause»
≤«use__clause»≥
≤«context_clauses»≥
≡«context_clauses»
≤«with_clause»≥
≤«use__clause»≥
≤«context_clauses»≥
≡«INPUT_package_identifier?» %1"Input package identifier"
Σ«unit_simple_name»
«INPUT_package_identifier?»
«simple_name»
ascii
calendar
direct_io
io_exceptions
machine_code
sequential_io
standard
system
text_io
unchecked_conversion
unchecked_deallocation
≡«use__clause» use «unit_simple_names»;
≡«with_clause» with «unit_simple_names»;
≡«unit_simple_names» «unit_simple_name»≤, «unit_simple_names»≥
Σ«body_stub»
«subprogram_specification» is separate;
package body «package_simple_name» is separate;
task body «task_simple_name» is separate;
≡«parent_unit_name» «real_name»
≡«subunit» separate(«parent_unit_name»)
«proper_body»
≡«exception_declaration» «identifier_list» : exception;
≡«exception_handler» when «exception_choices» =>
«sequence_of_statements»
≡«exception_choices» «exception_choice»≤ | «exception_choices»≥
Σ«exception_choice»
«exception_name»
others
≡«raise_statement» raise≤ «exception_name»≥;
≡«generic_declaration» «generic_specification»;
Σ«generic_specification»
«generic_subprogram_specification»
«generic_package_specification»
≡«generic_subprogram_specification»
«generic_formal_part»
«subprogram_specification»
≡«generic_package_specification»
«generic_formal_part»
«package_specification»
≡«generic_formal_part» generic
≤«generic_parameter_declarations»≥
≡«generic_parameter_declarations» «generic_parameter_declaration»
≤«generic_parameter_declarations»≥
Σ«generic_parameter_declaration»
«identifier_list» : ≤in ≤out≥≥ «type_mark»≤ := «expression»≥;
type «identifier» is «generic_type_definition»;
«private_type_declaration»
with «subprogram_specification»≤ is «subprogram_name»≥;
with «subprogram_specification»≤ is <>≥;
Σ«generic_type_definition»
(<>)
range <>
digits <>
delta <>
«array_type_definition»
«access_type_definition»
≡«generic_function_name» «subprogram_name»
≡«generic_package_name» «real_name»
≡«generic_procedure_name» «real_name»
Σ«generic_instantiation»
package «identifier» is new «generic_package_name»≤«generic_actual_part»≥;
procedure «identifier» is new «generic_procedure_name»≤«generic_actual_part»≥;
function «designator» is new «generic_function_name»≤«generic_actual_part»≥;
≡«generic_actual_part» («generic_associations»)
≡«generic_associations» «generic_association»≤, «generic_associations»≥
≡«generic_association» ≤«generic_formal_parameter» => ≥«generic_actual_parameter»
Σ«generic_formal_parameter»
«parameter_simple_name»
«operator_symbol»
Σ«subprogram_name»
«simple_name»
«real_name».«simple_name»
«operator_symbol»
Σ«generic_actual_parameter»
«expression»
«variable_name»
«subprogram_name»
«entry_name»
«type_mark»
Σ«representation_clause»
«type_representation_clause»
«address_clause»
Σ«type_representation_clause»
«length_clause»
«enumeration_representation_clause»
«record_representation_clause»
Σ«length_clause»
for «integer_type_name»'size use «simple_expression»;
for «access_type_name»'storage_size use «simple_expression»;
for «task_type_name»'storage_size use «simple_expression»;
for «fixed_point_type_name»'small use «simple_expression»;
≡«access_type_name» «real_name»
≡«integer_type_name» «real_name»
≡«task_type_name» «real_name»
≡«fixed_point_type_name» «real_name»
≡«type_simple_name» «simple_name»
≡«enumeration_representation_clause» for «type_simple_name» use «aggregate»;
≡«record_representation_clause» for «type_simple_name» use
record ≤«alignment_clause»≥
≤«component_clauses»≥
end record;
Σ«component_clauses»
«component_clause»
«component_clause» «component_clauses»
≡«alignment_clause» at mod «static_simple_expression»;
≡«component_name» «real_name»
≡«static_range» «range»
≡«component_clause» «component_name» at «static_simple_expression» range «static_range»;
≡«address_clause» for «simple_name» use at «simple_expression»;
≡«record_aggregate» «aggregate»
≡«code_statement» «type_mark»'«record_aggregate»;