mkit.c
来自「开放源码的编译器open watcom 1.6.0版的源代码」· C语言 代码 · 共 69 行
C
69 行
#include <stdio.h>
#include <stdlib.h>
static char buffer[ 130 ];
static char output_name[ 13 ];
static char func_name[ 20 ];
void main( int argc, char *argv[] )
{
FILE *input;
FILE *output;
int i, j;
if( argc < 2 ) {
printf( "Usage: mkit cmd_filename\n" );
exit( EXIT_FAILURE );
}
input = fopen( argv[1], "r" );
if( input == NULL ) {
printf( "Can't open %s\n", argv[1] );
exit( EXIT_FAILURE );
}
for(;;) {
if( fgets( buffer, 130-1, input ) == NULL )break;
strncpy( output_name, buffer, 8 );
for( i = 7; i != 0; i-- ) {
if( output_name[i] != ' ' )break;
}
output_name[++i] = '\0';
strcat( output_name, ".gml" );
printf( "Output file name is %s\n", output_name );
for( i = 9; i < 130; i++ ) {
if( buffer[i] == ' ' )break;
}
for( ; i < 130; i++ ) {
if( buffer[i] != ' ' )break;
}
j = 0;
for( ; i < 130; i++ ) {
if( (func_name[j] = buffer[i]) == '(' )break;
j++;
}
func_name[j] = '\0';
printf( "Function name is %s\n", func_name );
output = fopen( output_name, "w" );
if( output != NULL ) {
fprintf( output, ".func %s\n", func_name );
fprintf( output, "#include <mmintrin.h>\n" );
fprintf( output, &buffer[9] );
fprintf( output, ".funcend\n" );
fprintf( output, ".desc begin\n" );
fprintf( output, ".desc end\n" );
fprintf( output, ".return begin\n" );
fprintf( output, ".return end\n" );
fprintf( output, ".see begin\n" );
fprintf( output, ".im seemmfun &function.\n" );
fprintf( output, ".see end\n" );
fprintf( output, ".seexmp _m_pcmpeqb\n" );
fprintf( output, ".class Intel\n" );
fprintf( output, ".system\n" );
fclose( output );
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?