Decouple parser creation from input selection (#6533)
authorAndres Noetzli <andres.noetzli@gmail.com>
Fri, 14 May 2021 23:17:54 +0000 (16:17 -0700)
committerGitHub <noreply@github.com>
Fri, 14 May 2021 23:17:54 +0000 (23:17 +0000)
commitf1a65bef2675495f09603901a7166f20221b0449
treea1ee3c1dda6638beddf7e3509a052aa06398793c
parent2769173850f78749a870ed051a894317141594fc
Decouple parser creation from input selection (#6533)

This commit decouples the creation of a `Parser` instance from creating
an `Input` and setting the `Input` on the parser. This is a first step
in refactoring the parser infrastructure. A future PR will split the
parser class into three classes: `Parser`, `ParserState`, and
`InputParser`. The `Parser` and `InputParser` classes will be the
public-facing classes. The new `Parser` class will have methods to
create `InputParser`s from files, streams, and strings. `InputParser`s
will have methods to get commands/exprs from a given input. The
`ParserState` class will keep track of the state of the parser and will
be the internal interface for the parsers. The current `Parser` class is
used both publicly and internally, which is messy.
15 files changed:
src/main/driver_unified.cpp
src/main/interactive_shell.cpp
src/parser/cvc/cvc.h
src/parser/parser.cpp
src/parser/parser.h
src/parser/parser_builder.cpp
src/parser/parser_builder.h
src/parser/smt2/smt2.cpp
src/parser/smt2/smt2.h
src/parser/tptp/tptp.cpp
src/parser/tptp/tptp.h
test/api/ouroborous.cpp
test/api/smt2_compliance.cpp
test/unit/parser/parser_black.cpp
test/unit/parser/parser_builder_black.cpp