Exemplo n.º 1
0
Arquivo: main.c Projeto: Thomsen/test
int main(int argc, char *argv[])
{

  printf("command argument: %s\n", argv[1]);
  // io_tools
  //gpchar();

  // data_type
  printf("------------ data_type example ------------\n");
  print_sizeof ();

  // pointer
  printf("\n------------ pointer example --------------\n");
  address();

  // string
  printf("\n------------ string example ---------------\n");
  char_to_string();

  // struct
  printf("\n------------ struct example ---------------\n");
  structure();

  // union
  printf("\n------------ union example ----------------\n");
  union_test();

  // bit_field
  printf("\n------------ bit_field example -----------\n");
  bit_field_test();

  // file_io
  printf("\n------------ file_io example -------------\n");
  file_io_test();

  // recursion
  printf("\n------------ recusion example -------------\n");
  recursion_test();

  // variable_args
  printf("\n------------ valist example -------------\n");
  varargs_test();

  // memory
  printf("\n------------ memory example -------------\n");
  memory_mgmt_test();

  return 0;
}
Exemplo n.º 2
0
int print_compozite(FILE* dest, struct ast_node_t* node, int padding, int wrap) {

	ast_node_t* child = node->value.child;

	int new_pad = padding + (wrap ? 1 : 1);	//lol, wtf?

	switch (node->type) {
	//absolutelly syntactically specifically printed
	case JST_PROGRAM:
		print_whole_program(dest, child, padding, wrap);
		break;
	case JST_VARIABLE_DECL: {
		int done = print_variable_decl(dest, node, padding, wrap);
		return done;
		break;
	}
	case JST_VARIABLE: {
		print_single_node(dest, child, padding, wrap);
		break;
	}
	case JST_PROCEDURE: {
		print_procedure(dest, node, padding, wrap);
		return 1;
		break;
	}
	case JST_PROCCALL:
		print_proccal(dest, node, padding, wrap);
		break;
	case JST_ARRAY:
		print_array(dest, node, padding, wrap);
		break;
	case STK_SIZEOF:
		print_sizeof(dest, node, padding, wrap);
		break;

		// printing of containers
	case CNT_PARAMETERS:
		print_scheme_list(dest, child, new_pad, 0);
		break;
	case CNT_STATEMENTS:
		print_renamed(dest, "begin", child, new_pad, 1);
		break;
	case CNT_EXPRESSIONS:
		print_renamed(dest, "list", child, new_pad, 0);
		break;

	case JST_EXPRESSION:
		print_single_node(dest, child, new_pad, 0);
		break;
		// renaming
	case STK_ASSIGNMENT:
		print_renamed(dest, "set-at", child, new_pad, 0);
		break;
	case OPT_INDEX:
		print_renamed(dest, "at", child, new_pad, 0);
		break;
	case OPT_DEREFERENCE:
		print_renamed(dest, "adress-of", child, new_pad, 0);
		break;
	case OPT_REFERENCE:
		print_renamed(dest, "at-adress", child, new_pad, 0);
		break;
	case OPT_TERNARY:
		print_renamed(dest, "if", child, new_pad, 0);
		break;
	case OPT_NOT:
		print_renamed(dest, "not", child, new_pad, 0);
		break;
	case OPT_AND:
		print_renamed(dest, "and", child, new_pad, 0);
		break;
	case OPT_OR:
		print_renamed(dest, "or", child, new_pad, 0);
		break;
	case OPT_BITWISE_NOT:
		print_renamed(dest, "bit-not", child, new_pad, 0);
		break;
	case OPT_BITWISE_AND:
		print_renamed(dest, "bit-and", child, new_pad, 0);
		break;
	case OPT_BITWISE_OR:
		print_renamed(dest, "bit-or", child, new_pad, 0);
		break;
	case OPT_BITWISE_XOR:
		print_renamed(dest, "bit-xor", child, new_pad, 0);
		break;
	case OPT_MODULO:
		print_renamed(dest, "mod", child, new_pad, 0);
		break;
	case STK_DO:
		print_renamed(dest, "do-while", child, new_pad, 1);
		break;

		//normally printed, but with wrap
	case STK_IF:
	case STK_WHILE:
	case STK_FOR: {
		const char* str = to_string(node->type);
		print_labeled_scheme_list(dest, str, child, new_pad, 1);
	}
		break;
	default: {	//print inline (operators)
		const char* str = to_string(node->type);
		print_labeled_scheme_list(dest, str, child, new_pad, 0);
	}
	}
	return 0;
}
Exemplo n.º 3
0
int main(int argc, char*argv[]){
    char s[20] = "skskfksjakfdksjd";
    printf("sizeof:%d %d\n", sizeof(s), sizeof(*s));
    print_sizeof(s);
}