stage4/generate_c/generate_c_il.cc
changeset 470 d2cd05c5e01a
parent 453 4733f662362a
child 495 8c6823fee086
equal deleted inserted replaced
469:9fe6c4633ed6 470:d2cd05c5e01a
  1638   /* the data type resulting from this operation is unchanged. */
  1638   /* the data type resulting from this operation is unchanged. */
  1639   return NULL;
  1639   return NULL;
  1640 }
  1640 }
  1641 
  1641 
  1642 void *visit(NOT_operator_c *symbol)	{
  1642 void *visit(NOT_operator_c *symbol)	{
       
  1643   /* NOTE: the standard allows syntax in which the NOT operator is followed by an optional <il_operand>
       
  1644    *              NOT [<il_operand>]
       
  1645    *       However, it does not define the semantic of the NOT operation when the <il_operand> is specified.
       
  1646    *       We therefore consider it an error if an il_operand is specified!
       
  1647    *       The error is caught in stage 3!
       
  1648    */  
  1643   if ((NULL != this->current_operand) || (NULL != this->current_operand_type)) ERROR;
  1649   if ((NULL != this->current_operand) || (NULL != this->current_operand_type)) ERROR;
  1644   XXX_operator(&(this->default_variable_name),
  1650   XXX_operator(&(this->default_variable_name),
  1645                search_expression_type->is_bool_type(this->default_variable_name.current_type)?" = !":" = ~",
  1651                search_expression_type->is_bool_type(this->default_variable_name.current_type)?" = !":" = ~",
  1646                &(this->default_variable_name));
  1652                &(this->default_variable_name));
  1647   /* the data type resulting from this operation is unchanged. */
  1653   /* the data type resulting from this operation is unchanged. */