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

📄 scan.ll

📁 大型并行量子化学软件;支持密度泛函(DFT)。可以进行各种量子化学计算。支持CHARMM并行计算。非常具有应用价值。
💻 LL
字号:
%option c++ prefix="MPQCIn" yylineno%{#if !defined(SUN4)#include <string.h>#endif#include <util/misc/exenv.h>#include "mpqcin.h"#include "parse.h"using namespace sc;#define YY_NO_UNISTD_Hextern "C" int MPQCInwrap();#ifndef yywrap#  define yywrap MPQCInwrap#endifstatic inline char *cstr(char *yytext){  if (MPQCIn::checking()) return 0;  char *ret;  int strlenyytext = strlen(yytext);  ret = (char *)malloc(strlenyytext+1);  if (!ret) {    ExEnv::outn() << "MPQC: malloc failed"                 << endl;    abort();  }  strcpy(ret,yytext);  return ret;}%}string  [A-Za-z0-9_\.*+-/']*qstring \"[^"\n]+\"%%"memory"        { return T_MEMORY; }"molecule"      { return T_MOLECULE; }"multiplicity"  { return T_MULTIPLICITY; }"optimize"      { return T_OPTIMIZE; }"gradient"      { return T_GRADIENT; }"frequencies"   { return T_FREQUENCIES; }"yes"           { yylval.i = 1; return T_BOOL; }"no"            { yylval.i = 0; return T_BOOL; }"charge"        { return T_CHARGE; }"method"        { return T_METHOD; }"basis"         { return T_BASIS; }"auxbasis"      { return T_AUXBASIS; }"cartesian"     { return T_CARTESIAN; }"internal"      { return T_INTERNAL; }"redundant"     { return T_REDUNDANT; }"restart"       { return T_RESTART; }"checkpoint"    { return T_CHECKPOINT; }"xc"            { return T_XC; }"symmetry"      { return T_SYMMETRY; }"bohr"          { return T_BOHR; }"angstrom"      { return T_ANGSTROM; }"docc"          { return T_DOCC; }"socc"          { return T_SOCC; }"alpha"         { return T_ALPHA; }"beta"          { return T_BETA; }"frozen_docc"   { return T_FROZEN_DOCC; }"frozen_uocc"   { return T_FROZEN_UOCC; }"grid"          { return T_GRID; }"="             { return T_EQUALS; }":"             { return T_COLON; }"("             { return T_BEG_OPT; }")"             { return T_END_OPT; }"<"             { return T_OO_INPUT_KEYWORD; }"mpqc"          { return T_OO_INPUT_KEYWORD; }{string}        { yylval.str = cstr(yytext);                  return T_STRING;                  }{qstring}       { if (MPQCIn::checking()) return T_STRING;                  yylval.str = (char *)malloc(strlen(yytext));                  if (!yylval.str) {                    ExEnv::outn() << "MPQC: {qstring} rule: malloc failed"                                 << endl;                    abort();                    }                  strcpy(yylval.str,&yytext[1]);                  yylval.str[strlen(yylval.str)-1] = '\0';                  return(T_STRING);                  }[ \t]+          ; %.*$            ;[\n\r\f]        ;.               { ExEnv::outn() << "MPQC: Illegal character: \""                               << yytext[0] <<"\"" << endl; }%%intMPQCInwrap(){  return 1;}

⌨️ 快捷键说明

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