Minor reorganization, move ParseFile to the lexer

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7432 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2003-07-30 19:55:10 +00:00
parent 90523906fa
commit e623fe3d0a
4 changed files with 44 additions and 48 deletions

View File

@ -32,6 +32,28 @@ static int ParseInt(const char *Str) {
static int CommentDepth = 0; static int CommentDepth = 0;
int Fileparse();
void ParseFile(const std::string &Filename) {
FILE *F = stdin;
if (Filename != "-") {
F = fopen(Filename.c_str(), "r");
if (F == 0) {
std::cerr << "Could not open input file '" + Filename + "'!\n";
abort();
}
}
Filein = F;
Filelineno = 1;
Fileparse();
if (F != stdin)
fclose(F);
Filein = stdin;
}
%} %}
Comment \/\/.* Comment \/\/.*

View File

@ -7,16 +7,13 @@
%{ %{
#include "Record.h" #include "Record.h"
#include "Support/StringExtras.h" #include "Support/StringExtras.h"
#include <iostream>
#include <algorithm> #include <algorithm>
#include <cstdio> #include <cstdio>
#define YYERROR_VERBOSE 1 #define YYERROR_VERBOSE 1
int yyerror(const char *ErrorMsg); int yyerror(const char *ErrorMsg);
int yylex(); int yylex();
extern FILE *Filein;
extern int Filelineno; extern int Filelineno;
int Fileparse();
static Record *CurRec = 0; static Record *CurRec = 0;
typedef std::pair<Record*, std::vector<Init*>*> SubClassRefTy; typedef std::pair<Record*, std::vector<Init*>*> SubClassRefTy;
@ -24,27 +21,6 @@ typedef std::pair<Record*, std::vector<Init*>*> SubClassRefTy;
static std::vector<std::pair<std::pair<std::string, std::vector<unsigned>*>, static std::vector<std::pair<std::pair<std::string, std::vector<unsigned>*>,
Init*> > SetStack; Init*> > SetStack;
void ParseFile(const std::string &Filename) {
FILE *F = stdin;
if (Filename != "-") {
F = fopen(Filename.c_str(), "r");
if (F == 0) {
std::cerr << "Could not open input file '" + Filename + "'!\n";
abort();
}
}
Filein = F;
Filelineno = 1;
Fileparse();
if (F != stdin)
fclose(F);
Filein = stdin;
}
static std::ostream &err() { static std::ostream &err() {
return std::cerr << "Parsing Line #" << Filelineno << ": "; return std::cerr << "Parsing Line #" << Filelineno << ": ";
} }

View File

@ -32,6 +32,28 @@ static int ParseInt(const char *Str) {
static int CommentDepth = 0; static int CommentDepth = 0;
int Fileparse();
void ParseFile(const std::string &Filename) {
FILE *F = stdin;
if (Filename != "-") {
F = fopen(Filename.c_str(), "r");
if (F == 0) {
std::cerr << "Could not open input file '" + Filename + "'!\n";
abort();
}
}
Filein = F;
Filelineno = 1;
Fileparse();
if (F != stdin)
fclose(F);
Filein = stdin;
}
%} %}
Comment \/\/.* Comment \/\/.*

View File

@ -7,16 +7,13 @@
%{ %{
#include "Record.h" #include "Record.h"
#include "Support/StringExtras.h" #include "Support/StringExtras.h"
#include <iostream>
#include <algorithm> #include <algorithm>
#include <cstdio> #include <cstdio>
#define YYERROR_VERBOSE 1 #define YYERROR_VERBOSE 1
int yyerror(const char *ErrorMsg); int yyerror(const char *ErrorMsg);
int yylex(); int yylex();
extern FILE *Filein;
extern int Filelineno; extern int Filelineno;
int Fileparse();
static Record *CurRec = 0; static Record *CurRec = 0;
typedef std::pair<Record*, std::vector<Init*>*> SubClassRefTy; typedef std::pair<Record*, std::vector<Init*>*> SubClassRefTy;
@ -24,27 +21,6 @@ typedef std::pair<Record*, std::vector<Init*>*> SubClassRefTy;
static std::vector<std::pair<std::pair<std::string, std::vector<unsigned>*>, static std::vector<std::pair<std::pair<std::string, std::vector<unsigned>*>,
Init*> > SetStack; Init*> > SetStack;
void ParseFile(const std::string &Filename) {
FILE *F = stdin;
if (Filename != "-") {
F = fopen(Filename.c_str(), "r");
if (F == 0) {
std::cerr << "Could not open input file '" + Filename + "'!\n";
abort();
}
}
Filein = F;
Filelineno = 1;
Fileparse();
if (F != stdin)
fclose(F);
Filein = stdin;
}
static std::ostream &err() { static std::ostream &err() {
return std::cerr << "Parsing Line #" << Filelineno << ": "; return std::cerr << "Parsing Line #" << Filelineno << ": ";
} }