Простой парсер

Обсуждение проектов наших жителей.
Вы можете выставить проект на тест или найти помощников для его реализации.

Модератор: BV

uni
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 105
Зарегистрирован: 05.05.2006 (Пт) 15:24
Откуда: Екатеринбург

Простой парсер

Сообщение uni » 03.01.2011 (Пн) 20:15

Поскольку я так сказать новичок в VB6, то хотелось бы узнать у гуру, есть ли какой код наподобие того, что я привёл во вложении. Это пока черновик, который может вычислять простые арифметические действия, типа: ПЛЮС, МИНУС, УНАРНЫЙ МИНУС (Точка с запятой в конце обязательна! :)). Если кому будет интересно, то дам ссылку на svn репозиторий проекта.

Полная грамматика, которую я намерен реализовать, выглядит примерно так:
Код: Выделить всё
КОНЕЦ
ВЫВОД КОНЕЦ
Логика ВЫВОД КОНЕЦ
Логика ВЫВОД [ Логика ВЫВОД ] КОНЕЦ // [ ... ] - поддерживается одна и боле операций в строке
ИМЯ := Логика ВЫВОД [ ИМЯ:= Логика ВЫВОД ] КОНЕЦ

Логика:
  Логика ( < | > | <= | >= | = | <> ) СложВычит

СложВычит: // оператор+(), оператор-()
  СложВычит + УмножДелен
  СложВычит - УмножДелен

УмножДелен: // оператор*(), оператор/()
  УмножДелен / ВозвСтепень
  УмножДелен * ВозвСтепень

ВозвСтепень: // оператор^()
  ВозвСтепень ^ Факториал

Факториал: // ()!
  ОсновныеОпер!

Список: // оператор,()
  Логика
  Список , Логика

ОсновныеОпер:
  ЧИСЛО // десятичное число формата: n.nn[(E|e)(+|-)nn]
  ИМЯ // константа или переменная
  ИМЯ( Список ) // вызов функции
  - УмножДелен
  ( Логика ) // вот здесь нужна рекурсия
  [ Список ] // многомерный вектор


Это калькуляторная грамматика, которая поддерживает переменные. Цель же вообще, парсить конфигурационные файлы своей своей собственной грамматики. Когда в приложении становится много элементов данных, то наступает момент написания такой вещи, либо использования XML и подстраивания под этот формат. XML, к сожалению, умеет далеко не всё.

Если там кому надо, то можно и командный интерпретатор сделать с параметрами.

Вопросы:
- там нужно правильно вставить вызов исключительных ситуаций (они закомментированы), не знаю как это сделать в бейсике :)
- код портирован с Java2ME, потому общие конструкции прямо переделаны на бейсиковские, может быть что-то можно сделать проще и быстрее?

Пожелания, предложения? Код будет на русском, т.к. это мой код. Если перепишите на английский то же самое - это уже будет ваш код со всеми вытекающими.

Полный код парсера на яве есть в архиве: Parser.java. Как увидите, там всё то же самое.

П.С. Последнюю версию скачивайте из репозитория системы контроля версий SVN.
Обновления смотрите на svn: https://mysvn.ru/cop/Parser/ (это открытый доступ через http)
Анонимам свободный доступ на чтение (это вводить в TortoiseSVN в поле адреса): https://Anonymous@mysvn.ru/cop/Parser
Последний раз редактировалось uni 05.01.2011 (Ср) 14:52, всего редактировалось 1 раз.
Россия навсегда!
Сетрификаты

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Простой парсер

Сообщение Viper » 03.01.2011 (Пн) 20:28

И причем здесь этот раздел?
Весь мир матрица, а мы в нем потоки байтов!

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: Простой парсер

Сообщение FireFenix » 03.01.2011 (Пн) 20:40

uni писал(а):хотелось бы узнать у гуру, есть ли какой код наподобие того, что я привёл во вложении

Подобие этого, остальной функционал допиливается по принципу имеющегося
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

uni
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 105
Зарегистрирован: 05.05.2006 (Пт) 15:24
Откуда: Екатеринбург

Re: Простой парсер

Сообщение uni » 03.01.2011 (Пн) 20:58

FireFenix, спасибо, улыбнуло :) особенно про допиливание. Хакер оценит ;) когда сравнит подходы, а особенно возможности расширения, а ещё в особенности "понятность" кода.
Россия навсегда!
Сетрификаты

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Простой парсер

Сообщение alibek » 03.01.2011 (Пн) 21:32

Предупреждение.
В правилах подфорума написано, для чего он предназначен, а для чего не предназначен.
Переношу.
Lasciate ogni speranza, voi ch'entrate.

uni
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 105
Зарегистрирован: 05.05.2006 (Пт) 15:24
Откуда: Екатеринбург

Re: Простой парсер

Сообщение uni » 03.01.2011 (Пн) 21:39

Я не против. Я посмотрел ту тему и "допилил" свой вариант. Можете потестить на предмет этого:
Замеченные баги:
1. Выражение
(((((((((((((((((((((((((((((((((((1+1)))))))))))))))))))))))))))))))))))
оказалось неподъемным. Как показал эксперимент, одно вложение дает замедление в ~5 раз.
2. Не работает с отрицательными числами.
-2 + 3 = Type mismatch
3. Не преобразует выражение в постфикс, следовательно, алгоритм одноразовый и для пересчета с другим значением переменной нужно парсить все выражение заново.
4. Еще одно следствие из п. 3. Медленность и непригодность для построения графиков и, вообще, исследования функций.
5. Не предусмотрено деление на ноль.
Строка "1+2+3+4+5+...+5000" выполняется за ~4200 мс - это очень много (может на более мощной машине это займет меньше времени)


Добавлены операции: * \ ^ и работа со скобками. :) не знаю насколько это тема потянет для новичков, ну раз так...
Не забываем точку с запятой - это фича :) пока
У вас нет доступа для просмотра вложений в этом сообщении.
Россия навсегда!
Сетрификаты

uni
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 105
Зарегистрирован: 05.05.2006 (Пт) 15:24
Откуда: Екатеринбург

Re: Простой парсер

Сообщение uni » 03.01.2011 (Пн) 23:30

Если что, то обновления смотрите на svn: https://mysvn.ru/cop/Parser/
Анонимам свободный доступ на чтение (это вводить в TortoiseSVN в поле адреса): https://Anonymous@mysvn.ru/cop/Parser

Кстати, "Строка "1+2+3+4+5+...+5000"" у меня не выполняется вообще. На 256 элементе суммы стек переполняется. Засада.

Ой, не засада, это ограничение типа, переделал всё. Эта строка считается меньше чем за секунду :) Теперь все числа имеют тип Double.
Россия навсегда!
Сетрификаты

uni
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 105
Зарегистрирован: 05.05.2006 (Пт) 15:24
Откуда: Екатеринбург

Re: Простой парсер

Сообщение uni » 04.01.2011 (Вт) 2:36

Ха-ха... добавил полную поддержку отлова ошибок. Делов то...
П.С. Последние изменения смотрите в svn.
Россия навсегда!
Сетрификаты

uni
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 105
Зарегистрирован: 05.05.2006 (Пт) 15:24
Откуда: Екатеринбург

Re: Простой парсер

Сообщение uni » 04.01.2011 (Вт) 5:03

Добавил поддержу переменных. Пока приделываю фукнции, а на счёт матриц я, пожалуй, передумаю. Наверное тоже реализую.
П.С. Последние изменения смотрите в svn.
Россия навсегда!
Сетрификаты

uni
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 105
Зарегистрирован: 05.05.2006 (Пт) 15:24
Откуда: Екатеринбург

Re: Простой парсер

Сообщение uni » 04.01.2011 (Вт) 19:36

Добавлено:
- константы: pi, e
- внутренние функции: abs, arctg, cos, exp, ln, log, sign, sin, sqrt, tg
- работа с переменными, в т.ч. на русском языке [cp1251];
- более одной операции в строке, разделённые ';'

К переменным есть доступ извне. Можно использовать как построитель функций, т.к. быстро работает.
Что ещё сказать... смотрите сами:
Изображение

П.С. Исходники в репозитории (см. ссылку выше).
Россия навсегда!
Сетрификаты

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: Простой парсер

Сообщение arthur2 » 04.01.2011 (Вт) 20:30

Интересный проект :) Можно было бы положить и в кирпичи.
Только ссылки неудобные. Почему бы не класть последние версии на форум?
Артур
 
   

uni
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 105
Зарегистрирован: 05.05.2006 (Пт) 15:24
Откуда: Екатеринбург

Re: Простой парсер

Сообщение uni » 04.01.2011 (Вт) 20:40

Только ссылки неудобные. Почему бы не класть последние версии на форум?

Это стандартное расположение при коллективном проектировании. SVN (или система контроля версий) - это на сегодня типовая вещь для проекта любого уровня и любой сложности. Она упорядочивает работу с исходными файлами. На самом деле ЭТО и есть самый удобный способ выкладывания исходников, которым пользуются во всём мире.

Хакеру бы следовано в его топике про неандертальцев сделать по этому поводу запись: как работать с SVN. И вообще, не плохо бы иметь для этого форума свой репозиторий, где и хранить исходники всех проектов. По идее так и должно быть.

Нужно найти в инете и скачать: TortoiseSVN и сам svn тоже последних версий. TortoiseSVN - это оболочка для проводника, которая позволяет двумя-тремя кликами сделать у себя в папке рабочую копию любой ревизии любого проекта из сети. Причём, по умолчанию, загружается самая последняя ревизия. С помощью этой утилитки можно посмотреть КТО, КОГДА и КАКИЕ производил изменения, как вообще поддерживается проект и т.д. и т.п. Короче, must have...

Качайте, устанавливайте и наблюдайте за проектом цивилизованным способом. Это бесплатный хостинг, исходники там будут вечно.
Россия навсегда!
Сетрификаты

uni
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 105
Зарегистрирован: 05.05.2006 (Пт) 15:24
Откуда: Екатеринбург

Re: Простой парсер

Сообщение uni » 04.01.2011 (Вт) 21:49

Можно было бы положить и в кирпичи.

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

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Простой парсер

Сообщение Хакер » 04.01.2011 (Вт) 22:07

uni писал(а):Если же это внутрироссийский проект, то его вполне можно и даже нужно использовать именно в таком русифицированном виде


Фу, фу и ещё раз фу.

в английских буковках - они только затормозят прогресс в неокрепших умах наших юных дарований.

Фуэ.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: Простой парсер

Сообщение Debugger » 04.01.2011 (Вт) 22:14

Круто!
uni писал(а):Качайте, устанавливайте и наблюдайте за проектом цивилизованным способом.

Уже пользуюсь.
английских буковках - они только затормозят прогресс в неокрепших умах наших юных дарований.

Называть переменные и функции - дело стиля. От того, как ты их назовешь, зависит, прочитаешь ли ты завтра утром то, что написал сегодня вечером.

uni
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 105
Зарегистрирован: 05.05.2006 (Пт) 15:24
Откуда: Екатеринбург

Re: Простой парсер

Сообщение uni » 04.01.2011 (Вт) 22:17

Фу, фу и ещё раз фу

Аха-ха-ха :D Мне как раз нужно читать настроечные файлы для конфигуратора микропрограмм управления стиральными машинами. Я написал парсер для него. У меня друг знает только бейсик и попросил написать ему утилитку , чтобы потом мог сам поддерживать проект (потому-то я и засел за бейсик). Пользоваться этой утилиткой будут только внутри России, т.к. сами девайсы с русским интерфейсом и предназначены для внутреннего рынка. Посему я рискну и вставлю в проект мой парсер для чтения некоторых русифицированных настроек конфигуратора.

По правде сказать, ini файлы меня вполне устраивали, но с ними никакого расширения грамматики никогда не будет, а вот свой разборщик делает возможным написание сценариев со своей грамматикой для настройки своего оборудования.

Парсер этот даёт возможность творчества там, где обычные рамки ini, xml, json и т.п. уже тесны.

Хакер, вот ты скажи, по какому из проектов проще будет научиться тому как происходит разбор грамматики? По твоему 4-летней давности или моему тутошнему? Время как говорится рассудит ;)
Россия навсегда!
Сетрификаты

uni
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 105
Зарегистрирован: 05.05.2006 (Пт) 15:24
Откуда: Екатеринбург

Re: Простой парсер

Сообщение uni » 04.01.2011 (Вт) 22:23

Debugger, не забываем про обучательность. Я ещё не выкладывал доки и описание интерфейса для работы с интерпретатором. Прям скажем он слегка сложноват, но это сделано специально для будущих расширений (могу работу с матрицами приделать и комплексными числами, если кому надо). Поэтому что-то может измениться. Смысл в том, чтобы протрейсить как происходит разбор и вычисления, понять это и уже написать для себя то, что нужно.
Россия навсегда!
Сетрификаты

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Простой парсер

Сообщение Хакер » 04.01.2011 (Вт) 22:30

uni писал(а):Хакер, вот ты скажи, по какому из проектов проще будет научиться тому как происходит разбор грамматики? По твоему 4-летней давности или моему тутошнему? Время как говорится рассудит ;)


По примеру с комментариями на русском языке и идентификаторами на английском. И точка :|
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

uni
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 105
Зарегистрирован: 05.05.2006 (Пт) 15:24
Откуда: Екатеринбург

Re: Простой парсер

Сообщение uni » 04.01.2011 (Вт) 22:32

Хе-хе :) запятая. Алгоритмы не имеют национальности. Запята. Усваиваются лучше и проще на родном языке. Точека

Ах да, вопрос на засыпку: Хакер, а зачем современные компиляторы (почти все) имеют ключ компиляции -encode для задания кодировки исходных текстов? Мм? Юникода в том числе.
Россия навсегда!
Сетрификаты

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Простой парсер

Сообщение Хакер » 04.01.2011 (Вт) 22:38

uni, умерь пыл, а то меня это начинает раздражать. Нет смысл выделять каждое второе слово жирным, и главное, размещать кучу постов подряд.

Делаю тебе устное предупреждение об ответственности за неиспользование кнопки «Правка».
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: Простой парсер

Сообщение Debugger » 04.01.2011 (Вт) 22:44

Чтобы оставлять местноязычные комментарии.
Потому что теперь Юникод - почти "стандарт кодировки".
Запята.

Ты просто мало знаком с программированием.
Ты ищешь решение какой-нибудь узкой, но важной и сложной проблемы. Натыкаешься на немецкий код, а там функции названы как "Bearbeitung", "Vollendung" и прочее. Приятно?

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: Простой парсер

Сообщение arthur2 » 04.01.2011 (Вт) 22:49

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

Гораздо интереснее было бы обсудить сам алгоритм.

И TortoiseSVN - это конечно, хорошо (скачал, присматриваюсь), но всё-таки лучше выкладывай проект и здесь тоже. Иначе почти никто на твой код так и не посмотрит. А это обидно - код интересный :)
Артур
 
   

uni
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 105
Зарегистрирован: 05.05.2006 (Пт) 15:24
Откуда: Екатеринбург

Re: Простой парсер

Сообщение uni » 04.01.2011 (Вт) 22:58

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

В этом случае никакого немецкого или другого инопланетного кода быть не может, так же как в 1С его нет. Не надо быть такими консерваторами. Мыслите шире. Мне по работе приходилось не только видеть иностранный код, но и работать с ним. На заводе, где я работал автоматчиком, был немецкий, шведский, итальянский, английский код ;) (япоцы, слава Богу, писали на английском). Причём, считается нормальным, что мы должны всё это понимать и работать с этим. Автоматный код сам же является и комментарием, там очень большие отличия от ПК-шных языков.

Так вот, я отвлёкся, да для международного проекта нужен международный подход, но для внутреннего рынка (может быть Вы просто не знаете, что он существует, вот 1С об этом знают) такой подход совершенно не нужен. Даже наоборот он мешает, мешает пониманию при проектировании, реализации и сопровождении.

Внутренний рынок - такой существует. Я про него говорю, не забываем. Там люди следуют ГОСТам, СНиПам и прочим русифицированным документам, подобрать аналоги терминам из которых на другом языке, бывает очень трудной задачей и совершенно отпадающей (да вообще нафик не нужной и лишней) при программировании по-русски. Вот я про что.
Гораздо интереснее было бы обсудить сам алгоритм.
Ставим точку останова и шаг за шагом смотрим структуры. Постепенно будет прояснение и даже станет ясно как чего-нить добавить или убрать не нужно. А вообще, код написан по грамматике, которую я привёл выше. Она только чуть усечена пока.
И TortoiseSVN - это конечно, хорошо (скачал, присматриваюсь), но всё-таки лучше выкладывай проект и здесь тоже. Иначе почти никто на твой код так и не посмотрит. А это обидно - код интересный
Я промышленный программер, у нас просто так принято - всё хранить в svn'е. Привычка. Привью её и вам, т.к. она очень хорошая.

Ты просто мало знаком с программированием
Я, конечно, не местный гуру и всё такое прочее :) Степень моей осведомлённости о языках программирования можете лицезреть из кода. Вот ещё пример небольшого моего проекта: Mathcad EFI плагин и ещё Отладчик
Там тоже код в svn'е хранится, т.к. плагинописание там совместное: svn://smath.info/public
Посмотрите журнал ревизий, узнаете где мои плагины. Многие из них написаны при использовании русских идентификаторов. Никто против этого не возражал, а сам автор математической программы был совсем не против нахождения такого кода в своём репозитории. Так вот.
Россия навсегда!
Сетрификаты

NashRus
Постоялец
Постоялец
 
Сообщения: 388
Зарегистрирован: 18.03.2006 (Сб) 1:16

Re: Простой парсер

Сообщение NashRus » 05.01.2011 (Ср) 2:43

На самом деле есть такая тенденция к национализации идентификаторов.
Я раньше относился к ней скептически.
Но после того, как 10 лет назад вышел Dot.Net, в котором просто наплевали на мою венгерскую нотацию bBool и lLong, mb_Bool и ml_Long, я не стал так категоричен.
Там в НЕТ вообще не понятно где переменная, где функция, а где константа. Почему-то нет нотаций.
Когда пишу код на НЕТ, чувствую себя белой вороной.
Так что использование кирилических идентификаторов хоть как-то может отличить лексему от нетив лайбрари идентификаторов.
ГлавноеПоРусскиПисатьВРазныхРегистрах. Сам не использовал и пока не планирую, но отношусь вполне ровно.
А вот транслитерация прям режет глаза, уж лучше Lingvo или ОнлайнСловари.

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: Простой парсер

Сообщение FireFenix » 05.01.2011 (Ср) 2:54

NashRus писал(а):Там в НЕТ вообще не понятно где переменная, где функция, а где константа. Почему-то нет нотаций.
Когда пишу код на НЕТ, чувствую себя белой вороной.

Пичалька

uni писал(а):Так вот, я отвлёкся, да для международного проекта нужен международный подход, но для внутреннего рынка (может быть Вы просто не знаете, что он существует, вот 1С об этом знают) такой подход совершенно не нужен.

Фаршировать английские лексемы русскими обозначениями - конечно же очень сильно поднимает читабельность кода :D
Код: Выделить всё
    ElseIf ((строк >= 1) And (столбцов >= 1)) Then
        Set врм = New CInteger
        врм.IntegerValue = ТИП_МАТРИЦА
        тип.addElement (врм)   
    End If
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

uni
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 105
Зарегистрирован: 05.05.2006 (Пт) 15:24
Откуда: Екатеринбург

Re: Простой парсер

Сообщение uni » 05.01.2011 (Ср) 3:14

Ревизия 9. Переделал диагностику исключительных ситуаций напрочь.

FireFenix, там в коде я умышленно сделал английскую нотацию. Это ведь стандартный класс Vector. Я просто сделал его по аналогии, т.к. многим товарищам было бы привычно ожидать стандартные методы для этого стандартного класса. Это сделано для полной аналогии с кодом на яве. Там я использовал такой же класс. Чтобы портировать было легче. Да и вам тут класс Vector, думается, не помешает. Очень удобная штука. Буквально весь интерпретатор на нём и основан.

Да, мешанина не очень помогает, но смотрите в целом, а не участками. Я старался писать весь код в едином стиле. Это должно сразу броситься в глаза.
А краткость идентификаторов и нотации с сокращенными суффиксами/префиксами уже давно канула в лету, достаточно глянуть на .Net Framework и сразу всё станет ясно - будущее признали за длинными осмысленными идентификаторами.

А то, что тип не ясен - это из-за IDE. Думаю ни для кого не секрет, что среды так сильно "поумнели", что надобность в этом и отпала. Возьмите для интереса такую вещь как Netbeans. При работе с ней на J2ME я просто чувствовал себя в раю... как там всё продумано и удобно, ну просто слов нет. Надобности в специальной "типизации" идентификатора просто не ощущалась (её заменили цвета и шрифты).

Отладка в NetBeans 6.8 этого же интерпретатора, но на яве:
ИзображениеИзображение
Чтобы оставлять местноязычные комментарии.
Нет, Debugger, это не так. Видно из той же отладочной картинки :) Комменты - это одно, а зачем же отладочную информацию юникодировать полностью? Как видите при отладке я пользуюсь всеми возможностями юникода на полную катушку. Да и бейсик делает то же самое.
Последний раз редактировалось uni 05.01.2011 (Ср) 15:04, всего редактировалось 1 раз.
Россия навсегда!
Сетрификаты

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Простой парсер

Сообщение iGrok » 05.01.2011 (Ср) 14:51

И что, много кайфа переключаться между языками раз пять при наборе одной строки?
label:
cli
jmp label

uni
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 105
Зарегистрирован: 05.05.2006 (Пт) 15:24
Откуда: Екатеринбург

Re: Простой парсер

Сообщение uni » 05.01.2011 (Ср) 14:55

Я взвесил за и против и понял, что это такая мелочь по сравнению с результатом, что на неё даже не стоит обращать внимание. Среда разработки очень сильно помогает в написании кода, кроме того я владею слепой десятипальцевой печатью и для меня это не особая проблема.
Россия навсегда!
Сетрификаты

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Простой парсер

Сообщение Хакер » 05.01.2011 (Ср) 15:20

[Хакер] :: Перенесено в «Наши проекты».
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

uni
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 105
Зарегистрирован: 05.05.2006 (Пт) 15:24
Откуда: Екатеринбург

Re: Простой парсер

Сообщение uni » 05.01.2011 (Ср) 16:39

Думается, можно сделать небольшой промежуточный релиз.
Изображение
У вас нет доступа для просмотра вложений в этом сообщении.
Россия навсегда!
Сетрификаты

След.

Вернуться в Наши проекты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

    TopList