ГО С Т Р И С О 1 0 3 0 3 -1 1 — 2009
300select_extension = BASED_ON type_ref [ WITH s e le ctjist ] .
301selectJ is t = ’ ( ’ namedJyp e s { * . ’ named_types } * ) ’ .
302selectJ y p e = [ EXTENSIBLE [G E N E R IC _EN TITY ]] SELECT
[ selectJ is t | select_extension J .
303set type = SET [ bound_spec ] OF instantiablejype .
304sign = * + * |
305simple_expression = term { addJike_op term } .
306sim p le ja cto r = aggregatejnitializer | entity_constructor |
enumeration_reference | interval |
query_expression | ( ( unary_op 1( ’ (*
expression’) ‘ | prim ary) ) .
307simple_types = b in a ryjyp e | b o o lean jype | integerJ y p e |
lo g ica tjype | number type | real_type |
stringJ y p e .
308skip_stmt = S K IP ’ :* .
309stmt = alias_stmt | assignment_stmt | case_stmt | compound_stmt |
escape_stmt | if_stmt | null_stmt | procedure_call_stmt |
repeat_stmt | return_stmt | skip_stmt .
310stringJiteral = simple_string_literal | encoded_stringJiteral .
311 stringJyp e = STRING [ w id th sp e c ] .
312subsuper = [ supertype_constraint J [ subtype_declaration J .
313subtype_constraint = OF ’ ( ’ supertype_expression *) ’ .
314subtype_constraint_body
315subtype_constraint_ded
= [ abstract_supertype ] [ total_over J
[ supertype_expression ’ ; ’ ) .
= subtype_constraint_head
subtype_constraint_body
END_SUBTYPE_CONSTRAINT
316subtype_constraint_head = SUBTYPE_CONSTRAINT
subtype_constraintJd FOR entity_ref
317subtype_constraint_id = sim pleJd .
318subtype_dec!aration = SUBTYPE OF 1( 1entity_ref { 1,’ entity_ref
}’)*•
319supertype_constraint = abstraet_entity_declaration |
abstract_supertype_declaration |
supertype_rule .
320supertype_expression = supertype_factor { ANDOR
supertypeJactor}.
321supertypeJa cto r = supertypeJ e rm { AND supertypeJe rm } .
322supertype_rule = SUPERTYPE subtype_constraint.
323supertypejerm = entity_ref | one_of | ’ ( ’ super1ype_expression
324syntax = schema_decl { schem a_decl} .
325term = factor { multiplicationJike_op fa cto r} .
326total_over = TOTAL_OVER ’ ( ’ entity_ref { ’ . ’ entity_ref } ’ )*
327type_ded = TYPE type_id ’ = ’ u n d e rtyin g jyp e ’ ; ’ [ where_dause 1
ENDJTYPE ’J .
328ty p e jd = simple_id .
329type_label = ty p e ja b e ljd | type_label_ref.
330ty p e ja b e ljd = s im p le jd .
331unary_op = ’ + * || N O T.
332underiying_type = concretejypes | constructed_types .
333unique_dause = UNIQUE unique_rule1; * { unique_rule ’ ; ’ } .
334unique_rule = [ ru le ja b e ljd ’: * J referenced_attribute { ’ , *
referenced_attribute } .
335until_control = UNTIL logical_expression .
336use_dause = USE FROM schema_ref [ ’ ( ’ named_type_or_rename
{ ’ , ’ namedJ y p e _ o r _ r e n a m e ‘ .
337variable_id = s im p le jd .
338\vhere_dause = W HERE dom ain_rule’ ; ’ { d o m a in ju le * ; ’ } .
339\vhile_control = W HILE logical_expression .
340width = numeric_expression .
341width spec = ’ ( ’ width • ) ’ ( FIXED J .
120