Skip to content

Rewrite

Latest
Compare
Choose a tag to compare
@eudoxia0 eudoxia0 released this 22 May 00:46
· 52 commits to master since this release

Main changes from v0.1:

External:

  • cmacro no longer sends code through the C preprocessor, which means #include tags are ignored. To include files with macro definitions, a new directive - cmacro_import - was introduced.
  • Rewriting the parser has produced significant performance gains.

Internal:

  • The flex lexer, separate lexer executable, and hand-written recursive-descent parser and macro definition parser have all been replaced with a parser generated by esrap. However, the Makefile's uninstall target still tries to delete the cmc-lexer executable, to bring old versions up to date.
  • Tokens now reside in a class hierarchy, rather than having a single token struct and have an explicit token-type field.