<feed xmlns='http://www.w3.org/2005/Atom'>
<title>itmo/crisp/compiler/src/ast/parser.rs, branch dev-easy</title>
<subtitle>Crispy Lisp Virtual Machine in Rust</subtitle>
<id>http://git.igorek.dev/itmo/crisp/atom?h=dev-easy</id>
<link rel='self' href='http://git.igorek.dev/itmo/crisp/atom?h=dev-easy'/>
<link rel='alternate' type='text/html' href='http://git.igorek.dev/itmo/crisp/'/>
<updated>2026-05-22T18:22:25Z</updated>
<entry>
<title>Implement If expression support</title>
<updated>2026-05-22T18:22:25Z</updated>
<author>
<name>Tolmachev Igor</name>
<email>me@igorek.dev</email>
</author>
<published>2026-05-22T18:22:25Z</published>
<link rel='alternate' type='text/html' href='http://git.igorek.dev/itmo/crisp/commit/?id=662bc1d55d9fecf173e873b5d00e95fd7635e73d'/>
<id>urn:sha1:662bc1d55d9fecf173e873b5d00e95fd7635e73d</id>
<content type='text'>
I forgor
</content>
</entry>
<entry>
<title>Replace generic list AST with typed expression tree</title>
<updated>2026-05-11T05:34:22Z</updated>
<author>
<name>Tolmachev Igor</name>
<email>me@igorek.dev</email>
</author>
<published>2026-05-11T05:34:22Z</published>
<link rel='alternate' type='text/html' href='http://git.igorek.dev/itmo/crisp/commit/?id=abda8d00117072f7c03f57eaeca9cf44427078dc'/>
<id>urn:sha1:abda8d00117072f7c03f57eaeca9cf44427078dc</id>
<content type='text'>
Each form (fn, let, for, set, do, call) now has its own variant with named fields instead of being a
plain list.
</content>
</entry>
<entry>
<title>Rename variable</title>
<updated>2026-05-10T13:34:29Z</updated>
<author>
<name>Tolmachev Igor</name>
<email>me@igorek.dev</email>
</author>
<published>2026-05-10T13:34:29Z</published>
<link rel='alternate' type='text/html' href='http://git.igorek.dev/itmo/crisp/commit/?id=7163aaebc993591db1cb4d7ae2be31669a0cb9a7'/>
<id>urn:sha1:7163aaebc993591db1cb4d7ae2be31669a0cb9a7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove Float from parser</title>
<updated>2026-05-10T09:54:41Z</updated>
<author>
<name>Tolmachev Igor</name>
<email>me@igorek.dev</email>
</author>
<published>2026-05-10T09:54:41Z</published>
<link rel='alternate' type='text/html' href='http://git.igorek.dev/itmo/crisp/commit/?id=843242e692280d604b74324ba26ead6158223439'/>
<id>urn:sha1:843242e692280d604b74324ba26ead6158223439</id>
<content type='text'>
Dropped to make the language simpler.
</content>
</entry>
<entry>
<title>Remove Quote from parser</title>
<updated>2026-05-10T09:47:37Z</updated>
<author>
<name>Tolmachev Igor</name>
<email>me@igorek.dev</email>
</author>
<published>2026-05-10T09:47:18Z</published>
<link rel='alternate' type='text/html' href='http://git.igorek.dev/itmo/crisp/commit/?id=1801afdbd0058cc9cc040b977de0d5652d65aab9'/>
<id>urn:sha1:1801afdbd0058cc9cc040b977de0d5652d65aab9</id>
<content type='text'>
Dropped to make the language simpler.
</content>
</entry>
<entry>
<title>Make project structure more consistent</title>
<updated>2026-05-09T17:47:04Z</updated>
<author>
<name>Tolmachev Igor</name>
<email>me@igorek.dev</email>
</author>
<published>2026-05-09T17:47:04Z</published>
<link rel='alternate' type='text/html' href='http://git.igorek.dev/itmo/crisp/commit/?id=160b64427d79290a59ac48c9babca064232d8dfd'/>
<id>urn:sha1:160b64427d79290a59ac48c9babca064232d8dfd</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Implement fmt::Display for Error</title>
<updated>2026-05-09T16:04:46Z</updated>
<author>
<name>Tolmachev Igor</name>
<email>me@igorek.dev</email>
</author>
<published>2026-05-09T16:04:27Z</published>
<link rel='alternate' type='text/html' href='http://git.igorek.dev/itmo/crisp/commit/?id=6be28381d6081dfb3a1dc9d1ec15062b67ba1ef9'/>
<id>urn:sha1:6be28381d6081dfb3a1dc9d1ec15062b67ba1ef9</id>
<content type='text'>
Replaces the todo!() stub. InvalidFloatLiteral and InvalidIntegerLiteral now also take the original
string.
</content>
</entry>
<entry>
<title>Add parser tests</title>
<updated>2026-05-09T15:42:04Z</updated>
<author>
<name>Tolmachev Igor</name>
<email>me@igorek.dev</email>
</author>
<published>2026-05-09T15:39:11Z</published>
<link rel='alternate' type='text/html' href='http://git.igorek.dev/itmo/crisp/commit/?id=6c5c627dd441b0e7ac52cfd05e1923584dd213ae'/>
<id>urn:sha1:6c5c627dd441b0e7ac52cfd05e1923584dd213ae</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add RecursionLimit parser error</title>
<updated>2026-05-09T15:06:25Z</updated>
<author>
<name>Tolmachev Igor</name>
<email>me@igorek.dev</email>
</author>
<published>2026-05-09T15:06:25Z</published>
<link rel='alternate' type='text/html' href='http://git.igorek.dev/itmo/crisp/commit/?id=c628391e10c6db7ca8b979e20d5b09ac92251c96'/>
<id>urn:sha1:c628391e10c6db7ca8b979e20d5b09ac92251c96</id>
<content type='text'>
Returns error after 256 levels of nesting to avoid stack overflow. The limit is hardcoded now, but
will become a compiler flag later.
</content>
</entry>
<entry>
<title>Reserve inf, +inf, -inf, nan as keywords</title>
<updated>2026-05-09T14:54:48Z</updated>
<author>
<name>Tolmachev Igor</name>
<email>me@igorek.dev</email>
</author>
<published>2026-05-09T14:54:48Z</published>
<link rel='alternate' type='text/html' href='http://git.igorek.dev/itmo/crisp/commit/?id=bf89132011e906384591bc85dead16d64a150a02'/>
<id>urn:sha1:bf89132011e906384591bc85dead16d64a150a02</id>
<content type='text'>
Needed to represent literals as f64::INFINITY, f64::NEG_INFINITY and f64::NAN.
</content>
</entry>
</feed>
