Skip to content

Commit

Permalink
[Kaleidoscope] Rename Error -> LogError in Chapters 2-5.
Browse files Browse the repository at this point in the history
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
  • Loading branch information
lhames committed Mar 25, 2016
1 parent d7b240a commit 215b61f
Show file tree
Hide file tree
Showing 7 changed files with 92 additions and 92 deletions.
26 changes: 13 additions & 13 deletions docs/tutorial/LangImpl2.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -233,15 +233,15 @@ the parenthesis operator is defined like this:
return nullptr;

if (CurTok != ')')
return Error("expected ')'");
return LogError("expected ')'");
getNextToken(); // eat ).
return V;
}

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
Expand Down Expand Up @@ -288,7 +288,7 @@ function calls:
break;

if (CurTok != ',')
return Error("Expected ')' or ',' in argument list");
return LogError("Expected ')' or ',' in argument list");
getNextToken();
}
}
Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -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 ')'.
Expand Down
16 changes: 8 additions & 8 deletions docs/tutorial/LangImpl3.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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):

Expand All @@ -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;
}
Expand Down Expand Up @@ -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;
}
Expand Down Expand Up @@ -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");
}
}

Expand Down Expand Up @@ -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) {
Expand Down Expand Up @@ -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
Expand Down
14 changes: 7 additions & 7 deletions docs/tutorial/LangImpl5.rst
Original file line number Diff line number Diff line change
Expand Up @@ -127,15 +127,15 @@ 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();
if (!Then)
return nullptr;

if (CurTok != tok_else)
return Error("expected else");
return LogError("expected else");

getNextToken();

Expand All @@ -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:
Expand Down Expand Up @@ -518,21 +518,21 @@ 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 '='.


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();
Expand All @@ -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();
Expand Down
20 changes: 10 additions & 10 deletions examples/Kaleidoscope/Chapter2/toy.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

Expand All @@ -214,7 +214,7 @@ static std::unique_ptr<ExprAST> ParseParenExpr() {
return nullptr;

if (CurTok != ')')
return Error("expected ')'");
return LogError("expected ')'");
getNextToken(); // eat ).
return V;
}
Expand Down Expand Up @@ -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();
}
}
Expand All @@ -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:
Expand Down Expand Up @@ -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 ')'.
Expand Down
32 changes: 16 additions & 16 deletions examples/Kaleidoscope/Chapter3/toy.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

Expand All @@ -217,7 +217,7 @@ static std::unique_ptr<ExprAST> ParseParenExpr() {
return nullptr;

if (CurTok != ')')
return Error("expected ')'");
return LogError("expected ')'");
getNextToken(); // eat ).
return V;
}
Expand Down Expand Up @@ -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();
}
}
Expand All @@ -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:
Expand Down Expand Up @@ -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 ')'.
Expand Down Expand Up @@ -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;
}

Expand All @@ -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;
}

Expand All @@ -420,19 +420,19 @@ Value *BinaryExprAST::codegen() {
return Builder.CreateUIToFP(L, Type::getDoubleTy(getGlobalContext()),
"booltmp");
default:
return ErrorV("invalid binary operator");
return LogErrorV("invalid binary operator");
}
}

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) {
Expand Down
Loading

0 comments on commit 215b61f

Please sign in to comment.