Allow open/closing curly braces instead of begin/end to define the body of a function

llvm-svn: 2451
This commit is contained in:
Chris Lattner 2002-05-03 18:23:48 +00:00
parent 732c209e83
commit 1e1a9b4166
2 changed files with 7 additions and 3 deletions

View File

@ -147,7 +147,7 @@ HexFPConstant 0x[0-9A-Fa-f]+
{Comment} { /* Ignore comments for now */ }
begin { return BEGINTOK; }
end { return END; }
end { return ENDTOK; }
true { return TRUE; }
false { return FALSE; }
declare { return DECLARE; }

View File

@ -671,7 +671,7 @@ Module *RunVMAsmParser(const string &Filename, FILE *F) {
%type <StrVal> OptVAR_ID OptAssign
%token IMPLEMENTATION TRUE FALSE BEGINTOK END DECLARE GLOBAL CONSTANT UNINIT
%token IMPLEMENTATION TRUE FALSE BEGINTOK ENDTOK DECLARE GLOBAL CONSTANT UNINIT
%token TO EXCEPT DOTDOTDOT STRING NULL_TOK CONST INTERNAL OPAQUE
// Basic Block Terminating Operators
@ -1205,13 +1205,17 @@ FunctionHeaderH : OptInternal TypesV STRINGCONSTANT '(' ArgList ')' {
}
}
FunctionHeader : FunctionHeaderH ConstPool BEGINTOK {
BEGIN : BEGINTOK | '{'; // Allow BEGIN or '{' to start a function
FunctionHeader : FunctionHeaderH BEGIN {
$$ = CurMeth.CurrentFunction;
// Resolve circular types before we parse the body of the method.
ResolveTypes(CurMeth.LateResolveTypes);
}
END : ENDTOK | '}'; // Allow end of '}' to end a function
Function : BasicBlockList END {
$$ = $1;
}