Now checks for correct parameters to main()
git-svn-id: http://picoc.googlecode.com/svn/trunk@517 21eae674-98b7-11dd-bd71-f92a316d2d60
This commit is contained in:
parent
6dd3e69fa5
commit
19b22261d3
11
parse.c
11
parse.c
|
@ -127,6 +127,17 @@ struct Value *ParseFunctionDefinition(struct ParseState *Parser, struct ValueTyp
|
||||||
if (FuncValue->Val->FuncDef.NumParams != 0 && Token != TokenCloseBracket && Token != TokenComma && Token != TokenEllipsis)
|
if (FuncValue->Val->FuncDef.NumParams != 0 && Token != TokenCloseBracket && Token != TokenComma && Token != TokenEllipsis)
|
||||||
ProgramFail(&ParamParser, "bad parameter");
|
ProgramFail(&ParamParser, "bad parameter");
|
||||||
|
|
||||||
|
if (strcmp(Identifier, "main") == 0)
|
||||||
|
{
|
||||||
|
/* make sure it's int main() */
|
||||||
|
if (FuncValue->Val->FuncDef.ReturnType != &IntType)
|
||||||
|
ProgramFail(Parser, "main() should return an int");
|
||||||
|
|
||||||
|
if (FuncValue->Val->FuncDef.NumParams != 0 &&
|
||||||
|
(FuncValue->Val->FuncDef.NumParams != 2 || FuncValue->Val->FuncDef.ParamType[0] != &IntType) )
|
||||||
|
ProgramFail(Parser, "bad parameters to main()");
|
||||||
|
}
|
||||||
|
|
||||||
/* look for a function body */
|
/* look for a function body */
|
||||||
Token = LexGetToken(Parser, NULL, FALSE);
|
Token = LexGetToken(Parser, NULL, FALSE);
|
||||||
if (Token == TokenSemicolon)
|
if (Token == TokenSemicolon)
|
||||||
|
|
Loading…
Reference in a new issue