1#include "parseIdentifierOrStringLiteral.h"
2
3#include "ExpressionElementParsers.h"
4#include "ASTLiteral.h"
5#include "ASTIdentifier.h"
6#include <Common/typeid_cast.h>
7
8namespace DB
9{
10
11bool parseIdentifierOrStringLiteral(IParser::Pos & pos, Expected & expected, String & result)
12{
13 ASTPtr res;
14
15 if (!ParserIdentifier().parse(pos, res, expected))
16 {
17 if (!ParserStringLiteral().parse(pos, res, expected))
18 return false;
19
20 result = res->as<ASTLiteral &>().value.safeGet<String>();
21 }
22 else
23 result = getIdentifierName(res);
24
25 return true;
26}
27
28}
29