Здравствуйте!
(первый пост, не бейте сильно
Совсем недавно, некий 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
К сожалению не силен в мире написаний парсеров, так что извините если глупый вопрос
Спасибо!
Здравствуйте, hmemcpy, Вы писали:
H> В докладе Марк решил взять самые ужасные особенности из разных языков, и сделать из них новый язык под названием BS.
Хоспыдя, прям консилиум оригиналов! Сделан же уже, называется PHP.
Безобразнее похапэхи только жабоскрипт и замыкает тройку днищ — сипипи.
Здравствуйте, btn1, Вы писали:
B>Хоспыдя, прям консилиум оригиналов! Сделан же уже, называется PHP.
Он вроде PHP как первый пример привел, рекурсивно
P HP
H ates
P rogrammers