Статус документа
Статус документа

ГОСТ Р ИСО 10303-11-2009 Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 11. Методы описания. Справочное руководство по языку EXPRESS

     7.5.4 Строковый литерал


Строковый литерал представляет значение строкового типа данных. Существуют две формы строкового литерала: простой строковый литерал и кодированный строковый литерал. Простой строковый литерал состоит из последовательности символов из набора символов языка EXPRESS (см. 7.1), заключенной в апострофы ( ' ). Апостроф в составе простого строкового литерала представляется двумя последовательными апострофами. Кодированный строковый литерал состоит из четырехоктетного кодированного представления каждого символа в последовательности символов ИСО/МЭК 10646-1, заключенной в кавычки ( " ). Кодирование определяется следующим образом:

- первый октет - группа ИСО/МЭК 10646-1, в которой определен символ;

- второй октет - плоскость ИСО/МЭК 10646-1, в которой определен символ;

- третий октет - строка ИСО/МЭК 10646-1, в которой определен символ;

- четвертый октет - позиция ИСО/МЭК 10646-1, в которой определен символ.

Последовательность октетов должна определять один из допустимых символов ИСО/МЭК 10646-1.

Строковый литерал никогда не должен выходить за границу физической строки, то есть символ "новая строка" не должен встречаться между апострофами, ограничивающими строковый литерал.

   Синтаксис:

     310 string_literal = simple_string_literal | encoded_string_literal .

     144 simple_string_literal = \q { ( \q \q ) | not_quote | \s | \x9 | \xA | \xD } \q .

     134 not_quote = not_paren_star_quote_special | letter | digit | ' ( ' | ' ) ' | ' * ' .

     132 not_paren_star_quote_special =

' ! '

' " '

' # '

' $ '

' % '

' & '

' + '

' , '

' - '

' . '

' / '

' : '

' ; '

' < '

' = '

' > '

' ? '

' @ '

' [ '

' \ '

' ] '

' ^ '

' _ '

' ' '

' { '

' | '

' } '

  ' ~ ' .

     128 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 ' .

     124 digit =

' 0 '

' 1 '

' 2 '

' 3 '

' 4 '

' 5 '

' 6 '

' 7 '

' 8 '

  ' 9 ' .

     140 encoded_string_literal = ' " ' encoded_character { encoded_character } ' " ' .

     126 encoded_character = octet octet octet octet .

     136 octet = hex_ digit hex_ digit .

     127 hex_digit = digit

' a '

' b '

' c '

' d '

' e '

 ' f ' .


При разработке синтаксического анализатора языка EXPRESS необходимо задать максимальное число символов простого строкового литерала, распознаваемое данным анализатором, используя в качестве руководства приложение Е.

При разработке синтаксического анализатора языка EXPRESS необходимо задать максимальное число октетов (которое должно быть кратно четырем) кодированного строкового литерала, распознаваемое данным анализатором, используя в качестве руководства приложение Е.

Примеры
     


    1 Правильная запись простых строковых литералов:

' Baby needs a new pair of shoes! '

Значением данного литерала является Baby needs a new pair of shoes!

' Ed ' ' s Computer Store '

Значением данного литерала является Ed's Computer Store

2 Неправильная запись простых строковых литералов:

' Ed ' s Computer Store '

Литерал всегда должен содержать четное число апострофов.

' Ed '' s Computer
     
     Store '


Литерал выходит за границы физической строки.

3 Правильная запись кодированных строковых литералов:

" 00000041 "

Значением данного литерала является A.
     
     " 000000С5 "


Значением данного литерала является .
     
     " 0000795Е00006238 "


Значением данного литерала являются японские иероглифы  , обозначающие Kobe.