dcop
main.cpp
Go to the documentation of this file.00001
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 }