Unless I'm reading this wrong, Vely doesn't actually understand C, correct?<p>This means that all the diagnostics being emitted will be very confusing. When incorrect input is given, Vely doesn't produce the error message, gcc does, which makes it difficult to match the error message to what the user actually typed in.<p>I've used (and created many[1]) "embedded" languages, and this is the biggest problem with those that simply do pattern matching and replacement: the language the programmer is writing is unaware of errors and the programmer has determine what they did wrong by looking at the generated code.<p>It's not a big problem if the programmer understands this limitation; that the "language" is a macro language that blindly transforms input to output with no understanding of the input. If the programmer accepts this, it can be very useful.<p>[1] I just created a html preprocessor in bash this morning. It performs variable substitution using environment variables and runs the C preprocessor on the input, allowing #include directives, #ifdef, etc. It lets me write my HTML files in fragments that can conditionally include other HTML files, and it lets me put in variables in the HTML file that are substituted with values from the environment.<p>I've no doubt that this is a hacky solution, but<p>a) It took only an hour to write (thus far - there's some TODOs in there for stuff that might be useful in the future)<p>b) It was quicker than downloading and learning to use an existing tool that does the same thing, and ensuring that all that tools dependencies are brought in as well.