aboutsummaryrefslogtreecommitdiffstats
path: root/lib/AsmParser
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2002-05-03 18:23:48 +0000
committerChris Lattner <sabre@nondot.org>2002-05-03 18:23:48 +0000
commit9b02cc365ccb53a9476989fbed80cfd29ca7c384 (patch)
tree80289b3b02cc35241170de2c655516b14dc60f64 /lib/AsmParser
parent8fba3a0f3a4b85066b93b52359b13f00062e247b (diff)
downloadexternal_llvm-9b02cc365ccb53a9476989fbed80cfd29ca7c384.zip
external_llvm-9b02cc365ccb53a9476989fbed80cfd29ca7c384.tar.gz
external_llvm-9b02cc365ccb53a9476989fbed80cfd29ca7c384.tar.bz2
Allow open/closing curly braces instead of begin/end to define the body of a function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2451 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AsmParser')
-rw-r--r--lib/AsmParser/Lexer.l2
-rw-r--r--lib/AsmParser/llvmAsmParser.y8
2 files changed, 7 insertions, 3 deletions
diff --git a/lib/AsmParser/Lexer.l b/lib/AsmParser/Lexer.l
index 9cfe9fd..faddcb1 100644
--- a/lib/AsmParser/Lexer.l
+++ b/lib/AsmParser/Lexer.l
@@ -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; }
diff --git a/lib/AsmParser/llvmAsmParser.y b/lib/AsmParser/llvmAsmParser.y
index 697609a..d1feec8 100644
--- a/lib/AsmParser/llvmAsmParser.y
+++ b/lib/AsmParser/llvmAsmParser.y
@@ -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;
}