<feed xmlns='http://www.w3.org/2005/Atom'>
<title>assembler/src, branch v2.2.1</title>
<subtitle>Rust library for parsing assembly languages</subtitle>
<id>https://code.benbridle.com/assembler/atom?h=v2.2.1</id>
<link rel='self' href='https://code.benbridle.com/assembler/atom?h=v2.2.1'/>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/assembler/'/>
<updated>2025-03-24T21:59:30Z</updated>
<entry>
<title>Don't print original source in redefinition errors</title>
<updated>2025-03-24T21:59:30Z</updated>
<author>
<name>Ben Bridle</name>
<email>ben@derelict.engineering</email>
</author>
<published>2025-03-24T21:59:30Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/assembler/commit/?id=34ca33d86fd47ca912751bd8578e66f449639a7c'/>
<id>urn:sha1:34ca33d86fd47ca912751bd8578e66f449639a7c</id>
<content type='text'>
The source context of the original definition of a redefined symbol was
being printed when reporting a redefinition error. Since only the
source code containing the redefinition was available, if the original
definition was in a different file then the source context of the
original definition would just pull from this source code and the
context shown would be completely nonsensical.
</content>
</entry>
<entry>
<title>Update version to 2.2.0</title>
<updated>2025-03-17T23:03:59Z</updated>
<author>
<name>Ben Bridle</name>
<email>ben@derelict.engineering</email>
</author>
<published>2025-03-17T22:49:12Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/assembler/commit/?id=24080dd75092ea5ef8c10fd179aa28b8db534c7f'/>
<id>urn:sha1:24080dd75092ea5ef8c10fd179aa28b8db534c7f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Large restructure</title>
<updated>2025-03-17T22:50:29Z</updated>
<author>
<name>Ben Bridle</name>
<email>ben@derelict.engineering</email>
</author>
<published>2025-03-17T22:50:19Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/assembler/commit/?id=f8a694267d3981b0437c05fc248406116ea9ec06'/>
<id>urn:sha1:f8a694267d3981b0437c05fc248406116ea9ec06</id>
<content type='text'>
Files were moved to be better organised, error messages were changed to
be more general, and a Compiler type was added to the library.
</content>
</entry>
<entry>
<title>Fix Tokeniser::end_of_line method</title>
<updated>2025-03-16T22:44:29Z</updated>
<author>
<name>Ben Bridle</name>
<email>bridle.benjamin@gmail.com</email>
</author>
<published>2025-03-16T22:44:29Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/assembler/commit/?id=eb45fad24cf28035f526eda45cbd5fb2ff1c337d'/>
<id>urn:sha1:eb45fad24cf28035f526eda45cbd5fb2ff1c337d</id>
<content type='text'>
The method hadn't been changed since back when the chars field was a
stack of characters that were removed as they were consumed. The method
now works with the current design of the Tokeniser.
</content>
</entry>
<entry>
<title>Implement source chains</title>
<updated>2025-03-11T03:18:01Z</updated>
<author>
<name>Ben Bridle</name>
<email>ben@derelict.engineering</email>
</author>
<published>2025-03-11T03:18:01Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/assembler/commit/?id=a9e9dd452e23fa2e816df926a56c1f743eb32488'/>
<id>urn:sha1:a9e9dd452e23fa2e816df926a56c1f743eb32488</id>
<content type='text'>
A SourceSpan can now contain a child SourceSpan, ad infinitum, in order
to represent a chain of locations. The report_source_issue function
has been changed to print the entire chain, instead of just one
SourceSpan.

The report_source_issue function has also been changed to correctly
print SourceSpans that extend across multiple source lines.
</content>
</entry>
<entry>
<title>Prevent duplicate parent and child entries for source units</title>
<updated>2025-03-11T03:13:23Z</updated>
<author>
<name>Ben Bridle</name>
<email>ben@derelict.engineering</email>
</author>
<published>2025-03-11T03:13:23Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/assembler/commit/?id=bd7955cbc1c1746f37dcb0742603994fd2e04c90'/>
<id>urn:sha1:bd7955cbc1c1746f37dcb0742603994fd2e04c90</id>
<content type='text'>
The parent and child collections for hierarchical source units were
previously vecs, and would receive one entry for every symbol matched.
This was easily leading to many dozens of duplicate entries per unit,
which, while not impacting performance, seemed wasteful. The collection
types were changed to HashSets to prevent the collection of duplicate
entries.
</content>
</entry>
<entry>
<title>Make output of report_source_issue more concise</title>
<updated>2025-03-10T03:31:06Z</updated>
<author>
<name>Ben Bridle</name>
<email>ben@derelict.engineering</email>
</author>
<published>2025-03-10T03:31:06Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/assembler/commit/?id=6fb6f2836232fe78dce507fa899629bbefb7b449'/>
<id>urn:sha1:6fb6f2836232fe78dce507fa899629bbefb7b449</id>
<content type='text'>
Instead of displaying two locations for the same error, only show the
in_merged source location if there is no in_source location.
</content>
</entry>
<entry>
<title>Implement Borrow and BorrowMut for Tracked</title>
<updated>2025-03-09T05:20:06Z</updated>
<author>
<name>Ben Bridle</name>
<email>ben@derelict.engineering</email>
</author>
<published>2025-03-09T05:20:06Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/assembler/commit/?id=5e332adb606074da1976c8ce6e32b94ba222bc82'/>
<id>urn:sha1:5e332adb606074da1976c8ce6e32b94ba222bc82</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Make Tokeniser::eat_until even more general</title>
<updated>2025-03-08T03:48:33Z</updated>
<author>
<name>Ben Bridle</name>
<email>ben@derelict.engineering</email>
</author>
<published>2025-03-08T03:48:33Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/assembler/commit/?id=53dffaf3fe18f70151b23418ff80ae8904fae779'/>
<id>urn:sha1:53dffaf3fe18f70151b23418ff80ae8904fae779</id>
<content type='text'>
The eat_until method of Tokeniser has been renamed to track_until, and
it no longer consumes characters by itself. The predicate closure is no
longer limited to checking one character at a time, it can look ahead
for multi-character sequences when used with the new eat_if method.
</content>
</entry>
<entry>
<title>Add Tokeniser::eat_if method</title>
<updated>2025-03-08T03:46:18Z</updated>
<author>
<name>Ben Bridle</name>
<email>ben@derelict.engineering</email>
</author>
<published>2025-03-08T03:46:18Z</published>
<link rel='alternate' type='text/html' href='https://code.benbridle.com/assembler/commit/?id=e1dea1faf3e29655c008bf139d2a9acf3229df53'/>
<id>urn:sha1:e1dea1faf3e29655c008bf139d2a9acf3229df53</id>
<content type='text'>
This method is used for consuming a multi-character sequence only if
that sequence matches a passed string.
</content>
</entry>
</feed>
