Spec-Zone.ru › Ada 2012
Справочное руководство по Ada 2012

Формирование строк картинок

Значение типа строка картинки, или просто строка картинки, это строковое значение, которое соответствует синтаксическим правилам, ограничениям на состав и соглашениям по репликации символов, указанным в этом подпункте.

Динамическая семантика

Этот абзац был удалён.
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 | *
Следующие ограничения на композицию применимы к строке-изображению:
  • У floating_LHS_sign нет случаев различных значений символа LHS_Sign.
  • Если в строке-изображении '<' как fixed_LHS_sign, то она имеет '>' как RHS_sign.
  • Если в строке-изображении '<' в floating_LHS_sign или в all_sign_number, то она имеет вхождение '>'.
  • Если в строке-изображении '+' или '–' как fixed_LHS_sign, в floating_LHS_sign или в all_sign_number, то она не имеет RHS_sign или символ '>'.
  • В экземпляре all_sign_number нет случаев разных значений символа sign_char.
  • В экземпляре all_currency_number нет случаев разных значений символа currency_char.
  • В экземпляре all_zero_suppression_number нет случаев разных значений символа zero_suppression_char, за исключением возможных различий в регистре между 'Z' и 'z'.
Символ, допускающий дублирование — это символ, который, согласно вышеуказанным правилам, может встречаться в двух последовательных позициях в строке-изображении.
Дублирование символов — это строка
char & '(' & spaces & count_string & ')'
где char — это символ, допускающий дублирование, spaces — это строка (возможно, пустая), состоящая только из пробельных символов, а count_string — это строка из одного или более десятичных цифр. Дублирование символов в строке-изображении имеет тот же эффект, что и (и считается эквивалентным) строка, содержащая n последовательных вхождений char, где n = Integer'Value(count_string).
Расширенная строка-изображение — это строка-изображение, не содержащая дублирования символов.
ПРИМЕЧАНИЯ
3 Хотя знак слева от числа может быть плавающим, знак справа от числа находится в фиксированном положении.


Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API