self-host parser.scm