From 20aebfdb32657e9427c6a2567516dc8fd8843bdb Mon Sep 17 00:00:00 2001 From: Daniel Dunbar Date: Sun, 7 Jun 2009 09:57:01 +0000 Subject: Implement array declarations. - Printing current prints all declarations, and we allow redefinition, since the printer doesn't know what has already been printed. - Names don't print right yet, since the Array* object doesn't have the name. - Various things are unsupported. o Array domain/range must be w32/w8. o Concrete initializers for arrays are unsupported. git-svn-id: https://llvm.org/svn/llvm-project/klee/trunk@73026 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Expr/Lexer.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'lib/Expr/Lexer.cpp') diff --git a/lib/Expr/Lexer.cpp b/lib/Expr/Lexer.cpp index 77e25f62..d8809a53 100644 --- a/lib/Expr/Lexer.cpp +++ b/lib/Expr/Lexer.cpp @@ -34,9 +34,11 @@ const char *Token::getKindName() const { case EndOfFile: return "EndOfFile"; case Equals: return "Equals"; case Identifier: return "Identifier"; + case KWArray: return "KWArray"; case KWFalse: return "KWFalse"; case KWQuery: return "KWQuery"; case KWReserved: return "KWReserved"; + case KWSymbolic: return "KWSymbolic"; case KWTrue: return "KWTrue"; case KWWidth: return "KWWidth"; case LBrace: return "LBrace"; @@ -153,7 +155,7 @@ Token &Lexer::SetIdentifierTokenKind(Token &Result) { case 5: if (memcmp("array", Result.start, 5) == 0) - return SetTokenKind(Result, Token::KWReserved); + return SetTokenKind(Result, Token::KWArray); if (memcmp("false", Result.start, 5) == 0) return SetTokenKind(Result, Token::KWFalse); if (memcmp("query", Result.start, 5) == 0) @@ -169,6 +171,11 @@ Token &Lexer::SetIdentifierTokenKind(Token &Result) { if (memcmp("declare", Result.start, 7) == 0) return SetTokenKind(Result, Token::KWReserved); break; + + case 8: + if (memcmp("symbolic", Result.start, 8) == 0) + return SetTokenKind(Result, Token::KWSymbolic); + break; } if (isReservedKW(Result.start, Length)) -- cgit 1.4.1