public function visitSet(SetCommand $x, Context $ctx) { $fieldName = $this->clientOracle->getFieldId($x->getFieldDeclClass(), $x->getField()); if (is_null($fieldName)) { throw new IncompatibleRemoteServiceException('The client does not have field ' . $x->getField() . ' in type ' . $x->getFieldDeclClass() . getFullName()); } // i[3].foo = bar $this->push($this->parent->makeBackRef(array_peek($this->stack))); $this->dot(); $this->push($fieldName); $this->eq(); $this->accept($x->getValue()); return false; }