Пример #1
0
int Node_Dump (node* my_node)
{
	//fprintf (LOG, "\n==================================================");
	char tmp_type[TMPLEN] = {};
	DEF_TYPE (my_node -> type);

	fprintf (LOG, "{%s}\t", tmp_type);

	switch (my_node -> type)
	{
		case PGM:	case OP:	case OP_PRINT:	case OP_IF:	case OP_WHILE:	case OP_ASSIGN:
		case OP_ELSE:
			break;

		case FUNC:	case MATH_OP:	case CMP:
			fprintf (LOG, "[%d]", my_node -> op);
			break;

		case VAR:	case STR:
			fprintf (LOG, "[%s]", my_node -> word);
			break;

		case NUMBER:
			fprintf (LOG, "[%lg]", my_node -> num);
			break;
	}
	int err_index = Node_OK (my_node);
	if (err_index == HAPPY) fprintf (LOG, "\t\t\tNode [%.8x] is OK\t", my_node);
	else 
	{
		fprintf (LOG, "Node [%.8x] is NOT ok!\t", my_node);
		Check_Error (err_index);
		fputc ('\n', LOG);
		return HAPPY;
	}
	fprintf (LOG, "left [%.8x] right [%.8x] prev [%.8x]\n",
					   my_node -> left, my_node -> right, my_node -> prev);
	return HAPPY;
}
Пример #2
0
    namespace helper
    {
        struct Signed;
        struct Unsigned;
        struct Integer;
        struct Floating;
        
        template<typename T>
        struct TypeClass
        {
        };
    
        template<>
        struct TypeClass<signed char>
        {
            DEF_TYPE(Signed, Integer)
        };

        template<>
        struct TypeClass<signed short>
        {
            DEF_TYPE(Signed, Integer)
        };

        template<>
        struct TypeClass<signed int>
        {
            DEF_TYPE(Signed, Integer)
        };

        template<>