elexc.cpp

来自「用于词法分析的词法分析器」· C++ 代码 · 共 74 行

CPP
74
字号
/*  $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 + =
减小字号Ctrl + -
显示快捷键?