Grammar
This class encapsulates a SyGuS grammar. It is created via
cvc5::Solver::mkGrammar()
and allows to define a context-free
grammar of terms, according to the definition of grammars in the SyGuS IF 2.1
standard.
-
class Grammar
A Sygus Grammar. This class can be used to define a context-free grammar of terms. Its interface coincides with the definition of grammars (
GrammarDef
) in the SyGuS IF 2.1 standard.Public Functions
-
Grammar()
Nullary constructor. Needed for the Cython API.
-
~Grammar()
Destructor for bookeeping.
-
bool isNull() const
Determine if this is the null grammar (Grammar::Grammar()).
- Returns:
True if this grammar is the null grammar.
-
bool operator==(const Grammar &grammar) const
Operator overloading for referential equality of two grammars.
- Parameters:
grammar – The grammarto compare to for equality.
- Returns:
True if both grammars point to the same internal grammar object.
-
bool operator!=(const Grammar &grammar) const
Referential disequality operator.
- Parameters:
grammar – The grammar to compare to for disequality.
- Returns:
True if both grammars point to different internal grammar objects.
-
void addRule(const Term &ntSymbol, const Term &rule)
Add
rule
to the set of rules corresponding tontSymbol
.- Parameters:
ntSymbol – The non-terminal to which the rule is added.
rule – The rule to add.
-
void addRules(const Term &ntSymbol, const std::vector<Term> &rules)
Add
rules
to the set of rules corresponding tontSymbol
.- Parameters:
ntSymbol – The non-terminal to which the rules are added.
rules – The rules to add.
-
void addAnyConstant(const Term &ntSymbol)
Allow
ntSymbol
to be an arbitrary constant.- Parameters:
ntSymbol – The non-terminal allowed to be any constant.
-
void addAnyVariable(const Term &ntSymbol)
Allow
ntSymbol
to be any input variable to corresponding synth-fun/synth-inv with the same sort asntSymbol
.- Parameters:
ntSymbol – The non-terminal allowed to be any input variable.
-
std::string toString() const
- Returns:
A string representation of this grammar.
Friends
- friend class parser::Cmd
- friend struct std::hash< Grammar >
-
Grammar()