Exemple #1
0
/** <!--******************************************************************-->
 *
 * @fn CHKMvardec
 *
 * @brief Touched the node and its sons/attributes
 *
 * @param arg_node VarDec node to process
 * @param arg_info pointer to info structure
 *
 * @return processed node
 *
 ***************************************************************************/
node *
CHKMvardec (node * arg_node, info * arg_info)
{
  DBUG_ENTER ("CHKMvardec");
  NODE_ERROR (arg_node) = CHKMTRAV (NODE_ERROR (arg_node), arg_info);
  VARDEC_TYPE (arg_node) = CHKMTRAV (VARDEC_TYPE (arg_node), arg_info);
  VARDEC_VAR (arg_node) = CHKMTRAV (VARDEC_VAR (arg_node), arg_info);
  VARDEC_EXPR (arg_node) = CHKMTRAV (VARDEC_EXPR (arg_node), arg_info);
  DBUG_RETURN (arg_node);
}
Exemple #2
0
/** <!--******************************************************************-->
 *
 * @fn COPYvardec
 *
 * @brief Copies the node and its sons/attributes
 *
 * @param arg_node VarDec node to process
 * @param arg_info pointer to info structure
 *
 * @return processed node
 *
 ***************************************************************************/
node *
COPYvardec (node * arg_node, info * arg_info)
{
  node *result = TBmakeVardec (NULL, NULL, NULL);
  DBUG_ENTER ("COPYvardec");
  LUTinsertIntoLutP (INFO_LUT (arg_info), arg_node, result);
  /* Copy sons */
  VARDEC_TYPE (result) = COPYTRAV (VARDEC_TYPE (arg_node), arg_info);
  VARDEC_VAR (result) = COPYTRAV (VARDEC_VAR (arg_node), arg_info);
  VARDEC_EXPR (result) = COPYTRAV (VARDEC_EXPR (arg_node), arg_info);
  /* Return value */
  DBUG_RETURN (result);
}
Exemple #3
0
//check vardec type with initialisation
	node *CTvardec(node *arg_node, info *arg_info){
		DBUG_ENTER("CTvardec");

	//only check if there is a initialisation
		if(VARDEC_INIT(arg_node)!= NULL){
			VARDEC_INIT(arg_node) = TRAVdo(VARDEC_INIT(arg_node), arg_info);
			type vartype = INFO_TYPE(arg_info);
			if(vartype != VARDEC_TYPE(arg_node)){
				CTIerrorLine(NODE_LINE(arg_node), "Initialisation value does not match the type of the declared variable");
			}
		}
	//ga verder met traversal
		VARDEC_NEXT(arg_node) = TRAVopt(VARDEC_NEXT(arg_node), arg_info);

		DBUG_RETURN(arg_node);
	}