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; }
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; }
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; }