3 ms·
The logic can be implemented entirely in a parser written in a high level language. For example, //const int ZERO = '0'; const int ZERO = 0x30; in
by fluoridation 2y ago
The logic can be implemented entirely in a parser written in a high level language. For example,
//const int ZERO = '0';
const int ZERO = 0x30;
int convert(const char *s){
int ret = 0;
for (; *s; s++){
ret *= 10;
ret += *s - ZERO;
}
return ret;
}
After that you just dump the value to the output verbatim. Any high level language can handle this, it's just a change of representation like any other. There's no need to do any further delegation.
- fluoridation 2y agoReplying to myself because I can't edit the comment anymore. I think I see what you mean now. The parser for the language that compiles your parser also needs to know that "10" means 10, and that "0x30" means 48. I guess that also is knowledge that is passed down through compiler generations. I wonder if you could write a simple parser that doesn't contain a single numerical constant.