4 ms·
I'm facing this dilemma now with the Dogma metalanguage [1]. On the one hand, I want it to be small so that it can be picked up quickly and mastered easily (ver
by kstenerud 4y ago
I'm facing this dilemma now with the Dogma metalanguage [1]. On the one hand, I want it to be small so that it can be picked up quickly and mastered easily (very important since its primary use case is documentation). On the other hand, it needs enough power to actually be useful in the real world.
In the end I opted to avoid most conveniences since they can easily be built using a few common macros such as `u16(v) = ordered(uint(16,v))` and the like, except for cases where it would be just silly not to (like strings as syntactic sugar for concatenated codepoints, and regex-style repetition chars ? * + instead of {0|1} {0~} {1~}).
But even then the spec is over 2000 lines long (admittedly the examples take up a fair bit of room, though).
[1] https://github.com/kstenerud/dogma/blob/master/v1/dogma_v1.md https://github.com/kstenerud/dogma/blob/master/v1/dogma_v1.m...