📄 parse_dpf_line.cc
字号:
/* parse_dpf_line.cc */#ifdef sgi #include <stdio.h> #include <string.h> #include <ctype.h> #include "parse_dpf_line.h"#else extern "C" { #include <stdio.h> #include <string.h> #include <ctype.h> #include "parse_dpf_line.h" }#endifint parse_dpf_line( char line[LINE_LEN] )/******************************************************************************//* Name: parse_dpf_line *//* Function: Parse the docking parameter file line *//* Copyright: (C) 1994, TSRI *//*----------------------------------------------------------------------------*//* Author: Garrett Morris, The Scripps Research Institute *//* Date: 19/05/94 *//*----------------------------------------------------------------------------*//* Inputs: line *//* Returns: integer token describing the keyword found. *//* Globals: none. *//*----------------------------------------------------------------------------*//* Modification Record *//* Date Inits Comments *//* 06/09/95 RSH Changed to an array implementation *//* 19/05/94 GMM Entered code. *//******************************************************************************/{ int j, i, token = DPF_; /* return -1 if nothing is recognized. */ char c[LINE_LEN]; const int tokentablesize = 84; const struct { char *lexeme; int tokenvalue; } tokentable[] = {{"types", DPF_TYPES}, {"fld", DPF_FLD}, {"map", DPF_MAP}, {"move", DPF_MOVE}, {"about", DPF_ABOUT}, {"tran0", DPF_TRAN0}, {"quat0", DPF_QUAT0}, {"ndihe", DPF_NDIHE}, {"dihe0", DPF_DIHE0}, {"torsdof", DPF_TORSDOF}, {"tstep", DPF_TSTEP}, {"qstep", DPF_QSTEP}, {"dstep", DPF_DSTEP}, {"trnrf", DPF_TRNRF}, {"quarf", DPF_QUARF}, {"dihrf", DPF_DIHRF}, {"flex", DPF_FLEX}, {"intnbp_coeffs", DPF_INTNBP_COEFFS}, {"rt0", DPF_RT0}, {"rtrf", DPF_RTRF}, {"runs", DPF_RUNS}, {"cycles", DPF_CYCLES}, {"accs", DPF_ACCS}, {"rejs", DPF_REJS}, {"select", DPF_SELECT}, {"outlev", DPF_OUTLEV}, {"rmstol", DPF_RMSTOL}, {"trjfrq", DPF_TRJFRQ}, {"trjbeg", DPF_TRJBEG}, {"trjend", DPF_TRJEND}, {"trjout", DPF_TRJOUT}, {"trjsel", DPF_TRJSEL}, {"extnrg", DPF_EXTNRG}, {"newcrd", DPF_NEWCRD}, {"cluster", DPF_CLUSTER}, {"write_all", DPF_CLUSALL}, {"write_all_cluster_members", DPF_CLUSALL}, {"charmap", DPF_CHARMAP}, {"rmsnosym", DPF_RMSNOSYM}, {"rmsref", DPF_RMSREF}, {"watch", DPF_WATCH}, {"linear_schedule", DPF_SCHEDLIN}, {"schedule_linear", DPF_SCHEDLIN}, {"linsched", DPF_SCHEDLIN}, {"schedlin", DPF_SCHEDLIN}, {"intelec", DPF_INTELEC}, {"seed", DPF_SEED}, {"e0max", DPF_E0MAX}, {"simanneal", DPF_SIMANNEAL}, {"hardtorcon", DPF_HARDTORCON}, {"intnbp_r_eps", DPF_INTNBP_REQM_EPS}, {"gausstorcon", DPF_GAUSSTORCON}, {"barrier", DPF_BARRIER}, {"showtorpen", DPF_SHOWTORPEN}, {"ga_run", DPF_GALS}, {"gals_run", DPF_GALS}, {"do_gals", DPF_GALS}, {"set_ga", DPF_SET_GA}, {"set_sw1", DPF_SET_SW1}, {"set_psw1", DPF_SET_PSW1}, {"analysis", DPF_ANALYSIS}, {"ga_pop_size", GA_pop_size}, {"ga_num_generations", GA_num_generations}, {"ga_num_evals", GA_num_evals}, {"ga_window_size", GA_window_size}, {"ga_low", GA_low}, {"ga_high", GA_high}, {"ga_elitism", GA_elitism}, {"ga_mutation_rate", GA_mutation_rate}, {"ga_crossover_rate", GA_crossover_rate}, {"ga_cauchy_alpha", GA_Cauchy_alpha}, {"ga_cauchy_beta", GA_Cauchy_beta}, {"sw_max_its", SW_max_its}, {"sw_max_succ", SW_max_succ}, {"sw_max_fail", SW_max_fail}, {"sw_rho", SW_rho}, {"sw_lb_rho", SW_lb_rho}, {"do_local_only", DPF_LS}, {"ls_run", DPF_LS}, {"do_global_only", DPF_GS}, {"ga_only_run", DPF_GS}, {"ls_search_freq", LS_search_freq}, {"bin_energies_by_rmsd", DPF_INVESTIGATE}, {"investigate", DPF_INVESTIGATE} }; c[0] = '\0'; for (j=0; ((line[j]!='\0')&&(line[j]!=' ')&&(line[j]!='\t')&&(line[j]!='\n')); j++) { /* Ignore case */ c[j] = (char)tolower((int)line[j]); /*(void)fprintf(stderr,"%c",c[j]);*/ } /*(void)fprintf(stderr,"/n,j = %d\n",j);*/ /* Recognize one character tokens */ if ((c[0]=='\n') || (c[0]=='\0')) { token = DPF_NULL; } else if (c[0]=='#') { token = DPF_COMMENT; } /* Recognize token strings */ for (i=0; (i < tokentablesize) && (token == DPF_); i++) { /*(void)fprintf(stderr,"i = %d, tokentable[i].lexeme = %s, tokentable[i].value = %d, c = %s\n",i,tokentable[i].lexeme,tokentable[i].tokenvalue,c);*/ if (strncmp(tokentable[i].lexeme, c, j) == 0) { token = tokentable[i].tokenvalue; } } return(token);}/* EOF */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -