Re[5]: Создание модуля расширения для студии
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.02.12 15:22
Оценка:
Здравствуйте, Mumusan, Вы писали:

M>Мой скайп — stanislav.sidristyi


Что-то откликнулось сразу двое, но оба пропали не написав ни одной строчки кода.

У вас желание работать над проектом еще не пропало?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Создание утилиты тестирования для парсеров
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.02.12 15:23
Оценка:
Здравствуйте, para, Вы писали:

P>данный синтаксис рассчитан на то что в тестируемом парсере такие строки невозможны

P>иначе как их выцеплять из тетируемого файла?

Твой вопрос бы число из любопытства?

Нет желания заняться этим проектом?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Создание утилиты тестирования для парсеров
От: para  
Дата: 27.02.12 05:31
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Твой вопрос бы число из любопытства?


VD>Нет желания заняться этим проектом?


к сожалению сейчас совсем нету времени
хотел засесть поковырять вещи попроще но даже до них дело никак не доходит(
Re[6]: Создание модуля расширения для студии
От: Visor2004  
Дата: 27.02.12 09:44
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, Mumusan, Вы писали:


M>>Мой скайп — stanislav.sidristyi


VD>Что-то откликнулось сразу двое, но оба пропали не написав ни одной строчки кода.


VD>У вас желание работать над проектом еще не пропало?


нет не пропало, у меня выплыла внезапная рабочая поездка , я еще неделю-две буду в отъезде. С моей стороны все в силе.
Помните!!! ваш говнокод кому-то предстоит разгребать.
Re[2]: Общие вопросы по теме в целом
От: CodingUnit Россия  
Дата: 28.02.12 05:54
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здесь можно задавать общие вопросы не относящиеся к перечисленным проектам. В том числе и по самому N2.


Где репо, куда заносятся изменения Н2 и генерируемые парсеры?
Re[3]: Общие вопросы по теме в целом
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.02.12 17:49
Оценка:
CU>Где репо, куда заносятся изменения Н2 и генерируемые парсеры?

Оригинал пока здесь: https://github.com/rampelstinskin/ParserGenerator
Но прямой доступ в него закрыт.

Для совместной работы создан форк: https://github.com/rsdn/ParserGenerator
В нем права у всех членов Немерле-команды, т.е. и у тебя.

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

Ну, а если хочется просто посмотреть, то можно и оригинал клонировать (в рейд-онли-режиме).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Создание модуля расширения для студии
От: Mumusan  
Дата: 28.02.12 19:16
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, Mumusan, Вы писали:


M>>Мой скайп — stanislav.sidristyi


VD>Что-то откликнулось сразу двое, но оба пропали не написав ни одной строчки кода.


VD>У вас желание работать над проектом еще не пропало?


С моей тоже в силе. Поскольку в Немерле недавно, просматриваю все что есть и вникаю в детали реализации.
Re[7]: Создание модуля расширения для студии
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.02.12 22:03
Оценка:
Здравствуйте, Mumusan, Вы писали:

M>С моей тоже в силе. Поскольку в Немерле недавно, просматриваю все что есть и вникаю в детали реализации.


В детали реализации чего?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: Создание модуля расширения для студии
От: Mumusan  
Дата: 29.02.12 05:59
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, Mumusan, Вы писали:


M>>С моей тоже в силе. Поскольку в Немерле недавно, просматриваю все что есть и вникаю в детали реализации.


VD>В детали реализации чего?


Компилятора, опыта конкретно с немерлом не так много, надо натренировать глаз что-ли, чтобы в одном стиле писать. Можно вас попросить по началу дать первые пару заданий для разгона, а дальше я сам Теряюсь
Re[2]: Создание грамматики N1 для нового генератора парсеров
От: CodingUnit Россия  
Дата: 29.02.12 08:55
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Цель этого проекта с эмулировать парсер N1 и его макросов, так чтобы обкатать возможности генератора парсеров, протестировать скорость, качество сообщений об ошибках и т.п.


VD>Особенностями данного парсера будут:

VD>1. Динамически-расширяемая грамматика (часть правил будет загружаться из внешних модулей).
VD>2. Отсутствие ключевых слов. По возможности парсер должен использовать "контекстно-зависимые ключевые слова". Сейчас в Nemerle 1.х контекстно-зависимыми являются только ключевые слова get, set, add, remove и type.

Каков статус парсера для грамматики Н1 и что конкретно, нужно сделать, где взять документацию по ParserGenerator (peg)?
Re[9]: Создание модуля расширения для студии
От: VladD2 Российская Империя www.nemerle.org
Дата: 29.02.12 18:21
Оценка:
Здравствуйте, Mumusan, Вы писали:

M>Компилятора, опыта конкретно с немерлом не так много, надо натренировать глаз что-ли, чтобы в одном стиле писать.


Рассматривать кучу кода совершенно бесмысленно. Понять код можно только работая над ним. И это долгий процесс.

По сему нужно просто взять и начать что-то делать.

M>Можно вас попросить по началу дать первые пару заданий для разгона, а дальше я сам :) Теряюсь :)


Ну, вот первая задача которую нужно сделать — это создать проект расширения к студии и в нем расширение редатора кода.

Но для начала нужно понять готово ли рабочее пространство.

Для работы у тебя должно быть следующее:
1. Установлены: GitExtentions (и налажен экаунт гитхаба), VS 2010 и SP1 к ней, VS SDK для VS 2010 с SP1.
2. Исходники Nemerle клонированы с репозитория на github.com или его форка.
3. Собраны из исходников компилятор и Интеграция Nemerle c МЫ 2010. Сборку нужно производить с помощью батника DevBuildQuick-4.cmd.
4. Клонирован репозиторий https://github.com/rsdn/ParserGenerator.

Из этого все сделано?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Создание грамматики N1 для нового генератора парсеров
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.03.12 02:22
Оценка:
Здравствуйте, CodingUnit, Вы писали:

CU>Каков статус парсера для грамматики Н1


Написано пара верхних правил. Грузятся расширения по юсингам. Короче, зачаточное состояние.

CU>и что конкретно, нужно сделать,


Написать всю оставшуюся грамматику и тесты к ней. Для синтаксических макросов нужны только грамматики. Сами макросы не нужны.

Задача — прасить корректные файлы Н1.

CU>где взять документацию по ParserGenerator (peg)?


Из примеров и наших рассказов. Мне хватило 10 минут.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Создание грамматики N1 для нового генератора парсеров
От: CodingUnit Россия  
Дата: 01.03.12 06:25
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Написать всю оставшуюся грамматику и тесты к ней. Для синтаксических макросов нужны только грамматики. Сами макросы не нужны.


VD>Задача — прасить корректные файлы Н1.


Какое АСТ надо получить, такое же как сейчас, или надо получить иное дерево?

VD>Из примеров и наших рассказов. Мне хватило 10 минут.


Peg который лежит у нас я использовал и вроде разобрался, что там с динамическим подключением, на каком синтаксисе остановились? Н1 можно разобрать обычным статическим методом парсинга в АСТ, нужно здесь использовать доп. функции типа динамической грамматики и как он будет встраиваться в остальную инфраструктуру компилятора, какой интерфейс этот модуль должен иметь?
Re[5]: Создание грамматики N1 для нового генератора парсеров
От: VladD2 Российская Империя www.nemerle.org
Дата: 01.03.12 17:13
Оценка:
Здравствуйте, CodingUnit, Вы писали:

CU>Какое АСТ надо получить, такое же как сейчас, или надо получить иное дерево?


Ты другого не получишь. Вольфхаунд выкинул ручное создание АСТ. Теперь оно формируется исключительно по правилам.

Общую грамматику можно брать из моей статьи
Автор: Чистяков Владислав Юрьевич
Дата: 20.02.12
. Ну, а детали уже по скайпу или здесь выяснять.

VD>>Из примеров и наших рассказов. Мне хватило 10 минут.


CU>Peg который лежит у нас я использовал и вроде разобрался,


В новом парсере не так много изменений. Убран "/". Правила поделены на лексические и остальные. В лексических строится ДКА. В остальных проименяется гибрид алгоритмов TDOP и PEG. Это выражается в следующим:
1. В лексерных правилах можно использовать "|" для указания альтернатив. Альтернативы не имеют приоритетов (пофигу в каком порядке их задавать).
2. Для описания альтернатив в обычных (не лексических) правилах нужно использовать точки расширения. Для этого одно правило (расширяемое) описывается без тела, а его расширения описываются по принципу:
РасширяеющееПравило is РасширяемоеПравило = грамматика без "/" и "|".

3. При описании грамматики внутри раширяющих правил можно использовать силу связвания. Это нужно при описании операторов. По сути приоритет и ассоциативность задаются силой связывания указываемой при рекурсивных обращениях к расширяемому правилу.
4. АСТ задается в виде тега Ast() и описания имен параметров в нем.

Далее все легко освоить по примерам:
Базовая грамматика.
Расширяющая грамматика.
Пример использования силы связывания.

CU>что там с динамическим подключением, на каком синтаксисе остановились?


Как в Н1 — using-ом. Это код уже написан. Вот код загрузки внешних парсеров. А вот подключения грамматики по using-у. Он пока не рассчитан на одноименные расширения, но это легко поправить.

CU> Н1 можно разобрать обычным статическим методом парсинга в АСТ, нужно здесь использовать доп. функции типа динамической грамматики и как он будет встраиваться в остальную инфраструктуру компилятора, какой интерфейс этот модуль должен иметь?


Как я уже сказал динамическая загрузка грамматик уже сделана и работает. В последствии можно будет сделать несколько расширяющих грамматик. Но пока достаточно использовать ту что находится в проекте N2ParserExtensions. Вот в нем и в проекте базового парсера N2Parser и надо добавлять правила.

Обработчиков писать не надо (да и нельзя). Нужно просто описывать правила и АСТ к нему.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.