00001 #include "fieldreference.h" 00002 00003 Ast& FieldReference::operator = (const Ast& ast) { 00004 const FieldReference& fieldReference = dynamic_cast<const FieldReference&>(ast); 00005 00006 Expression::operator=(ast); 00007 00008 this->msgId = fieldReference.msgId ? dynamic_cast<Identifier*>(&(fieldReference.msgId->clone())) : 0; 00009 this->fieldId = fieldReference.fieldId ? dynamic_cast<Identifier*>(&(fieldReference.fieldId->clone())): 0; 00010 00011 return (*this); 00012 } 00013 00014 bool FieldReference::operator == (const Ast& ast) const { 00015 const FieldReference& fieldReference = dynamic_cast<const FieldReference&>(ast); 00016 00017 bool result = false; 00018 if(this->msgId && this->fieldId) { 00019 result = (*(this->msgId) == *(fieldReference.msgId) && 00020 *(this->fieldId) == *(fieldReference.fieldId)); 00021 } 00022 00023 return result && Expression::operator==(ast); 00024 }