mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-19 18:24:00 +00:00
Replace the original flex lexer with a hand writen one. This
drops a dependency on flex and lets us make future progress more easily. Yay for 2 fewer .cvs files to make silly conflicts with. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44213 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -13,38 +13,37 @@
|
||||
|
||||
#include "ParserInternals.h"
|
||||
#include "llvm/Module.h"
|
||||
#include "llvm/Support/MemoryBuffer.h"
|
||||
using namespace llvm;
|
||||
|
||||
|
||||
ParseError* TheParseError = 0; /// FIXME: Not threading friendly
|
||||
|
||||
Module *llvm::ParseAssemblyFile(const std::string &Filename, ParseError* Err) {
|
||||
FILE *F = stdin;
|
||||
|
||||
if (Filename != "-") {
|
||||
F = fopen(Filename.c_str(), "r");
|
||||
|
||||
if (F == 0) {
|
||||
if (Err)
|
||||
Err->setError(Filename,"Could not open file '" + Filename + "'");
|
||||
return 0;
|
||||
}
|
||||
std::string ErrorStr;
|
||||
MemoryBuffer *F = MemoryBuffer::getFileOrSTDIN(&Filename[0], Filename.size(),
|
||||
&ErrorStr);
|
||||
if (F == 0) {
|
||||
if (Err)
|
||||
Err->setError(Filename, "Could not open input file '" + Filename + "'");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
TheParseError = Err;
|
||||
Module *Result = RunVMAsmParser(Filename, F);
|
||||
|
||||
if (F != stdin)
|
||||
fclose(F);
|
||||
|
||||
Module *Result = RunVMAsmParser(F);
|
||||
delete F;
|
||||
return Result;
|
||||
}
|
||||
|
||||
Module *llvm::ParseAssemblyString(
|
||||
const char * AsmString, Module * M, ParseError* Err)
|
||||
{
|
||||
Module *llvm::ParseAssemblyString(const char *AsmString, Module *M,
|
||||
ParseError *Err) {
|
||||
TheParseError = Err;
|
||||
return RunVMAsmParser(AsmString, M);
|
||||
MemoryBuffer *F = MemoryBuffer::getMemBuffer(AsmString,
|
||||
AsmString+strlen(AsmString),
|
||||
"<string>");
|
||||
Module *Result = RunVMAsmParser(F);
|
||||
delete F;
|
||||
return Result;
|
||||
}
|
||||
|
||||
|
||||
@ -54,9 +53,8 @@ Module *llvm::ParseAssemblyString(
|
||||
|
||||
|
||||
void ParseError::setError(const std::string &filename,
|
||||
const std::string &message,
|
||||
int lineNo, int colNo)
|
||||
{
|
||||
const std::string &message,
|
||||
int lineNo, int colNo) {
|
||||
Filename = filename;
|
||||
Message = message;
|
||||
LineNo = lineNo;
|
||||
|
Reference in New Issue
Block a user