11. Anlage | ||||||
|
||||||
11.6.1 Bilden einer Musterzeichenkette (picture string formation)
Eine wohlgeformte Musterzeichenkette ist eine Zeichenkette, die den syntaktischen Regeln, den Einschränkungen bei der Zusammensetzung und den Vorschriften für die Zeichenwiederholung in dieser Klausel entspricht. Diese Regeln werden hier in der Backus-Naur-Form (BNF) dargestellt: picture_string ::= fixed_$_picture_string | fixed_#_picture_string | floating_currency_picture_string | non_currency_picture_string fixed_$_picture_string ::= [fixed_LHS_sign] fixed_$_char {direct_insertion} [zero_suppression] number [RHS_sign] | [fixed_LHS_sign {direct_insertion}] [zero_suppression] number fixed_$_char {direct_insertion} [RHS_sign] | floating_LHS_sign number fixed_$_char {direct_insertion} [RHS_sign] | [fixed_LHS_sign] fixed_$_char {direct_insertion} all_zero_suppression_number {direct_insertion} [RHS_sign] | [fixed_LHS_sign {direct_insertion}] all_zero_suppression_number {direct_insertion} fixed_$_char {direct_insertion} [RHS_sign] | all_sign_number {direct_insertion} fixed_$_char {direct_insertion} [RHS_sign] fixed_#_picture_string ::= [fixed_LHS_sign] single_#_currency {direct_insertion} [zero_suppression] number [RHS_sign] | [fixed_LHS_sign] multiple_#_currency {direct_insertion} zero_suppression number [RHS_sign] | [fixed_LHS_sign {direct_insertion}] [zero_suppression] number fixed_#_currency {direct_insertion} [RHS_sign] | floating_LHS_sign number fixed_#_currency {direct_insertion} [RHS_sign] | [fixed_LHS_sign] single_#_currency {direct_insertion} all_zero_suppression_number {direct_insertion} [RHS_sign] | [fixed_LHS_sign] multiple_#_currency {direct_insertion} all_zero_suppression_number {direct_insertion} [RHS_sign] | [fixed_LHS_sign {direct_insertion}] all_zero_suppression_number{direct_insertion} fixed_#_currency {direct_insertion} [RHS_sign] | all_sign_number {direct_insertion} fixed_#_currency {direct_insertion}[RHS_sign] floating_currency_picture_string ::= [fixed_LHS_sign] {direct_insertion} floating_$_currency number [RHS_sign] | [fixed_LHS_sign] {direct_insertion} floating_#_currency number [RHS_sign] | [fixed_LHS_sign] {direct_insertion} all_currency_number {direct_insertion}[RHS_sign] non_currency_picture_string ::= [fixed_LHS_sign {direct_insertion}] zero_suppression number [RHS_sign] | [floating_LHS_sign] number [RHS_sign] | [fixed_LHS_sign {direct_insertion}] all_zero_suppression_number {direct_insertion} [RHS_sign] | all_sign_number {direct_insertion} | fixed_LHS_sign direct_insertion {direct_insertion} number [RHS_sign] fixed_LHS_sign ::= LHS_Sign LHS_Sign ::= + | - | < fixed_$_char ::= $ direct_insertion ::= simple_insertion simple_insertion ::= _ | B | 0 | / zero_suppression ::= Z {Z | context_sensitive_insertion} | fill_string context_sensitive_insertion ::= simple_insertion fill_string ::= * {* | context_sensitive_insertion} number ::= fore_digits [radix [aft_digits] {direct_insertion}] | radix aft_digits {direct_insertion} fore_digits ::= 9 {9 | direct_insertion} aft_digits ::= {9 | direct_insertion} 9 radix ::= . | V RHS_sign ::= + | - | > | CR | DB floating_LHS_sign ::= LHS_Sign {context_sensitive_insertion} LHS_Sign {LHS_Sign | context_sensitive_insertion} single_#_currency ::= # multiple_#_currency ::= ## {#} fixed_#_currency ::= single_#_currency | multiple_#_currency floating_$_currency ::= $ {context_sensitive_insertion} $ {$ | context_sensitive_insertion} floating_#_currency ::= # {context_sensitive_insertion} # {# | context_sensitive_insertion} all_sign_number ::= all_sign_fore [radix [all_sign_aft]] [>] all_sign_fore ::= sign_char {context_sensitive_insertion} sign_char {sign_char | context_sensitive_insertion} all_sign_aft ::= {all_sign_aft_char} sign_char all_sign_aft_char ::= sign_char | context_sensitive_insertion sign_char ::= + | - | < all_currency_number ::= all_currency_fore [radix [all_currency_aft]] all_currency_fore ::= currency_char {context_sensitive_insertion}currency_char {currency_char | context_sensitive_insertion} all_currency_aft ::= {all_currency_aft_char} currency_char all_currency_aft_char ::= currency_char | context_sensitive_insertion currency_char ::= $ | # all_zero_suppression_number ::= all_zero_suppression_fore [ radix[all_zero_suppression_aft]] all_zero_suppression_fore ::= zero_suppression_char {zero_suppression_char | context_sensitive_insertion} all_zero_suppression_aft ::= {all_zero_suppression_aft_char} zero_suppression_char all_zero_suppression_aft_char ::= zero_suppression_char | context_sensitive_insertion zero_suppression_char ::= Z | * Die folgenden Einschränkungen gelten für die Zusammensetzung der Musterzeichenketten:
Eine Zeichenwiederholung (Character replication) ist eine Zeichenkette char & "(" & spaces & count_string & ")" wobei "char" ein wiederholbares Zeichen ist, "spaces" eine Zeichenkette (womöglich leer), die nur Leerzeichen enthält und "count_string" eine Zeichenkette bestehend aus einer oder mehreren dezimalen Ziffern. Eine Zeichenwiederholung in einer Musterzeichenkette hat die gleiche Wirkung (und wird als äquivalent bezeichnet) wie eine Zeichenkette, in der n mal hintereinander "char" auftritt, wobei n=IntegerValue(count_string) ist. Beispiel: Die Musterzeichenkette "Z(5)9" entspricht der Musterzeichenkette "ZZZZZ9". Eine expandierte Musterzeichenkette ist eine Zeichenkette, die keine Zeichenwiederholungen enthält. Obwohl ein Vorzeichen auf der linken Seite einer Zahl fließen kann, ist ein Vorzeichen rechts von der Zahl an einer festen Position. |
||||||
|