digitalmars.D - aliasing main
- monkyyy (27/27) Jun 19 2024 recently I've been looking into creating dsl's via templates
recently I've been looking into creating dsl's via templates
... its not going well
however what does just werk^tm is aliasing main
```d
struct dsl{
string exe(string s){
return s;
}}
template repl(alias T){
pragma(mangle, "main")
int repl(){
import std;
T machine;
foreach(in_;stdin.byLineCopy){
if(in_=="quit")return 0;
if(in_=="vomit"){
machine.writeln;
} else {
machine.exe(in_).writeln;
}}
assert(0);
}}
alias main=repl!dsl;
```
I think some stuff is broken like exceptions, but maybe some
common patterns should be extracted out to make even smaller
programs
Jun 19 2024








monkyyy <crazymonkyyy gmail.com>