Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Флейм (http://www.flasher.ru/forum/forumdisplay.php?f=53)
-   -   Представить пермутации через БНФ (http://www.flasher.ru/forum/showthread.php?t=159041)

wvxvw 26.06.2011 17:13

Представить пермутации через БНФ
 
Ниже - набор правил, по которым у меня есть 3 вопроса:
- является ли представленная схема правильным представлением пермутаций флагов регулярного выражения в AS3 (т.е. для любых правильных флагов эта схема даст правильный результат и для любых неправильных флагов эта схема даст неправильный результат)?
- является ли данная схема оптимальной (в том смысле, что а можно ли было ее предстaвить меньшим количеством правил)?
- не является ли данная схема избыточной (тут мне кажется, что является, но думалка устала :)), в том смысле, что в ней существуют два правила которые могут описать одно и то же выражение?
Ну, кому нечем заняться на близжайший час :)
Код:

/**
* RegexpValue -> '/' RegexpCharacters '/' RegexpOptions
*            | '/' RegexpCharacters '/'
* -----------------------------------------------------------------------------
* RegexpOptions -> 'i' NotI
*              |  'x' NotX
*              |  'm' NotM
*              |  'g' NotG
*              |  's' NotS
* -----------------------------------------------------------------------------
* NotI -> 'x' NotXI : NotX -> 'i' NotXI : NotM -> 'i' NotMI :
*      |  'm' NotMI :      |  'm' NotMX :      |  'x' NotMX :
*      |  'g' NotGI :      |  'g' NotGX :      |  'g' NotGM :
*      |  's' NotSI :      |  's' NotSX :      |  's' NotSM :
*      |  e        :      |  e        :      |  e        :
* .............................................................................
* NotG -> 'i' NotGI : NotS -> 'i' NotSI :
*      |  'x' NotGX :      |  'x' NotSX :
*      |  'm' NotSM :      |  'm' NotSM :
*      |  's' NotSG :      |  'g' NotSG :
*      |  e        :      |  e        :
* -----------------------------------------------------------------------------
* NotXI -> 'm' NotXIM : NotMI -> 'x' NotXIM : NotGI -> 'x' NotGIX :
*      |  'g' NotGIX :      |  'g' NotGIM :      |  's' NotGIS :
*      |  's' NotSIX :      |  's' NotSIM :      |  'm' NotGIM :
*      |  e          :      |  e          :      |  e          :
* .............................................................................
* NotSI -> 'x' NotSIX : NotMX -> 'i' NotXIM : NotGX -> 'i' NotGIX :
*      |  'g' NotGIS :      |  'g' NotGXM :      |  'm' NotGXM :
*      |  'm' NotSIM :      |  's' NotSXM :      |  's' NotGXS :
*      |  e          :      |  e          :      |  e          :
* .............................................................................
* NotSX -> 'i' NotSIX : NotGM -> 'i' NotGIM : NotSM -> 'i' NotSIM :
*      |  'm' NotSXM :      |  'x' NotGXM :      |  'x' NotSXM :
*      |  'g' NotGXS :      |  's' NotSGM :      |  'g' NotSGM :
*      |  e          :      |  e          :      |  e          :
* .............................................................................
* NotSG -> 'i' NotGIS :
*      |  'm' NotSGM :
*      |  'x' NotGXS :
*      |  e          :
* -----------------------------------------------------------------------------
* NotXIM -> 'g' 's' : NotGIX -> 'm' 's' : NotSIX -> 'g' 'm' : NotGIM -> 's' 'x'
*        |  's' 'g' :        |  's' 'm' :        |  'm' 'g' :        |  'x' 's'
*        |  'g'    :        |  'm'    :        |  'g'    :        |  's'
*        |  's'    :        |  's'    :        |  'm'    :        |  'x'
*        |  e      :        |  e      :        |  e      :        |  e
* .............................................................................
* NotSIM -> 'g' 'x' : NotGIS -> 'm' 'x' : NotGXM -> 's' 'i' : NotSXM -> 'g' 'i'
*        |  'x' 'g' :        |  'x' 'm' :        |  'i' 's' :        |  'i' 'g'
*        |  'g'    :        |  'm'    :        |  's'    :        |  'g'
*        |  'x'    :        |  'x'    :        |  'i'    :        |  'i'
*        |  e      :        |  e      :        |  e      :        |  e
* .............................................................................
* NotGXS -> 'i' 'm' : NotSGM -> 'i' 'x' :
*        |  'm' 'i' :        |  'x' 'i' :
*        |  'i'    :        |  'i'    :
*        |  'm'    :        |  'x'    :
*        |  e      :        |  e      :
* -----------------------------------------------------------------------------
*/
public function parseRegExp(input:String, tree:INode, stack:Stack):String
{

}

А, да, е - пустое множество.


Часовой пояс GMT +4, время: 11:58.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.