<feed xmlns='http://www.w3.org/2005/Atom'>
<title>antcc/c/lex.h, branch trunk</title>
<subtitle>A little C compiler</subtitle>
<id>https://git.lemon.rip/antcc/atom?h=trunk</id>
<link rel='self' href='https://git.lemon.rip/antcc/atom?h=trunk'/>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/'/>
<updated>2026-03-17T12:22:00+00:00</updated>
<entry>
<title>REFACTOR: move sources to src/</title>
<updated>2026-03-17T12:22:00+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-03-17T12:22:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=a8d6f8bf30c07edb775e56889f568ca20240bedf'/>
<id>urn:sha1:a8d6f8bf30c07edb775e56889f568ca20240bedf</id>
<content type='text'>
</content>
</entry>
<entry>
<title>cpp: fix token spacing (#2) (hopefully)</title>
<updated>2026-03-01T10:09:02+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-03-01T10:07:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=1ebf3669f92e7ea0cf9ef97e4d61ee24db2f0b6a'/>
<id>urn:sha1:1ebf3669f92e7ea0cf9ef97e4d61ee24db2f0b6a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>diagnostics: also print #include provenance for warnings</title>
<updated>2026-02-24T13:09:19+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2026-02-24T13:09:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=f73f0301fd2d4306f173984fc8089ad463da26fe'/>
<id>urn:sha1:f73f0301fd2d4306f173984fc8089ad463da26fe</id>
<content type='text'>
</content>
</entry>
<entry>
<title>c: keyword aliases</title>
<updated>2025-12-21T15:44:43+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2025-12-21T12:55:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=3e74de26d16780e626241e0c42313fcb37b91cf2'/>
<id>urn:sha1:3e74de26d16780e626241e0c42313fcb37b91cf2</id>
<content type='text'>
Some linux headers use __signed__ for whatever reason.. this is a
general fix for those alternate keyword
</content>
</entry>
<entry>
<title>lexer: note source of #include when error occurs in #included file</title>
<updated>2025-12-20T21:00:28+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2025-12-20T21:00:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=497289eb02927c75f6e77bba052bec2a4589c227'/>
<id>urn:sha1:497289eb02927c75f6e77bba052bec2a4589c227</id>
<content type='text'>
</content>
</entry>
<entry>
<title>optimize lexer a bit more</title>
<updated>2025-12-20T11:11:16+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2025-12-20T11:11:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=640d5e95560d3c9099a58e09a93831197b863a2b'/>
<id>urn:sha1:640d5e95560d3c9099a58e09a93831197b863a2b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>lexer: convert pp-idents to keywords only after preprocessing</title>
<updated>2025-12-20T10:05:46+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2025-12-20T10:05:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=059a9a0b01010298b7e45228cfb5ef4010bc22bc'/>
<id>urn:sha1:059a9a0b01010298b7e45228cfb5ef4010bc22bc</id>
<content type='text'>
</content>
</entry>
<entry>
<title>create distinct interned string type</title>
<updated>2025-12-15T21:39:52+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2025-12-15T21:39:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=302e24671942051d70707586cf8c605a5815edac'/>
<id>urn:sha1:302e24671942051d70707586cf8c605a5815edac</id>
<content type='text'>
Interned strings are used pervasively, so it's a good idea to add a
layer of type safety to differentiate them from general cstrs and avoid
potential bugs from comparing non-interned and interned strings. Not
that that's happened so far that I can remember, but it could.

I'm 90% sure it's legal to alias `struct {char c;}` pointers with `char`
pointers. This specific typedef gives type safety but with a simple
one-way `internstr -&gt; const char *` typecast (with `&amp;istr-&gt;c`).
Converting the other way around is more intentional: a straight up cast
`(internstr)cstr` which sticks out as unchecked and probably wrong, or
calling the intern(cstr) function, which is the right way.
</content>
</entry>
<entry>
<title>move intern() to mem.c</title>
<updated>2025-12-15T20:46:24+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2025-12-15T20:46:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=c6c0f2ef35175075e91169113cfe856f29b3eb9a'/>
<id>urn:sha1:c6c0f2ef35175075e91169113cfe856f29b3eb9a</id>
<content type='text'>
Being in lex.c was vestigial, since it was being used all over the
frontend and backend.
</content>
</entry>
<entry>
<title>lex: use pmap for macro lookup</title>
<updated>2025-12-12T09:21:43+00:00</updated>
<author>
<name>lemon</name>
<email>lsof@mailbox.org</email>
</author>
<published>2025-12-12T09:20:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lemon.rip/antcc/commit/?id=5f0793c34c4f10a2221b793316fdc82c50d10452'/>
<id>urn:sha1:5f0793c34c4f10a2221b793316fdc82c50d10452</id>
<content type='text'>
To reduce hashmap code repetition. Also add pmap_del for this purpose
</content>
</entry>
</feed>
