контекстно-свободная самоописывающаяся грамматика
От: Arsen.Shnurkov  
Дата: 03.03.17 08:42
Оценка:
Помогите, пожалуйста, найти ошибки в коде:

       (* контекстно-свободная самоописывающаяся грамматика *)

(*А*) файл = [ маркер ] , [{ гм , правило }] , гм ;
(*Б*) маркер = "0шДЕ", "0шББ", "0шБЕ" ;
(*В*) гм = [ обм ] ; (* сгруппированное необязательное белое место *)
(*Г*) обм = { ябм | комментарий } ; (* обязательное белое место *)
(*Д*) ябм = { тп | новая строка } ; (* явно белое место *)
(*Е*) тп = { табуляция | пробел } ;
(*Ё*) табуляция = "0ш07" ;
(*Ж*) пробел = "0ш20" ;
(*З*) новая строка = перевод строки | возврат каретки , перевод строки | возврат каретки ;
(*И*) перевод строки = "0ш0А" ;
(*Й*) возврат каретки = "0ш0В" ;
(*К*) комментарий = "(*" , [ { . } ] - "*)" , "*)" ;
(*Л*) знак = 
       десятичная цифра | буква | буква с ударением | знак препинания
       | пробел | перевод строки | возврат каретки  | расширение текстореза ;
(*М*) десятичная цифра = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ;
(*Н*) буква = "а" | "б" | "в" | "г" | "д" | "е" | "ё" | "ж" | "з" | "и"
       | "й" | "к" | "л" | "м" | "н" | "о" | "п" | "р" | "с" | "т"
       | "у" | "ф" | "х" | "ц" | "ч" | "ш" | "щ" | "ъ" | "ы" | "ь"
       | "э" | "ю" | "я"
       | "А" | "Б" | "В" | "Г" | "Д" | "Е" | "Ё" | "Ж" | "З" | "И"
       | "Й" | "К" | "Л" | "М" | "Н" | "О" | "П" | "Р" | "С" | "Т"
       | "У" | "Ф" | "Х" | "Ц" | "Ч" | "Ш" | "Щ" | "Ъ" | "Ы" | "Ь"
       | "Э" | "Ю" | "Я" ;
(*О*) буква с ударением = "а́" | "е́" | "и́" | "о́" | "у́" | "ы́" | "э́" | "ю́" | "я́"
       | "А́" | "Е́" | "И́" | "О́" | "У́" | "Ы́" | "Э́" | "Ю́" | "Я́"
       | "а̀" | "ѐ" | "ѝ" | "о̀" | "у̀" | "ы̀" | "э̀" | "ю̀" | "я̀"
       | "А̀" | "Ѐ" | "Ѝ" | "О̀" | "У̀" | "Ы̀" | "Э̀" | "Ю̀" | "Я̀"
       ;
(*П*) знак препинания = 
       | "?" | "!" | "." | "…" | "," | ";" | двойная кавычка | "-"
       | "[" | "]" | "{" | "}" | "(" | ")" | "/" | "\"
       | "=" | "+" | "*" | "^" ;
(*Р*) расширение текстореза = "?" , [ { знак - "?" } ] , "?" ;
(*С*) двойная кавычка = "0ш22" ;
(*Т*) правило = имя , гм , "=" , гм , выражение , гм , ";" ;
(*У*) выражение = перечисление , [ { гм , "|" , гм , перечисление } ] ;
(*Ф*) перечисление = выбор , [ { гм , "," , гм , выбор } ] ;
(*Х*) выбор = имя | строка | утаивание | группировка | повторение | исключение | "." ;
(*Ц*) имя = часть имени, [ { тп , часть имени } ] ;
(*Ч*) часть имени = буква , [ { буква | цифра } ] ;
(*Ш*) строка = двойная кавычка , { символ в строке } , двойная кавычка ;
(*Щ*) символ в строке = символ из битов | ( любой символ - двойная кавычка ) ;
(*Ъ*) символ из битов = ( "0б" , 1…16 { двоичная цифра } ) | ( "0ш" , 1…4 { шестнадцатеричная цифра } ) ;
(*Ы*) двоичная цифра = "0" | "1" ;
(*Ь*) шестнадцатеричная цифра = десятичная цифра | "А" | "Б" | "В" | "Г" | "Д" | "Е" ;
(*Э*) любой символ = . ;
(*Ю*) утаивание = "[" , гм , выражение , гм , "]" ;
(*Я*) группировка = "(" , гм , выражение , гм , ")" ;
(*1*) повторение = [ количество повторений , гм  ] , "{" , гм , выражение , гм , "}" ;
      (* если количество повторений не указано, то подразумевается от одного до бесконечности *)
(*2*) количество повторений = диапазон | не менее | не более | десятичное число ;
(*3*) диапазон = десятичное число , гм , "…" , гм , десятичное число ;
(*4*) десятичное число = "0" | ( десятичная цифра - "0" , [ { десятичная цифра } ] ) ;
(*5*) не менее = десятичное число , гм , "…" ;
(*6*) не более = "…" , гм , десятичное число ;
(*7*) исключение = выражение , гм , "-" , гм , выражение ;


https://github.com/ArsenShnurkov/rus_gramm_norm/blob/master/rus_gramm_norm/Grammar/syntax1.ebnf
Отредактировано 10.03.2017 19:40 Arsen.Shnurkov . Предыдущая версия . Еще …
Отредактировано 10.03.2017 5:05 Arsen.Shnurkov . Предыдущая версия .
Отредактировано 10.03.2017 5:04 Arsen.Shnurkov . Предыдущая версия .
Отредактировано 10.03.2017 5:03 Arsen.Shnurkov . Предыдущая версия .
Отредактировано 10.03.2017 4:56 Arsen.Shnurkov . Предыдущая версия .
Отредактировано 10.03.2017 4:47 Arsen.Shnurkov . Предыдущая версия .
Отредактировано 10.03.2017 0:07 Arsen.Shnurkov . Предыдущая версия .
Отредактировано 09.03.2017 23:47 Arsen.Shnurkov . Предыдущая версия .
Отредактировано 09.03.2017 23:35 Arsen.Shnurkov . Предыдущая версия .
Отредактировано 09.03.2017 23:26 Arsen.Shnurkov . Предыдущая версия .
Отредактировано 09.03.2017 21:59 Arsen.Shnurkov . Предыдущая версия .
Отредактировано 09.03.2017 21:45 Arsen.Shnurkov (добавлено правило про "не менее") . Предыдущая версия .
Отредактировано 09.03.2017 21:30 Arsen.Shnurkov . Предыдущая версия .
Отредактировано 04.03.2017 13:53 Arsen.Shnurkov . Предыдущая версия .
Отредактировано 03.03.2017 19:06 Arsen.Shnurkov . Предыдущая версия .
Отредактировано 03.03.2017 17:28 Arsen.Shnurkov . Предыдущая версия .
Отредактировано 03.03.2017 16:32 Arsen.Shnurkov . Предыдущая версия .
Отредактировано 03.03.2017 15:47 Arsen.Shnurkov . Предыдущая версия .
Отредактировано 03.03.2017 11:24 Arsen.Shnurkov . Предыдущая версия .
Отредактировано 03.03.2017 11:19 Arsen.Shnurkov . Предыдущая версия .
Отредактировано 03.03.2017 11:04 Arsen.Shnurkov . Предыдущая версия .
Отредактировано 03.03.2017 10:15 Arsen.Shnurkov . Предыдущая версия .
Отредактировано 03.03.2017 10:13 Arsen.Shnurkov . Предыдущая версия .
Отредактировано 03.03.2017 10:12 Arsen.Shnurkov . Предыдущая версия .
Отредактировано 03.03.2017 9:34 Arsen.Shnurkov . Предыдущая версия .
Отредактировано 03.03.2017 9:33 Arsen.Shnurkov . Предыдущая версия .
Отредактировано 03.03.2017 9:31 Arsen.Shnurkov . Предыдущая версия .
Отредактировано 03.03.2017 9:13 Arsen.Shnurkov . Предыдущая версия .
Отредактировано 03.03.2017 9:12 Arsen.Shnurkov . Предыдущая версия .
Отредактировано 03.03.2017 9:11 Arsen.Shnurkov . Предыдущая версия .
Отредактировано 03.03.2017 9:08 Arsen.Shnurkov . Предыдущая версия .
Отредактировано 03.03.2017 9:00 Arsen.Shnurkov . Предыдущая версия .
Отредактировано 03.03.2017 8:59 Arsen.Shnurkov . Предыдущая версия .
Отредактировано 03.03.2017 8:52 Arsen.Shnurkov . Предыдущая версия .
Отредактировано 03.03.2017 8:51 Arsen.Shnurkov . Предыдущая версия .
Отредактировано 03.03.2017 8:46 Arsen.Shnurkov . Предыдущая версия .
ebnf
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.