2025-06-01 18:51:57 -04:00
2025-06-14 00:00:35 -04:00
2025-06-14 01:28:27 -04:00

WATL Exercise

An exercise on making the simplest useful parser with different languages or conventions.

The C code conveys a convention for doing C I've synthesized after studying how several people in the "handmade" community have written their exposed libraries or codebases.

The goal of the exercise is always the following:

start:
    file_contents := file.read_contents(self.source)
    tokens        := watl.lex(file_contents)
    str_cache     := str.cache.init()
    lines         := watl.parse(tokens)
    listing       := watl.dump_listing(lines)
    file.write_str(str.fmt("<name>.listing.source", self.source.name))
end

TODOs

  • [] Multi-threaded C example
  • [] Add basic timing benchmark to C examples
  • [] Add profiling support C examples
  • [] Make C++ examples
  • [] Add basic timing benchmark to C++ examples
  • [] Add profiling support C++ examples
  • [] Make Odin examples
  • [] Add basic timing benchmark to Odin examples
  • [] Add profiling support Odin examples
Description
An exercise on making the simplest useful parser with different languages or conventions.
Readme 5.1 MiB
Languages
C 92.9%
Odin 6.1%
PowerShell 1%