9 #include <spicy/ast/types/unit.h> 10 #include <spicy/compiler/detail/codegen/production.h> 18 :
ProductionBase(symbol, l), _body(std::move(body)), _eod_ok(eod_ok) {}
20 const Production& body()
const {
return _body; }
23 std::vector<std::vector<Production>> rhss()
const {
return {{_body}}; }
24 std::optional<spicy::Type> type()
const {
return {}; }
25 bool nullable()
const {
return production::nullable(rhss()); }
26 bool eodOk()
const {
return _eod_ok ? _eod_ok : nullable(); }
27 bool atomic()
const {
return false; }
28 std::string render()
const {
return hilti::util::fmt(
"foreach: %s", _body.symbol()); }
Definition: production.h:24
Definition: production.h:120
Definition: for-each.h:15
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