예제 #1
0
static error_code_t on_document_begin(generator_t *super, const YYLTYPE *yylloc, const char *file_name)
{
	TDR_UNUSED(yylloc);

	generator_open(super, file_name, GENERATOR_TYPES_H_SUFFIX);

	generator_printline(super, 0, "/**");
    generator_printline(super, 0, " * Autogenerated by %s Compiler (%s)", PROJECT_NAME, VERSION);
    generator_printline(super, 0, " *");
    generator_printline(super, 0, " * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING");
    generator_printline(super, 0, " *  @generated");
    generator_printline(super, 0, " */");
	generator_printline(super, 0, "");



	generator_printline(super, 0, "#ifndef _H_%s", super->document_name);
	generator_printline(super, 0, "#define _H_%s", super->document_name);
	generator_printline(super, 0, "");

	generator_printline(super, 0, "");
	generator_printline(super, 0, "#ifdef  __cplusplus");
	generator_printline(super, 0, "extern \"C\" {");
	generator_printline(super, 0, "#endif");
	generator_printline(super, 0, "");

	generator_printline(super, 0, "#include <stdint.h>");
	generator_printline(super, 0, "#include <tlibc_bool.h>");
	
	generator_printline(super, 0, "");
	generator_printline(super, 0, "");
	return E_TD_NOERROR;
}
예제 #2
0
static error_code_t on_document_begin(generator_t *super, const YYLTYPE *yylloc, const char *file_name)
{
	char header[MAX_PACKAGE_NAME_LENGTH];	
	TDR_UNUSED(yylloc);

	generator_open(super, file_name, GENERATOR_WRITER_C_SUFFIX);

	generator_printline(super, 0, "/**");
    generator_printline(super, 0, " * Autogenerated by %s Compiler (%s)", PROJECT_NAME, VERSION);
    generator_printline(super, 0, " *");
    generator_printline(super, 0, " * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING");
    generator_printline(super, 0, " *  @generated");
    generator_printline(super, 0, " */");
	generator_printline(super, 0, "");

	
	//包含header的头文件
	strncpy_notdir(header, file_name, MAX_PACKAGE_NAME_LENGTH - 1);
	generator_replace_extension(header, MAX_PACKAGE_NAME_LENGTH, GENERATOR_WRITER_H_SUFFIX);
	generator_printline(super, 0, "#include \"%s\"", header);

	generator_printline(super, 0, "#include <stdint.h>");
	generator_printline(super, 0, "#include <tlibc_bool.h>");
	generator_printline(super, 0, "#include \"tlibc_define.h\"");

	generator_printline(super, 0, "");
	generator_printline(super, 0, "");
	return E_TD_NOERROR;
}
예제 #3
0
static error_code_t on_document_begin(generator_t *super, const YYLTYPE *yylloc, const char *file_name)
{
	char types_header[MAX_PACKAGE_NAME_LENGTH];	
	TDR_UNUSED(yylloc);

	generator_open(super, file_name, GENERATOR_WRITER_H_SUFFIX);

	generator_printline(super, 0, "/**");
    generator_printline(super, 0, " * Autogenerated by %s Compiler (%s)", PROJECT_NAME, VERSION);
    generator_printline(super, 0, " *");
    generator_printline(super, 0, " * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING");
    generator_printline(super, 0, " *  @generated");
    generator_printline(super, 0, " */");
	generator_printline(super, 0, "");



	generator_printline(super, 0, "#ifndef _H_%s", super->document_name);
	generator_printline(super, 0, "#define _H_%s", super->document_name);

	generator_printline(super, 0, "");
	generator_printline(super, 0, "#ifdef  __cplusplus");
	generator_printline(super, 0, "extern \"C\" {");
	generator_printline(super, 0, "#endif");
	generator_printline(super, 0, "");

	generator_printline(super, 0, "");
	generator_printline(super, 0, "#include <stdint.h>");
	generator_printline(super, 0, "#include \"protocol/tlibc_abstract_writer.h\"");
	generator_printline(super, 0, "#include \"tlibc_error_code.h\"");
	
	//包含types的头文件
	strncpy_notdir(types_header, file_name, MAX_PACKAGE_NAME_LENGTH - 1);
	generator_replace_extension(types_header, MAX_PACKAGE_NAME_LENGTH, GENERATOR_TYPES_H_SUFFIX);
	generator_printline(super, 0, "#include \"%s\"", types_header);
	
	generator_printline(super, 0, "");
	generator_printline(super, 0, "");
	return E_TD_NOERROR;
}