Информация
- В рейтинге
- 619-й
- Откуда
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Дата рождения
- Зарегистрирован
- Активность
Специализация
Генеральный директор
Ведущий
От 3 000 000 ₽
Управление проектами
Ведение переговоров
Разработка ТЗ
Agile
Управление разработкой
Оптимизация бизнес-процессов
Организация бизнес-процессов
Построение команды
Стратегическое планирование
Развитие бизнеса
Что касается кода то тут нужно как-то аргументировать, а не подобно предыдущему оратору слепо утверждать его не понятность.
Код в точности реализует алгоритм разбора, описанный выше
F -> T|T&F|T^F
T* -> I|!I|!S
I -> (F)|S
S -> C|SC
C -> [a-Z_ а-Я-]
собственно согласно обозначением 4 функции имеют имена преобразований F,T,I,S (единственный аргумент S разъяснен в звездочке), а остальные вспомогательны имеют «говорящие» имена setError — ошибка парсинга (что тут коментировать если класс назван парсинг) getError — показать ошибку, isEnd — понец разбираемой строки (тоже нада было комментировать?), parce — разбор строк.
как видите я потратил время на то что бы показать, что на мой взгляд тут все достаточно понятно (и без всяких гуглов и без всяких «зато работает»), так что будьте более конкретны и пишите, что именно вам не понятно.
просто есть вещи которые чтобы понять нужно немного подумать, а для этого нужно захотеть понять. А у меня такое ощущение что вы ожидаете там увидить свой код и совершенно не можете читать чужой, если он не оправдывает ваши ожидания.
Кстати, если бы вы хотя бы вскользь прочитали, то поняли бы, что названия функций соответствуют терменируемым элементам словаря — что собственно они и делают.
а так отправная точка как всегда вики и вики учебники — там находятся все ключевые слова
кстати насчет валидации ошибаетесь. Если разрешить пользователю писать REGEXP думаю еще намучаетесь.
swfupload.googlecode.com
у меня репартеры на autopeople.ru загружают им видео ролики больших размеров (200 мб)