main.cpp00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #include <qstring.h>
00024 #include <qfile.h>
00025 #include <qcstring.h>
00026 #include <stdlib.h>
00027
00028 void dcopidlParse( const char *_code );
00029
00030 int idl_line_no;
00031
00032 #if YYDEBUG
00033 extern int yydebug;
00034 #endif
00035
00036 int main( int argc, char** argv )
00037 {
00038 if (argc != 2)
00039 {
00040 fprintf(stderr, "Usage : dcopidl input_file\n");
00041 return -1;
00042 }
00043 QFile file( argv[1] );
00044 if ( !file.open( IO_ReadOnly ) )
00045 {
00046 fprintf(stderr, "Can't open input file\n");
00047 return -1;
00048 }
00049
00050 QByteArray arr = file.readAll();
00051 uint len = arr.size();
00052 uint j = 1;
00053 for (uint i = 1; i<len; i++, j++) {
00054 if (arr[ i-1 ] == '\r' && ((i+1)==len || arr[ i ] != '\n')) {
00055
00056 arr[ j-1 ] = '\n';
00057 if ((i+1)==len)
00058 j--;
00059 }
00060 else if (arr[ i-1 ] == '\r' && arr[ i ] == '\n') {
00061
00062 arr[ j-1 ] = '\n';
00063 i++;
00064 }
00065 else if (i!=j) {
00066 arr[ j-1 ] = arr[ i-1 ];
00067 }
00068 }
00069 len = j;
00070 arr.resize( len + 1 );
00071 arr[ len ] = 0;
00072
00073 #if YYDEBUG
00074 char *debug = getenv("DEBUG");
00075 if (debug)
00076 yydebug = 1;
00077 #endif
00078 idl_line_no = 1;
00079
00080 printf("<!DOCTYPE DCOP-IDL><DCOP-IDL>\n");
00081 printf("<SOURCE>%s</SOURCE>\n", argv[1] );
00082 dcopidlParse( arr.data() );
00083 printf("</DCOP-IDL>\n");
00084
00085 file.close();
00086 return 0;
00087 }
|