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

📄 elexc.cpp

📁 用于词法分析的词法分析器
💻 CPP
字号:
/*  $Id: elexc.cpp,v 1.8 1997/05/17 05:14:31 matt Exp $  Elex compiler application    (c) Jan 96 Matt Phillips.  */#include <unistd.h>#include <std/string.h>#include <fstream.h>#include <compiler/BufferedInputStream.h>#include "ElexCompiler.h"//////////////////// utility functionsvoid errorMessage (const string message){  cerr << "elexc: " << message << endl;}// check stream <str> which should be a stream opened for file with// <name> is open.int checkStream (ios &str, const string name){  if (!str)  {    errorMessage ("could not open '" + name + "': " + strerror (errno));    return 0;  } else    return 1;}//////////////////// Mainint main (int argc, char **argv){  if (argc != 3)  {    cerr << "usage: elexc <scanner.elx> <codefrags.ecf>\n";    return 1;  }  char *scannerFile = argv [1];  char *codeFragsFile = argv [2];  ifstream scannerStream (scannerFile);  ofstream codeFragStream (codeFragsFile);  if (checkStream (scannerStream, scannerFile) &&      checkStream (codeFragStream, codeFragsFile))  {    string filename (scannerFile);    BufferedInputStream inputStream (scannerStream, filename);    ElexCompiler elexComp (inputStream, codeFragStream);    // output any messages    if (elexComp.nErrors () > 0 || elexComp.nWarnings () > 0)    {      cerr << elexComp.getErrors ();    }    if (elexComp.nErrors () == 0)      elexComp.getScannerDef ().outputScanner (cout);    else      return 1;  } else    return 1;  return 0;}

⌨️ 快捷键说明

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