[Nitra] Динамический токен используя регулярное вырожение
От: hmemcpy Израиль http://hmemcpy.com
Дата: 29.11.14 19:37
Оценка: 3 (1)
Здравствуйте!

(первый пост, не бейте сильно

Совсем недавно, некий Mark Rendle (автор фреймворка Simple.Data) проводил шуточный доклад на конференции Build Stuff в Вильнюсе с названием The Worst Programming Language Ever (слайды можно скачать сдесь). В докладе Марк решил взять самые ужасные особенности из разных языков, и сделать из них новый язык под названием BS. Как и моного других шуток, BS быстро стал мемом и для него уже зарегистрировали домен и создали репо в гитхабе

Параллельно, появилась замечательная статья Getting Started with Nitra, которая подробно описывает написание парсера под язык HLSL.

И вот тут я решил что пора попробовать совместить приятное с полезным, и я решил попробовать написать парсер на язык BS с Нитрой.

Одна из особенностей языка BS это #define, позволяющий с промощью регвыров переопределить декларацию класса. То есть вместо:

class Foo:
   ...


можно сделать:

#define /^my (.*?) thing:$/class \1:/

my Foo thing:


Внимание вопрос!

Возможно ли Нитрой сделать что-то подобное? Можно ли описать такое синтаксом Нитры, или нужно использовать препроцессор?

Свой эксперимент вылажил сдесь: https://github.com/BSLang/NBS

К сожалению не силен в мире написаний парсеров, так что извините если глупый вопрос

Спасибо!
nitra
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.