Refactor operator applications in the parser (#3831)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Thu, 27 Feb 2020 23:06:02 +0000 (17:06 -0600)
committerGitHub <noreply@github.com>
Thu, 27 Feb 2020 23:06:02 +0000 (17:06 -0600)
commit5c844f064cf6394030918c32f42d0764703b9786
tree009be2796a9c1236c23f569c0c744b446d52e622
parentcc9a1b02cb8b1920c2a16825b3ff58acdef4dce8
Refactor operator applications in the parser (#3831)

This PR refactors how a term is constructed based on information regarding an operator (ParseOp) and its arguments. It also makes a few miscellaneous fixes. This includes:

Indexed ops are carried in ParseOp via api::Op not Expr,
getKindForFunction is limited to "APPLY" kinds from the new API,
The TPTP/SMT2 parsers rely on mkTermInternal for handling associativity.
TPTP should use DIVISION not DIVISION_TOTAL.
This is in preparation for parser migration. These are the essential behavioral changes required for using the new API for the majority of the parser.
src/parser/cvc/Cvc.g
src/parser/parser.cpp
src/parser/smt2/Smt2.g
src/parser/smt2/smt2.cpp
src/parser/tptp/Tptp.g
src/parser/tptp/tptp.cpp