[Kaleidoscope] Rename Error -> LogError in Chapters 2-5.

This keeps the naming consistent with Chapters 6-8, where Error was renamed to
LogError in r264426 to avoid clashes with the new Error class in libSupport.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@264427 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Lang Hames 2016-03-25 17:41:26 +00:00
parent d7b240afb9
commit 215b61f08e
7 changed files with 92 additions and 92 deletions

View File

@ -176,17 +176,17 @@ be parsed.
.. code-block:: c++
/// Error* - These are little helper functions for error handling.
std::unique_ptr<ExprAST> Error(const char *Str) {
fprintf(stderr, "Error: %s\n", Str);
/// LogError* - These are little helper functions for error handling.
std::unique_ptr<ExprAST> LogError(const char *Str) {
fprintf(stderr, "LogError: %s\n", Str);
return nullptr;
}
std::unique_ptr<PrototypeAST> ErrorP(const char *Str) {
Error(Str);
std::unique_ptr<PrototypeAST> LogErrorP(const char *Str) {
LogError(Str);
return nullptr;
}
The ``Error`` routines are simple helper routines that our parser will
The ``LogError`` routines are simple helper routines that our parser will
use to handle errors. The error recovery in our parser will not be the
best and is not particular user-friendly, but it will be enough for our
tutorial. These routines make it easier to handle errors in routines
@ -233,7 +233,7 @@ the parenthesis operator is defined like this:
return nullptr;
if (CurTok != ')')
return Error("expected ')'");
return LogError("expected ')'");
getNextToken(); // eat ).
return V;
}
@ -241,7 +241,7 @@ the parenthesis operator is defined like this:
This function illustrates a number of interesting things about the
parser:
1) It shows how we use the Error routines. When called, this function
1) It shows how we use the LogError routines. When called, this function
expects that the current token is a '(' token, but after parsing the
subexpression, it is possible that there is no ')' waiting. For example,
if the user types in "(4 x" instead of "(4)", the parser should emit an
@ -288,7 +288,7 @@ function calls:
break;
if (CurTok != ',')
return Error("Expected ')' or ',' in argument list");
return LogError("Expected ')' or ',' in argument list");
getNextToken();
}
}
@ -324,7 +324,7 @@ primary expression, we need to determine what sort of expression it is:
static std::unique_ptr<ExprAST> ParsePrimary() {
switch (CurTok) {
default:
return Error("unknown token when expecting an expression");
return LogError("unknown token when expecting an expression");
case tok_identifier:
return ParseIdentifierExpr();
case tok_number:
@ -571,20 +571,20 @@ expressions):
/// ::= id '(' id* ')'
static std::unique_ptr<PrototypeAST> ParsePrototype() {
if (CurTok != tok_identifier)
return ErrorP("Expected function name in prototype");
return LogErrorP("Expected function name in prototype");
std::string FnName = IdentifierStr;
getNextToken();
if (CurTok != '(')
return ErrorP("Expected '(' in prototype");
return LogErrorP("Expected '(' in prototype");
// Read the list of argument names.
std::vector<std::string> ArgNames;
while (getNextToken() == tok_identifier)
ArgNames.push_back(IdentifierStr);
if (CurTok != ')')
return ErrorP("Expected ')' in prototype");
return LogErrorP("Expected ')' in prototype");
// success.
getNextToken(); // eat ')'.

View File

@ -67,7 +67,7 @@ way to model this. Again, this tutorial won't dwell on good software
engineering practices: for our purposes, adding a virtual method is
simplest.
The second thing we want is an "Error" method like we used for the
The second thing we want is an "LogError" method like we used for the
parser, which will be used to report errors found during code generation
(for example, use of an undeclared parameter):
@ -77,8 +77,8 @@ parser, which will be used to report errors found during code generation
static IRBuilder<> Builder(getGlobalContext());
static std::map<std::string, Value*> NamedValues;
Value *ErrorV(const char *Str) {
Error(Str);
Value *LogErrorV(const char *Str) {
LogError(Str);
return nullptr;
}
@ -133,7 +133,7 @@ are all uniqued together and shared. For this reason, the API uses the
// Look this variable up in the function.
Value *V = NamedValues[Name];
if (!V)
ErrorV("Unknown variable name");
LogErrorV("Unknown variable name");
return V;
}
@ -168,7 +168,7 @@ variables <LangImpl7.html#user-defined-local-variables>`_.
return Builder.CreateUIToFP(L, Type::getDoubleTy(getGlobalContext()),
"booltmp");
default:
return ErrorV("invalid binary operator");
return LogErrorV("invalid binary operator");
}
}
@ -214,11 +214,11 @@ would return 0.0 and -1.0, depending on the input value.
// Look up the name in the global module table.
Function *CalleeF = TheModule->getFunction(Callee);
if (!CalleeF)
return ErrorV("Unknown function referenced");
return LogErrorV("Unknown function referenced");
// If argument mismatch error.
if (CalleeF->arg_size() != Args.size())
return ErrorV("Incorrect # arguments passed");
return LogErrorV("Incorrect # arguments passed");
std::vector<Value *> ArgsV;
for (unsigned i = 0, e = Args.size(); i != e; ++i) {
@ -328,7 +328,7 @@ codegen and attach a function body.
return nullptr;
if (!TheFunction->empty())
return (Function*)ErrorV("Function cannot be redefined.");
return (Function*)LogErrorV("Function cannot be redefined.");
For function definitions, we start by searching TheModule's symbol table for an

View File

@ -127,7 +127,7 @@ First we define a new parsing function:
return nullptr;
if (CurTok != tok_then)
return Error("expected then");
return LogError("expected then");
getNextToken(); // eat the then
auto Then = ParseExpression();
@ -135,7 +135,7 @@ First we define a new parsing function:
return nullptr;
if (CurTok != tok_else)
return Error("expected else");
return LogError("expected else");
getNextToken();
@ -154,7 +154,7 @@ Next we hook it up as a primary expression:
static std::unique_ptr<ExprAST> ParsePrimary() {
switch (CurTok) {
default:
return Error("unknown token when expecting an expression");
return LogError("unknown token when expecting an expression");
case tok_identifier:
return ParseIdentifierExpr();
case tok_number:
@ -518,13 +518,13 @@ value to null in the AST node:
getNextToken(); // eat the for.
if (CurTok != tok_identifier)
return Error("expected identifier after for");
return LogError("expected identifier after for");
std::string IdName = IdentifierStr;
getNextToken(); // eat identifier.
if (CurTok != '=')
return Error("expected '=' after for");
return LogError("expected '=' after for");
getNextToken(); // eat '='.
@ -532,7 +532,7 @@ value to null in the AST node:
if (!Start)
return nullptr;
if (CurTok != ',')
return Error("expected ',' after for start value");
return LogError("expected ',' after for start value");
getNextToken();
auto End = ParseExpression();
@ -549,7 +549,7 @@ value to null in the AST node:
}
if (CurTok != tok_in)
return Error("expected 'in' after for");
return LogError("expected 'in' after for");
getNextToken(); // eat 'in'.
auto Body = ParseExpression();

View File

@ -187,13 +187,13 @@ static int GetTokPrecedence() {
return TokPrec;
}
/// Error* - These are little helper functions for error handling.
std::unique_ptr<ExprAST> Error(const char *Str) {
/// LogError* - These are little helper functions for error handling.
std::unique_ptr<ExprAST> LogError(const char *Str) {
fprintf(stderr, "Error: %s\n", Str);
return nullptr;
}
std::unique_ptr<PrototypeAST> ErrorP(const char *Str) {
Error(Str);
std::unique_ptr<PrototypeAST> LogErrorP(const char *Str) {
LogError(Str);
return nullptr;
}
@ -214,7 +214,7 @@ static std::unique_ptr<ExprAST> ParseParenExpr() {
return nullptr;
if (CurTok != ')')
return Error("expected ')'");
return LogError("expected ')'");
getNextToken(); // eat ).
return V;
}
@ -244,7 +244,7 @@ static std::unique_ptr<ExprAST> ParseIdentifierExpr() {
break;
if (CurTok != ',')
return Error("Expected ')' or ',' in argument list");
return LogError("Expected ')' or ',' in argument list");
getNextToken();
}
}
@ -262,7 +262,7 @@ static std::unique_ptr<ExprAST> ParseIdentifierExpr() {
static std::unique_ptr<ExprAST> ParsePrimary() {
switch (CurTok) {
default:
return Error("unknown token when expecting an expression");
return LogError("unknown token when expecting an expression");
case tok_identifier:
return ParseIdentifierExpr();
case tok_number:
@ -324,19 +324,19 @@ static std::unique_ptr<ExprAST> ParseExpression() {
/// ::= id '(' id* ')'
static std::unique_ptr<PrototypeAST> ParsePrototype() {
if (CurTok != tok_identifier)
return ErrorP("Expected function name in prototype");
return LogErrorP("Expected function name in prototype");
std::string FnName = IdentifierStr;
getNextToken();
if (CurTok != '(')
return ErrorP("Expected '(' in prototype");
return LogErrorP("Expected '(' in prototype");
std::vector<std::string> ArgNames;
while (getNextToken() == tok_identifier)
ArgNames.push_back(IdentifierStr);
if (CurTok != ')')
return ErrorP("Expected ')' in prototype");
return LogErrorP("Expected ')' in prototype");
// success.
getNextToken(); // eat ')'.

View File

@ -189,14 +189,14 @@ static int GetTokPrecedence() {
return TokPrec;
}
/// Error* - These are little helper functions for error handling.
std::unique_ptr<ExprAST> Error(const char *Str) {
/// LogError* - These are little helper functions for error handling.
std::unique_ptr<ExprAST> LogError(const char *Str) {
fprintf(stderr, "Error: %s\n", Str);
return nullptr;
}
std::unique_ptr<PrototypeAST> ErrorP(const char *Str) {
Error(Str);
std::unique_ptr<PrototypeAST> LogErrorP(const char *Str) {
LogError(Str);
return nullptr;
}
@ -217,7 +217,7 @@ static std::unique_ptr<ExprAST> ParseParenExpr() {
return nullptr;
if (CurTok != ')')
return Error("expected ')'");
return LogError("expected ')'");
getNextToken(); // eat ).
return V;
}
@ -247,7 +247,7 @@ static std::unique_ptr<ExprAST> ParseIdentifierExpr() {
break;
if (CurTok != ',')
return Error("Expected ')' or ',' in argument list");
return LogError("Expected ')' or ',' in argument list");
getNextToken();
}
}
@ -265,7 +265,7 @@ static std::unique_ptr<ExprAST> ParseIdentifierExpr() {
static std::unique_ptr<ExprAST> ParsePrimary() {
switch (CurTok) {
default:
return Error("unknown token when expecting an expression");
return LogError("unknown token when expecting an expression");
case tok_identifier:
return ParseIdentifierExpr();
case tok_number:
@ -327,19 +327,19 @@ static std::unique_ptr<ExprAST> ParseExpression() {
/// ::= id '(' id* ')'
static std::unique_ptr<PrototypeAST> ParsePrototype() {
if (CurTok != tok_identifier)
return ErrorP("Expected function name in prototype");
return LogErrorP("Expected function name in prototype");
std::string FnName = IdentifierStr;
getNextToken();
if (CurTok != '(')
return ErrorP("Expected '(' in prototype");
return LogErrorP("Expected '(' in prototype");
std::vector<std::string> ArgNames;
while (getNextToken() == tok_identifier)
ArgNames.push_back(IdentifierStr);
if (CurTok != ')')
return ErrorP("Expected ')' in prototype");
return LogErrorP("Expected ')' in prototype");
// success.
getNextToken(); // eat ')'.
@ -384,8 +384,8 @@ static std::unique_ptr<Module> TheModule;
static IRBuilder<> Builder(getGlobalContext());
static std::map<std::string, Value *> NamedValues;
Value *ErrorV(const char *Str) {
Error(Str);
Value *LogErrorV(const char *Str) {
LogError(Str);
return nullptr;
}
@ -397,7 +397,7 @@ Value *VariableExprAST::codegen() {
// Look this variable up in the function.
Value *V = NamedValues[Name];
if (!V)
return ErrorV("Unknown variable name");
return LogErrorV("Unknown variable name");
return V;
}
@ -420,7 +420,7 @@ Value *BinaryExprAST::codegen() {
return Builder.CreateUIToFP(L, Type::getDoubleTy(getGlobalContext()),
"booltmp");
default:
return ErrorV("invalid binary operator");
return LogErrorV("invalid binary operator");
}
}
@ -428,11 +428,11 @@ Value *CallExprAST::codegen() {
// Look up the name in the global module table.
Function *CalleeF = TheModule->getFunction(Callee);
if (!CalleeF)
return ErrorV("Unknown function referenced");
return LogErrorV("Unknown function referenced");
// If argument mismatch error.
if (CalleeF->arg_size() != Args.size())
return ErrorV("Incorrect # arguments passed");
return LogErrorV("Incorrect # arguments passed");
std::vector<Value *> ArgsV;
for (unsigned i = 0, e = Args.size(); i != e; ++i) {

View File

@ -196,14 +196,14 @@ static int GetTokPrecedence() {
return TokPrec;
}
/// Error* - These are little helper functions for error handling.
std::unique_ptr<ExprAST> Error(const char *Str) {
/// LogError* - These are little helper functions for error handling.
std::unique_ptr<ExprAST> LogError(const char *Str) {
fprintf(stderr, "Error: %s\n", Str);
return nullptr;
}
std::unique_ptr<PrototypeAST> ErrorP(const char *Str) {
Error(Str);
std::unique_ptr<PrototypeAST> LogErrorP(const char *Str) {
LogError(Str);
return nullptr;
}
@ -224,7 +224,7 @@ static std::unique_ptr<ExprAST> ParseParenExpr() {
return nullptr;
if (CurTok != ')')
return Error("expected ')'");
return LogError("expected ')'");
getNextToken(); // eat ).
return V;
}
@ -254,7 +254,7 @@ static std::unique_ptr<ExprAST> ParseIdentifierExpr() {
break;
if (CurTok != ',')
return Error("Expected ')' or ',' in argument list");
return LogError("Expected ')' or ',' in argument list");
getNextToken();
}
}
@ -272,7 +272,7 @@ static std::unique_ptr<ExprAST> ParseIdentifierExpr() {
static std::unique_ptr<ExprAST> ParsePrimary() {
switch (CurTok) {
default:
return Error("unknown token when expecting an expression");
return LogError("unknown token when expecting an expression");
case tok_identifier:
return ParseIdentifierExpr();
case tok_number:
@ -334,19 +334,19 @@ static std::unique_ptr<ExprAST> ParseExpression() {
/// ::= id '(' id* ')'
static std::unique_ptr<PrototypeAST> ParsePrototype() {
if (CurTok != tok_identifier)
return ErrorP("Expected function name in prototype");
return LogErrorP("Expected function name in prototype");
std::string FnName = IdentifierStr;
getNextToken();
if (CurTok != '(')
return ErrorP("Expected '(' in prototype");
return LogErrorP("Expected '(' in prototype");
std::vector<std::string> ArgNames;
while (getNextToken() == tok_identifier)
ArgNames.push_back(IdentifierStr);
if (CurTok != ')')
return ErrorP("Expected ')' in prototype");
return LogErrorP("Expected ')' in prototype");
// success.
getNextToken(); // eat ')'.
@ -394,8 +394,8 @@ static std::unique_ptr<legacy::FunctionPassManager> TheFPM;
static std::unique_ptr<KaleidoscopeJIT> TheJIT;
static std::map<std::string, std::unique_ptr<PrototypeAST>> FunctionProtos;
Value *ErrorV(const char *Str) {
Error(Str);
Value *LogErrorV(const char *Str) {
LogError(Str);
return nullptr;
}
@ -422,7 +422,7 @@ Value *VariableExprAST::codegen() {
// Look this variable up in the function.
Value *V = NamedValues[Name];
if (!V)
return ErrorV("Unknown variable name");
return LogErrorV("Unknown variable name");
return V;
}
@ -445,7 +445,7 @@ Value *BinaryExprAST::codegen() {
return Builder.CreateUIToFP(L, Type::getDoubleTy(getGlobalContext()),
"booltmp");
default:
return ErrorV("invalid binary operator");
return LogErrorV("invalid binary operator");
}
}
@ -453,11 +453,11 @@ Value *CallExprAST::codegen() {
// Look up the name in the global module table.
Function *CalleeF = getFunction(Callee);
if (!CalleeF)
return ErrorV("Unknown function referenced");
return LogErrorV("Unknown function referenced");
// If argument mismatch error.
if (CalleeF->arg_size() != Args.size())
return ErrorV("Incorrect # arguments passed");
return LogErrorV("Incorrect # arguments passed");
std::vector<Value *> ArgsV;
for (unsigned i = 0, e = Args.size(); i != e; ++i) {

View File

@ -238,14 +238,14 @@ static int GetTokPrecedence() {
return TokPrec;
}
/// Error* - These are little helper functions for error handling.
std::unique_ptr<ExprAST> Error(const char *Str) {
/// LogError* - These are little helper functions for error handling.
std::unique_ptr<ExprAST> LogError(const char *Str) {
fprintf(stderr, "Error: %s\n", Str);
return nullptr;
}
std::unique_ptr<PrototypeAST> ErrorP(const char *Str) {
Error(Str);
std::unique_ptr<PrototypeAST> LogErrorP(const char *Str) {
LogError(Str);
return nullptr;
}
@ -266,7 +266,7 @@ static std::unique_ptr<ExprAST> ParseParenExpr() {
return nullptr;
if (CurTok != ')')
return Error("expected ')'");
return LogError("expected ')'");
getNextToken(); // eat ).
return V;
}
@ -296,7 +296,7 @@ static std::unique_ptr<ExprAST> ParseIdentifierExpr() {
break;
if (CurTok != ',')
return Error("Expected ')' or ',' in argument list");
return LogError("Expected ')' or ',' in argument list");
getNextToken();
}
}
@ -317,7 +317,7 @@ static std::unique_ptr<ExprAST> ParseIfExpr() {
return nullptr;
if (CurTok != tok_then)
return Error("expected then");
return LogError("expected then");
getNextToken(); // eat the then
auto Then = ParseExpression();
@ -325,7 +325,7 @@ static std::unique_ptr<ExprAST> ParseIfExpr() {
return nullptr;
if (CurTok != tok_else)
return Error("expected else");
return LogError("expected else");
getNextToken();
@ -342,20 +342,20 @@ static std::unique_ptr<ExprAST> ParseForExpr() {
getNextToken(); // eat the for.
if (CurTok != tok_identifier)
return Error("expected identifier after for");
return LogError("expected identifier after for");
std::string IdName = IdentifierStr;
getNextToken(); // eat identifier.
if (CurTok != '=')
return Error("expected '=' after for");
return LogError("expected '=' after for");
getNextToken(); // eat '='.
auto Start = ParseExpression();
if (!Start)
return nullptr;
if (CurTok != ',')
return Error("expected ',' after for start value");
return LogError("expected ',' after for start value");
getNextToken();
auto End = ParseExpression();
@ -372,7 +372,7 @@ static std::unique_ptr<ExprAST> ParseForExpr() {
}
if (CurTok != tok_in)
return Error("expected 'in' after for");
return LogError("expected 'in' after for");
getNextToken(); // eat 'in'.
auto Body = ParseExpression();
@ -392,7 +392,7 @@ static std::unique_ptr<ExprAST> ParseForExpr() {
static std::unique_ptr<ExprAST> ParsePrimary() {
switch (CurTok) {
default:
return Error("unknown token when expecting an expression");
return LogError("unknown token when expecting an expression");
case tok_identifier:
return ParseIdentifierExpr();
case tok_number:
@ -458,19 +458,19 @@ static std::unique_ptr<ExprAST> ParseExpression() {
/// ::= id '(' id* ')'
static std::unique_ptr<PrototypeAST> ParsePrototype() {
if (CurTok != tok_identifier)
return ErrorP("Expected function name in prototype");
return LogErrorP("Expected function name in prototype");
std::string FnName = IdentifierStr;
getNextToken();
if (CurTok != '(')
return ErrorP("Expected '(' in prototype");
return LogErrorP("Expected '(' in prototype");
std::vector<std::string> ArgNames;
while (getNextToken() == tok_identifier)
ArgNames.push_back(IdentifierStr);
if (CurTok != ')')
return ErrorP("Expected ')' in prototype");
return LogErrorP("Expected ')' in prototype");
// success.
getNextToken(); // eat ')'.
@ -518,8 +518,8 @@ static std::unique_ptr<legacy::FunctionPassManager> TheFPM;
static std::unique_ptr<KaleidoscopeJIT> TheJIT;
static std::map<std::string, std::unique_ptr<PrototypeAST>> FunctionProtos;
Value *ErrorV(const char *Str) {
Error(Str);
Value *LogErrorV(const char *Str) {
LogError(Str);
return nullptr;
}
@ -546,7 +546,7 @@ Value *VariableExprAST::codegen() {
// Look this variable up in the function.
Value *V = NamedValues[Name];
if (!V)
return ErrorV("Unknown variable name");
return LogErrorV("Unknown variable name");
return V;
}
@ -569,7 +569,7 @@ Value *BinaryExprAST::codegen() {
return Builder.CreateUIToFP(L, Type::getDoubleTy(getGlobalContext()),
"booltmp");
default:
return ErrorV("invalid binary operator");
return LogErrorV("invalid binary operator");
}
}
@ -577,11 +577,11 @@ Value *CallExprAST::codegen() {
// Look up the name in the global module table.
Function *CalleeF = getFunction(Callee);
if (!CalleeF)
return ErrorV("Unknown function referenced");
return LogErrorV("Unknown function referenced");
// If argument mismatch error.
if (CalleeF->arg_size() != Args.size())
return ErrorV("Incorrect # arguments passed");
return LogErrorV("Incorrect # arguments passed");
std::vector<Value *> ArgsV;
for (unsigned i = 0, e = Args.size(); i != e; ++i) {