⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cp_maintest.c

📁 这是一个Linux下的集成开发环境
💻 C
字号:
/*Copyright (c) 2000, 2001, Red Hat, Inc.This file is part of Source-Navigator.Source-Navigator is free software; you can redistribute it and/ormodify it under the terms of the GNU General Public License as publishedby the Free Software Foundation; either version 2, or (at your option)any later version.Source-Navigator is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNUGeneral Public License for more details.You should have received a copy of the GNU General Public License alongwith Source-Navigator; see the file COPYING.  If not, write tothe Free Software Foundation, 59 Temple Place - Suite 330, Boston,MA 02111-1307, USA.*/#include <stdlib.h>#include <stdio.h>#include <string.h>#include <sys/stat.h>#include <fcntl.h>#include <tcl.h>#include "crossrefP.h"#define PRINTTcl_Encoding encoding = NULL;int (*Paf_IsSkip)( char *yytext, int yyleng );static void process_file( char *filename );static void start_parser( char *filename_a, int is_cpp, int mode );extern int main( int argc, char *argv[] ){   extern char *optarg;   extern int   optind;   char *pcInputFiles = 0;   scope_g = SN_StrDup( "" );   if( argc == 1 )   {      printf( "no argument\n" );      exit( -1 );   }   else   {      int i;      int opt;      while(( opt = getopt( argc, argv, "y:" )) != EOF )      {         switch( opt )         {         case 'y' : pcInputFiles = optarg; break;         }      }      if( pcInputFiles == 0 )      {         for( i = optind; i < argc; i++ )         {            process_file( argv[i] );         }      }      else      {         FILE *input_files_fp;         char acBuffer[1000];         input_files_fp = fopen( pcInputFiles, "r" );         if( input_files_fp == 0 )         {            perror( pcInputFiles );            exit( -1 );         }         while( fgets( acBuffer, sizeof( acBuffer ), input_files_fp ))         {            char *pc;            if( acBuffer[0] == '#' )            {               continue;            }            if( pc = strchr( acBuffer, '\n' ))            {               *pc = 0;            }            process_file( acBuffer );         }      }   }}static void process_file( char *filename ){   fprintf( stderr, "file: %s\n", filename );   if(( yyfd = open( filename, O_RDONLY )) >= 0 )   {      start_parser( filename, 1, 0 );      close( yyfd );   }   else   {      perror( filename );   }}static void start_parser( char *filename_a, int is_cpp, int mode ){   extern int yyfd;   if( yyfd == -1 ) return;   mode_g = mode;   filename_g = filename_a;   is_cpp_g = is_cpp;   ivt = 0;   iva = 0;   init_stack();   niveau = 0;   /* beolvassuk az egesz file-t */   if( f_ReadFile( yyfd ))   {      return;   }   if( mode == -1 )   {      Token_t Token;      while( True )      {         int lex;         Token = yylex();         lex = Token->lex;         f_TokenFreeAll( Token );         if( lex == 0 ) break;      }   }   else   {      while( token( 0 ) != 0 )      {         Declaration_t Declaration;         if(( Declaration = f_Declaration( LEVEL_2 )))         {/*          f_DeclarationPrint( Declaration ); */            f_DeclarationDestroy( Declaration );         }         else         {            f_DeclarationSkip();         }         if( niveau != 0 )         {#ifdef TEST            printf( "bad niveau: %d (line:%d)\n", niveau, f_lineno( 0 ));            exit( -1 );#endif         }      }   }   f_read_end();}/*extern int Put_symbol (int type,char *scope,char *sym_name,char *file, int start_lineno,int start_colpos,int end_lineno,int end_colpos,unsigned long attr, char *ret,char *arg_types,char *args, char *comment, int high_start_lineno,int high_start_colpos,int high_end_lineno, int high_end_colpos ){   printf( "Fatal error: put_symbol calling\n" );   exit( -1 );}*/extern char *Paf_Search_Include_dir( char *name ){   return name;}extern void Paf_panic( int i ){   exit( i );}extern int get_symbol (char *class_name,char *scope_local,char *name,char *arg_types, char *scope,char *ret_type, char *ret_define, int exact){   scope   [0] = 0;   ret_type[0] = 0;   ret_define[0] = 0;#ifdef PRINT   printf( "get_symbol: %s|%s|%s|%s\n"         , class_name ? class_name : ""         , scope_local ? scope_local : ""         , name ? name : ""         , arg_types ? arg_types : ""         );#endif   return 0;}extern int get_class_or_typedef( char *name, char *type ){#ifdef PRINT   printf( "get_class_or_typedef: %s\n"         , name         );#endif   return 0;}extern char *paf_type_to_string( int paf_type );extern int put_cross_ref ( int type,int scope_type,int scope_lev,   char *fnc_cls,char *fnc,char *fnc_arg_types,char *scope,char *what,   char *arg_types,char *file,int lineno,int acc){#ifdef PRINT   printf( "crossref: %d %d %d %s %s %s %s %s %s %s %d %d\n"         , type         , scope_type         , scope_lev         , fnc_cls ? fnc_cls : "NULL"         , fnc ? fnc : "NULL"         , fnc_arg_types ? fnc_arg_types : "NULL"         , scope ? scope : "NULL"         , what ? what : "NULL"         , arg_types ? arg_types : "NULL"         , file ? file : "NULL"         , lineno         , acc );#endif   return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -