Skip to content
/ nicate Public

A library to make languages that can communicate with each other and C

License

Notifications You must be signed in to change notification settings

o11c/nicate

Repository files navigation

Nicate is a library to make languages that can communicate with each other and C.

It provides APIs at many levels, each suitable for different purposes.

C APIs:

  • grammar-based C construction and output
  • logical (but typeless) C construction and output
  • (planned) type-aware ast construction and output
  • parallel regex lexer stepping library
  • (low-level) push-based parser library
  • (limited) bnf-like parser so you can output something else instead of c89
  • (possible) other output modes (gccjit & llvm C APIs, via dlopen)
  • (possible) API emulation for gccjit & llvm C APIs

Python3 APIs:

  • logical C construction and output
  • limited bnf-like parser so you can output something else instead of c89
  • parallel regex lexer stepping library
  • low-level push-token -based parser library
  • high-level push-character -based parser/lexer combo

See hello.c and hello2.py for example client code.

For support, join #o11c on irc.freenode.net but you might also find like-minded people on #proglangdesign, ##parsers, and #compilers.

About

A library to make languages that can communicate with each other and C

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published