Skip to content

Add an option to reject/log Smtlib inputs with illegal commands#630

Draft
daniel-raffler wants to merge 9 commits into
masterfrom
exhaustiveTokenizer
Draft

Add an option to reject/log Smtlib inputs with illegal commands#630
daniel-raffler wants to merge 9 commits into
masterfrom
exhaustiveTokenizer

Conversation

@daniel-raffler
Copy link
Copy Markdown
Contributor

Hello,

this PR extends the Tokenizer to recognize all commands from the SMTLIB standard. We also add a configuration option parser.illegalInput to let the user decide how to handle illegal commands. Currently, we simply skip over unrecognized/uninteresting commands while parsing. This can hide potential bugs or lead to confusing error messages. With the new option, skipping is still the default behavior. However, it's also possible to log illegal commands or abort the parse entirely by setting the option to a different value

The idea is to eventually make the Tokenizer strict and always throw an exception. However, we may still have to add more non-standard commands first

# Conflicts:
#	src/org/sosy_lab/java_smt/SolverContextFactory.java
#	src/org/sosy_lab/java_smt/solvers/yices2/Yices2FormulaManager.java
#	src/org/sosy_lab/java_smt/solvers/yices2/Yices2SolverContext.java
@daniel-raffler
Copy link
Copy Markdown
Contributor Author

@baierd Should I still split up the option for parsing/dumping? Or is this fine with you?

@baierd
Copy link
Copy Markdown
Contributor

baierd commented Apr 29, 2026

I generally agree with the idea of this PR (adding an option that configures the parser), but i think we should combine this with #621, as the other PR provides an approach that can handle all situations.

Note: i think dumping also should have an option in theory, but in practice this is currently not really needed. At least as far as i know. Should be have cases in which we need output that strictly conforms to SMTLIB2s definition, then we should of course do it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

2 participants