Применение искинов - шоссе империализма (Стенгазета русификаторов ИТ)

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



Вереница и/или череда? Фэнтези на тему

Сообщений 1 страница 2 из 2

1

Пусть вереница - это последовательность чего либо,
а череда - это последовательность с разделителями.

тогда, например:

Код:
грамматика_бнф
	| вереница_правил

вереница_правил
	| ничто
	| правило вереница_правил

правило
	| нетерминал @"вертикальная_черта" непустая_череда_альтернатив

непустая_череда_альтернатив
	| альтернатива череда_альтернатив

череда_альтернатив
	| ничто
	| @"вертикальная_черта" альтернатива череда_альтернатив

альтернатива
	| вереница_терминалов_или_нетерминалов

вереница_терминалов_или_нетерминалов
	| ничто
	| терминал_или_нетерминал вереница_терминалов_или_нетерминалов

терминал_или_нетерминал
	| терминал
	| нетерминал

нетерминал
	| @"буква" вереница_символов_нетерминала

терминал
	| описание_терминала
	| @"символ_коммерческое_эт" описание_терминала

описание_терминала
	| @"двойная_кавычка" вереница_символов_строки @"двойная_кавычка"
	| @"одинарная_кавычка" @"любой_символ_кроме_одинарной_кавычки" @"одинарная_кавычка"

вереница_символов_нетерминала
	| ничто
	| символ_словосочетания вереница_символов_нетерминала

символ_словосочетания
	| @"буква"
	| @"цифра"
	| @"разделитель_слов_в_словосочетании"

вереница_символов_строки
	| ничто
	| @"любой_символ_кроме_двойных_кавычек" вереница_символов_строки

ничто
	|

/* Это закомментированный текст, просто для понимания
буква
	|'а'|'б'|'в'|'г'|'д'|'е'|'ё'|'ж'|'з'|'и'|'й'|'к'|'л'|'м'|'н'|'о'|'п'|'р'|'с'|'т'|'у'|'ф'|'х'|'ц'|'ч'|'ш'|'щ'|'ъ'|'ы'|'ь'|'э'|'ю'|'я'
	|'А'|'Б'|'В'|'Г'|'Д'|'Е'|'Ё'|'Ж'|'З'|'И'|'Й'|'К'|'Л'|'М'|'Н'|'О'|'П'|'Р'|'С'|'Т'|'У'|'Ф'|'Х'|'Ц'|'Ч'|'Ш'|'Щ'|'Ъ'|'Ы'|'Ь'|'Э'|'Ю'|'Я'
цифра
	|'0'|'1'|'2'|'3'|'4'|'5'|'6'|'7'|'8'|'9'
разделитель_слов_в_словосочетании
	|'_'
символ_коммерческое_эт
	|'@'
вертикальная_черта
	|'|'
двойная_кавычка
	|'"'
одинарная_кавычка
	|"'"
любой_символ_кроме_одинарной_кавычки
	|буква|цифра|разделитель_слов_в_словосочетании|символ_коммерческое_эт|вертикальная_черта|двойная_кавычка
*/

Отредактировано Лис (2024-11-13 22:37:43)

0

2

Ещё попытка. Переставил местами значения слов "вереница"->"цепочка", "череда" -> "вереница", мешанина -> "череда".

У меня есть (разные) элементы и (одинаковые) разделители.
Если элементы идут один за одним, я называю это "цепочка" (элементов).
Если элементы разделяются разделителями, то я называют это "вереница" (элементов с разделителями).
Есть ещё две ситуации - когда есть цепочка или вереница - там или разделителей точно нет, или всегда есть разделители.
Но возможна ещё ситуация, когда разделители иногда могут быть, а иногда могут отсутствовать.
Последнюю ситуацию называю "череда" (элементов с разделителями).

цепочка - элементы без разделителей
    АБВГДЕ
вереница - элементы с разделителями
    А-Б-В-Г-Д-Е
череда - элементы со случайно-опциональными разделителями
    АБВ-ГД-Е

Последовательность - это обобщающее слово. Цепочка, вереница, череда - все они последовательности элементов.

Строка - это цепочка символов
(т.е. с более сишным значением. Строка это то, что между двойными кавычками, а цепочка может быть чего угодно, не обязательно символов).

"Функция принимает вереницу элементов, разделенных запятыми, и возвращает их сумму."

"Мы анализируем череду символов, где разделители могут присутствовать не всегда, и выделяем ключевые слова."

Насколько это (использование слов "вереница", "цепочка" и "череда") будет запутывать пользователей?

Код:
файл_с_грамматикой_бнф
	| ε
	| _цепочка_пустых_строк_
	| _грамматика_бнф_

_грамматика_бнф_
	| грамматика_бнф_
	| игнорируемое_начало_файла грамматика_бнф_

грамматика_бнф_
	| грамматика_бнф
	| грамматика_бнф игнорируемое_окончание_файла

игнорируемое_начало_файла
	| _цепочка_пустых_строк_ 

игнорируемое_окончание_файла
	| _цепочка_пустых_строк_

грамматика_бнф
	| вереница_правил
	
вереница_правил
	| правило
	| правило    вереница_правил
	| правило    _цепочка_пустых_строк_    вереница_правил
	
правило
	| нетерминал    _цепочка_разделитель_частей_правила_    череда_альтернатив
	
череда_альтернатив
	| альтернатива
	| альтернатива    _цепочка_разделитель_альтернатив_    череда_альтернатив

альтернатива
	| вереница_терминалов_или_нетерминалов

вереница_терминалов_или_нетерминалов
	| терминал_или_нетерминал
	| терминал_или_нетерминал    _    вереница_терминалов_или_нетерминалов

терминал_или_нетерминал
	| цепочка_обозначающая_ничто
	| терминал
	| нетерминал

терминал
	| цепочка_маркирующая_начало_терминала    цепочка_элементов_терминала    цепочка_маркирующая_конец_терминала

цепочка_элементов_терминала
	|  элемент_терминала
	|  элемент_терминала    цепочка_элементов_терминала

элемент_терминала
	| символ_как_есть_кроме_начала_цепочки_маркирующей_выход
	| символ_в_виде_шестнадцатеричного_кода

символ_в_виде_шестнадцатеричного_кода
	| цепочка_различитель_шестнадцатеричного_кода цепочка_шестнадцатеричных_цифр

цепочка_шестнадцатеричных_цифр
	| символ_шестнадцатеричный_цифровой
	| символ_шестнадцатеричный_цифровой цепочка_шестнадцатеричных_цифр

нетерминал
	| символ_подчёркивание
	| символ_подчёркивание    нетерминал_без_начального_подчёркивания
	
нетерминал_без_начального_подчёркивания
	| слово_или_словосочетание
	| слово_или_словосочетание символ_подчёркивание 

слово_или_словосочетание
	| слово
	| словосочетание
	
слово
	| первый_элемент_слова
	| первый_элемент_слова вереница_элементов_слова

вереница_элементов_слова
	| последующий_элемент_слова
	| последующий_элемент_слова вереница_элементов_слова

первый_элемент_слова
	| символ_кириллический

последующий_элемент_слова
	| символ_кириллический
	| символ_арабский_цифровой

словосочетание
	| первое_слово_словосочетания
	| первое_слово_словосочетания цепочка_разделитель_слов_в_словосочетании череда_слов_словосочетания

череда_слов_словосочетания
	| элемент_череды_слов_словосочетания
	| элемент_череды_слов_словосочетания цепочка_разделитель_слов_в_словосочетании череда_слов_словосочетания

элемент_череды_слов_словосочетания
	| последующее_слово_словосочетания

первое_слово_словосочетания
	| слово

последующее_слово_словосочетания
	| вереница_элементов_слова


_цепочка_пустых_строк_
	| цепочка_пустых_строк_
	| _    цепочка_пустых_строк_

цепочка_пустых_строк_
	| цепочка_пустых_строк
	| цепочка_пустых_строк    _
	
цепочка_пустых_строк
	| пустая_строка
	| пустая_строка     продолжение_череды_разделителей_строк
	
пустая_строка
	| цепочка_разделитель_строк    _    цепочка_разделитель_строк

продолжение_череды_разделителей_строк
	| продолжающий_элемент_череды_разделителей_строк
	| продолжающий_элемент_череды_разделителей_строк     продолжение_череды_разделителей_строк
	| продолжающий_элемент_череды_разделителей_строк     продолжающий_разделитель_череды_разделителей_строк     продолжение_череды_разделителей_строк

начальный_элемент_череды_разделителей_строк
	| цепочка_разделитель_строк

продолжающий_элемент_череды_разделителей_строк
	| цепочка_разделитель_строк

начальный_разделитель_череды_разделителей_строк
	| _

продолжающий_разделитель_череды_разделителей_строк
	| _

_
	| цепочка_пробельных_символов

цепочка_пробельных_символов
	| цепочка_пробельный_символ
	| цепочка_пробельный_символ цепочка_пробельных_символов


цепочка_пробельный_символ_или_разделитель_строк
	| цепочка_пробельный_символ
	| цепочка_разделитель_строк

цепочка_пробельный_символ
	| символ_пробел
	| символ_табуляция


цепочка_разделитель_строк
	| цепочка_разделитель_строк_линукс
	| цепочка_странный_разделитель_строк

цепочка_разделитель_строк_линукс
	| символ_перевода_строки

цепочка_странный_разделитель_строк
	| символ_возврата_каретки
	| символ_возврата_каретки символ_перевода_строки


цепочка_обозначающая_ничто
	| символ_ничто
	
_цепочка_разделитель_частей_правила_
	| цепочка_разделитель_частей_правила_
	| _    цепочка_разделитель_частей_правила_
	
цепочка_разделитель_частей_правила_
	| цепочка_разделитель_частей_правила
	| цепочка_разделитель_частей_правила    _

цепочка_разделитель_частей_правила
	| символ_вертикальная_черта

_цепочка_разделитель_альтернатив_
	| цепочка_разделитель_альтернатив_
	| _    цепочка_разделитель_альтернатив_

цепочка_разделитель_альтернатив_
	| цепочка_разделитель_альтернатив
	| цепочка_разделитель_альтернатив    _
	
цепочка_разделитель_альтернатив
	| символ_вертикальная_черта

цепочка_разделитель_слов_в_словосочетании
	| символ_подчёркивание

цепочка_маркирующая_начало_терминала
	| символ_передние_лапки

цепочка_маркирующая_конец_терминала
	| символ_задние_лапки

цепочка_различитель_шестнадцатеричного_кода
	| символ_обратная_косая_черта символ_кодепоинта_юникода


символ_как_есть_кроме_начала_цепочки_маркирующей_выход
	| символ_кириллический
	| символ_арабский_цифровой
	| символ_вертикальная_черта
	| символ_подчёркивание
	| символ_передние_лапки

символ_шестнадцатеричный_цифровой
	| символ_арабский_цифровой
	| символ_английский_эй
	| символ_английский_би
	| символ_английский_си
	| символ_английский_ди
	| символ_английский_и
	| символ_английский_эф

символ_арабский_цифровой
	| символ_арабский_ноль
	| символ_арабский_единица
	| символ_арабский_двойка 
	| символ_арабский_тройка
	| символ_арабский_четвёрка
	| символ_арабский_пятёрка
	| символ_арабский_шестёрка
	| символ_арабский_семёрка
	| символ_арабский_восьмёрка
	| символ_арабский_девятка

символ_кириллический
	| символ_кириллический_заглавный
	| символ_кириллический_строчный


символ_возврата_каретки
	| «\u000D»

символ_перевода_строки
	| «\u000A»

символ_табуляция
	| «\u0009»

символ_пробел
	| «\u0020»


символ_ничто
	| «ε»


символ_подчёркивание
	| «_»

символ_передние_лапки
	| «\u00AB»

символ_задние_лапки
	| «\u00BB»

символ_вертикальная_черта
	| «|»

символ_обратная_косая_черта
	| «\»

символ_кодепоинта_юникода
	| «u»


символ_английский_эй
	| «A»
	| «a»

символ_английский_би
	| «B»
	| «b»

символ_английский_си
	| «C»
	| «c»

символ_английский_ди
	| «D»
	| «d»

символ_английский_и
	| «E»
	| «e»

символ_английский_эф
	| «F»
	| «f»


символ_арабский_ноль
	| «0»

символ_арабский_единица
	| «1»

символ_арабский_двойка
	| «2»

символ_арабский_тройка
	| «3»

символ_арабский_четвёрка
	| «4»

символ_арабский_пятёрка
	| «5»

символ_арабский_шестёрка
	| «6»

символ_арабский_семёрка
	| «7»

символ_арабский_восьмёрка
	| «8»

символ_арабский_девятка
	| «9»


символ_кириллический_заглавный
	| «А»
	| «Б»
	| «В»
	| «Г»
	| «Д»
	| «Е»
	| «Ё»
	| «Ж»
	| «З»
	| «И»
	| «Й»
	| «К»
	| «Л»
	| «М»
	| «Н»
	| «О»
	| «П»
	| «Р»
	| «С»
	| «Т»
	| «У»
	| «Ф»
	| «Х»
	| «Ц»
	| «Ч»
	| «Ш»
	| «Щ»
	| «Ъ»
	| «Ы»
	| «Ь»
	| «Э»
	| «Ю»
	| «Я»

символ_кириллический_строчный
	| «а»
	| «б»
	| «в»
	| «г»
	| «д»
	| «е»
	| «ё»
	| «ж»
	| «з»
	| «и»
	| «й»
	| «к»
	| «л»
	| «м»
	| «н»
	| «о»
	| «п»
	| «р»
	| «с»
	| «т»
	| «у»
	| «ф»
	| «х»
	| «ц»
	| «ч»
	| «ш»
	| «щ»
	| «ъ»
	| «ы»
	| «ь»
	| «э»
	| «ю»
	| «я»

0