Ремесло программиста

Объявление

форум на движке phpBB доступен для тестирования
www.strategia.space
www.strategia.space/forum/
по предложению Лиса - канал на Matrix - #remdev:matrix.org

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

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


Вы здесь » Ремесло программиста » Валентина » Небольшая демонстрация синтаксического анализатора


Небольшая демонстрация синтаксического анализатора

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

1

Вот прикладываю, хочу замечаний. Смысл - я всегда придерживался идеи сменяемого синтаксиса (это один из компонентов будущего интерпретатора).  Реализация в виде небольшого теста (я на нем отлаживал лексический анализатор).  Что можно в этой игрушке - отлаживание своего собственного синтаксиса. Прикладываю архив, в нем 2 файла - один содержит синтаксис (правила описаны внутри этого файла, он текстовый), второй собственно сам анализатор.
Как работать:
1. Собрать свой синтаксис - заходим например в Блокноте, читаем, правим под себя. Предупреждаю сразу - питоновский стиль форматирования табуляцией не работает и не планируется. Мне не нравится такой стиль - я пробовал работать в Питоне, мне жутко не нравится искать пропущенный пробел/отступ.
2. Запустить программку
3. Загрузить синтаксис
4. Ввести в первом окошке текст для анализа
5. Выбрать действие (корявые кнопки сверху)
6. Получить результат во втором окошке
Программка

ID по умолчанию: -1 - не удалось распознать строку, -2 - пустая строка/нечего анализировать

2

utkin
Я ничегошеньки не понял.

3

Что именно из ничегошеньки непонятно?

4

Павиа написал(а):

Я ничегошеньки не понял.

А мне лень ставить wine чтобы запускать exe-шник. Даже если бы был ELF64, запускать виртуалку бы я поленился.

5

А мне лень ставить wine чтобы запускать exe-шник.

Какой линкус? Поставлю на виртуалке и дам программу

6

utkin написал(а):

Какой линкус? Поставлю на виртуалке и дам программу

Лучше делай онлайн-сервис с web-интерфейсом.

Но чисто для информации:
в  школах РФ - AltLinux
в бизнесе - Calculate Linux
в армии - ОС «Заря»
в правительстве - Astra Linux (самая засертифицированная)

у меня portage-based система (т.е. как в Calculate Linux)

7

Да, не это просто локальная штука пока что. Так для демонстрации и отладки.

8

ВежливыйЛис написал(а):

онлайн-сервис с web-интерфейсом.

Поддерживаю.
Сейчас нужно делать несколько разных сборок либо прикладывать исходники, "Несовместимо с тек. версией Windows".

P.S.:  от идеи переписать на C# отказались?

9

utkin
Текст надо делить на слова. Так как дальнейший анализ предполагает работу с словами. Если сразу поделить на слова, то  дальше будет проще. Разбор грамматик станет однотипным(унифицированным).
Идея с id не плоха, но лучше цифры заменить словами.

Переписать комментарии, так как читать не возможно.  Есть слова у них есть предлоги и связующие слова которые читатель готов увидеть.
Поправить кнопки привести к осмысленным названиям и добавить заголовок или инфографику.

10

Текст на слова делится. Задайте в tokens какие Вам слова надо.

Так как дальнейший анализ предполагает работу с словами.

Только в параметрах и то если они не текстовые константы.

Идея с id не плоха, но лучше цифры заменить словами.

Это не принципиально. Да и какими словами?

Поправить кнопки привести к осмысленным названиям и добавить заголовок или инфографику.

Учту на будущее.

P.S.:  от идеи переписать на C# отказались?

Да, на тот момент когда я хотел Mono был очень радужный, но сейчас оно как-то не очень. А я хочу кроссплатформенность.

11

Вот ! Не было бы мне скучно - не было бы у вас раздела про Валентину. А то "Лис придирается, Лис придирается!". Лис не придирается, Лис живо интересуется!

Отредактировано ВежливыйЛис (2017-07-11 21:06:12)

12

Вот ! Не было бы мне скучно - не было бы у вас раздела про Валентину. А то "Лис придирается, Лис придирается!". Лис не придирается, Лис живо интересуется!

Лично я Вас никогда не критиковал и наоборот предлагал некоторые Ваши идеи (например разделы сделать по манифесту) воплотить в жизнь :).


Вы здесь » Ремесло программиста » Валентина » Небольшая демонстрация синтаксического анализатора