I got a parse error when compliing the following code (its attached). They are on lines 113, 119, and 125. The complier says parse error before '}'.
Printable View
I got a parse error when compliing the following code (its attached). They are on lines 113, 119, and 125. The complier says parse error before '}'.
What's in battleKnight.cpp, battleBarbarian.cpp, and battleGoblin.cpp?
Parse error is usually a 'grammatical' error of some sort, like a missing semicolon. In this case the compilier came across a closing brace when it was expecting something else.
So you think the problem is in "battleKnight", "battleBarbarian", and in "battleGoblin"? Well, I'm gonna attach "battleKnight" to this message. "battleBarabrian", and "battleGoblin" is pretty much the same.
Assuming I counted correctly, on line 148 of battleknight.cpp there's an extra '}'
Extra/missing { } ; ( ) etc, etc...are the kinds of things that normally cause parse errors.
fletch
fletch is right look at the last bracket (}) in the file. Where's the matching one? Nada.:)
Okay. It works. Thanks Fletch.
I was updating this program and I came across some errors again. Below (attached) are 2 of the files. It says that there are errors but I can't find them.
Here's the other file.
What were the errors?
Line / Unit / Message
147 / ROA_v3-0.cpp / In file included from ... ROA_v3-0.cpp
/ cityBertopia.cpp / [Warning] In function 'void cityBertopia()'
51 / cityBertopia.cpp / parse before '{'
71 / cityBertopia.cpp / 'choice2' undeclared [first use this function]
/ / [Build Error] (Each undeclared identifier is reported only once
/ / [Build Error] for each function it appears in.)
/ / [Build Error] At top level
147 / ROA_v3-0.cpp / parse error before '}'
You're getting creative ;)
I think that your problem arises from the fact that you've declared the function main2() inside the function cityBertopia(). While I'm not 100% sure that it's illegal per se, I do know that it is definitely poor programming practice. I'd recommend that you move the main2() function out of cityBertopia and see if that solves your problem.
fletch
There isn't a "main2" in "cityBertopia" so I think you mean "menu2". Anyways, "menu2" ISN'T declared in "cityBertopia". Its declared in "ROA_v3-0".
Yes, I did mean 'menu2' instead of 'main2'.
At the top of ROA_v3-0.cpp you've declared a function prototype for menu2(). In fact, you've declared two prototypes for the same funcion. However, there is no code in ROA_v3-0.cpp for menu2().
Here you've declared a function cityBertopia(). Because the #include statement is inside the {braces}, everything in the file cityBertopia.cpp is a part of function cityBertopia(). I'll put the two together so that you can see this.Code:void cityBertopia()
{
#include "cityBertopia.cpp"
}
Starting with the statement 'int menu2()' you began defining the function menu2(). If you count the braces, it's easy to see that menu2() is being defined inside the function cityBertopia().Code:void cityBertopia()
{
//Switch Statment
bool exit = false;
for ( ; ; )
{
int choice2 = menu2();
switch(choice2)
{
//switch statement edited for space
}
if (exit)
break;
}
//Screen
int menu2()
{
int choice2;
cout << "The city you are currently in is Bertopia. \n\n";
cout << "**** Menu ****\n\n";
cout << "(1) Battle \n";
cout << "(2) Shop \n";
cout << "(3) Train \n";
cout << "(4) Check Status \n";
cout << "(5) Inventory \n";
cout << "------ \n";
cout << "(6) Go east or Mordavia \n";
cout << "(7) Go south to Dinxopolis \n";
cout << "(8) Go south east to Swamp City. \n";
cout << "------ \n";
cout << "(9) Save Game \n";
cout << "(10) Load Saved Game \n";
cout << "(11) Quit \n";
cout << ": ";
cin >> choice2;
return choice2;
}
}
fletch
So what would you suggest?
Except that it's menu2(), not main2.Quote:
I'd recommend that you move the main2() function out of cityBertopia and see if that solves your problem.
I tried moving "menu2()" out of "cityBertopia". But it just causes more errors. If it matters, I moved "int choice = menu2();" out. I don't think I can move just "menu2()".
roa_v3-0.cpp
citybertopia.cppCode:int menu2()
{
int choice2;
cout << "The city you are currently in is Bertopia. \n\n";
cout << "**** Menu ****\n\n";
cout << "(1) Battle \n";
cout << "(2) Shop \n";
cout << "(3) Train \n";
cout << "(4) Check Status \n";
cout << "(5) Inventory \n";
cout << "------ \n";
cout << "(6) Go east or Mordavia \n";
cout << "(7) Go south to Dinxopolis \n";
cout << "(8) Go south east to Swamp City. \n";
cout << "------ \n";
cout << "(9) Save Game \n";
cout << "(10) Load Saved Game \n";
cout << "(11) Quit \n";
cout << ": ";
cin >> choice2;
return choice2;
}
void cityBertopia()
{
#include "cityBertopia.cpp"
}
Code:bool exit = false;
do
{
int choice2 = menu2();
switch(choice2)
{
case (1):
battleKnight();
break;
case (2):
shop();
break;
case (3):
train();
break;
case (4):
check_status();
break;
case (5):
inventory();
break;
case (6):
cityBertopia();
break;
case (7):
cityDinxopolis();
break;
case (8):
cityMordavia();
break;
case (9):
saveFile();
break;
case (10):
loadFile();
break;
case (11):
exit = true;
break;
default:
cout << "Invaild Command. Please select again.\n\n";
break;
}
}while(!exit);
That didn't work. It displayed the same 4 errors.
Bert,
This thread has deteriorated to the point of "Help me. Your last suggestion didn't work, give me another idea."
This is starting to move beyond casual assistance. You need to solve this problem. If you desire to continue programming, you have to learn to understand compiler errors and look through your own code to find the problem. Myself and others are more than willing to assist you, but there has to be effort on your part. There are a lot of talented people here; some of these people program professionally, others are enthusiasts - all generously offer their help and knowledge. Their time is precious. Do not waste their time by asking for help with a problem you have not been willing to spend your own time on.
That said...
Parse errors are typically grammatical errors of some sort; missing punctuation marks such as { } ; ( ) Look through your code and make sure that all of your syntax is correct. Try looking at the code preceeding 'cityBertopia.cpp'
Regardless of its legality, defining functions within other functions is definitely poor practice. Menu2() needs to be its own function, outside of cityBertopia().
If you encounter further problems or have other questions, do not hesitate to ask, but only after you've attempted a solution yourself.
I'm curious as to what you find the problem is and I'd be interested in seeing your finished program. Please let me know.
fletch