9 #include <spicy/ast/types/unit.h> 10 #include <spicy/compiler/detail/codegen/production.h> 23 _expression(std::move(e)),
24 _alternatives(std::make_pair(std::move(alt1), std::move(alt2))) {}
26 const Expression& expression()
const {
return _expression; }
27 const std::pair<Production, Production>& alternatives()
const {
return _alternatives; }
30 std::vector<std::vector<Production>> rhss()
const {
return {{_alternatives.first}, {_alternatives.second}}; }
31 std::optional<spicy::Type> type()
const {
return {}; }
32 bool nullable()
const {
return production::nullable(rhss()); }
38 bool atomic()
const {
return false; }
39 std::string render()
const {
40 return hilti::util::fmt(
"true: %s / false: %s", _alternatives.first.symbol(), _alternatives.second.symbol());
44 Expression _expression;
45 std::pair<Production, Production> _alternatives;
Definition: production.h:24
Definition: production.h:120
const std::string & symbol() const
Definition: production.h:191
Definition: production.h:170
Definition: location.h:18
ProductionBase(std::string symbol, Location l=location::None)
Definition: production.h:181