Skip to content

Use a simple newtype wrapper to simplify literal bookkeeping in parsers#1

Merged
Modertool999 merged 2 commits into
mainfrom
literals-struct
Jun 30, 2026
Merged

Use a simple newtype wrapper to simplify literal bookkeeping in parsers#1
Modertool999 merged 2 commits into
mainfrom
literals-struct

Conversation

@sampsyo

@sampsyo sampsyo commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

The idea here is to simplify some of the handling of AIGER literals when doing the parsing.

@Modertool999, please take a look at the commit messages for both of the commits below and let me know what you think!

To make the common logic between the ASCII and binary parsers a little
more obvious/readable, I have tried to wrap the `HashMap` for keeping
track of AIGER literals in a little utility. In general, this kind of
thing (where we make a special newtype struct and add methods on it) can
be a nice way to organize code so it's obvious what a given data
structure is "meant to be used for."
Previously, the hash table here would sometimes contain negated literals
and sometimes not. Now, we always avoid storing the negated literal;
`add`ing either the positive or negative version of a literal suffices
to create a mapping for both. This entails a bit more work on the
insertion side, but it makes the lookup side simpler.
@Modertool999 Modertool999 merged commit 0fdf8a9 into main Jun 30, 2026
1 check passed
@sampsyo sampsyo deleted the literals-struct branch July 1, 2026 17:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants