LLDB mainline
DILAST.cpp
Go to the documentation of this file.
1//===-- DILAST.cpp --------------------------------------------------------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
10#include "llvm/Support/ErrorHandling.h"
11
12namespace lldb_private::dil {
13
15 switch (token_kind) {
16 case Token::equal:
18 case Token::minus:
19 return BinaryOpKind::Sub;
22 case Token::plus:
23 return BinaryOpKind::Add;
26 case Token::star:
27 return BinaryOpKind::Mul;
28 case Token::slash:
29 return BinaryOpKind::Div;
30 case Token::percent:
31 return BinaryOpKind::Rem;
32 case Token::lessless:
33 return BinaryOpKind::Shl;
35 return BinaryOpKind::Shr;
36 default:
37 break;
38 }
39 llvm_unreachable("Unknown binary operator kind.");
40}
41
42llvm::Expected<lldb::ValueObjectSP> ErrorNode::Accept(Visitor *v) const {
43 llvm_unreachable("Attempting to Visit a DIL ErrorNode.");
44}
45
46llvm::Expected<lldb::ValueObjectSP> IdentifierNode::Accept(Visitor *v) const {
47 return v->Visit(*this);
48}
49
50llvm::Expected<lldb::ValueObjectSP> MemberOfNode::Accept(Visitor *v) const {
51 return v->Visit(*this);
52}
53
54llvm::Expected<lldb::ValueObjectSP> UnaryOpNode::Accept(Visitor *v) const {
55 return v->Visit(*this);
56}
57
58llvm::Expected<lldb::ValueObjectSP> BinaryOpNode::Accept(Visitor *v) const {
59 return v->Visit(*this);
60}
61
62llvm::Expected<lldb::ValueObjectSP>
64 return v->Visit(*this);
65}
66
67llvm::Expected<lldb::ValueObjectSP>
69 return v->Visit(*this);
70}
71
72llvm::Expected<lldb::ValueObjectSP>
74 return v->Visit(*this);
75}
76
77llvm::Expected<lldb::ValueObjectSP> FloatLiteralNode::Accept(Visitor *v) const {
78 return v->Visit(*this);
79}
80
81llvm::Expected<lldb::ValueObjectSP>
83 return v->Visit(*this);
84}
85
86llvm::Expected<lldb::ValueObjectSP> CastNode::Accept(Visitor *v) const {
87 return v->Visit(*this);
88}
89
90} // namespace lldb_private::dil
llvm::Expected< lldb::ValueObjectSP > Accept(Visitor *v) const override
Definition DILAST.cpp:63
llvm::Expected< lldb::ValueObjectSP > Accept(Visitor *v) const override
Definition DILAST.cpp:58
llvm::Expected< lldb::ValueObjectSP > Accept(Visitor *v) const override
Definition DILAST.cpp:68
llvm::Expected< lldb::ValueObjectSP > Accept(Visitor *v) const override
Definition DILAST.cpp:82
llvm::Expected< lldb::ValueObjectSP > Accept(Visitor *v) const override
Definition DILAST.cpp:86
llvm::Expected< lldb::ValueObjectSP > Accept(Visitor *v) const override
Definition DILAST.cpp:42
llvm::Expected< lldb::ValueObjectSP > Accept(Visitor *v) const override
Definition DILAST.cpp:77
llvm::Expected< lldb::ValueObjectSP > Accept(Visitor *v) const override
Definition DILAST.cpp:46
llvm::Expected< lldb::ValueObjectSP > Accept(Visitor *v) const override
Definition DILAST.cpp:73
llvm::Expected< lldb::ValueObjectSP > Accept(Visitor *v) const override
Definition DILAST.cpp:50
llvm::Expected< lldb::ValueObjectSP > Accept(Visitor *v) const override
Definition DILAST.cpp:54
This class contains one Visit method for each specialized type of DIL AST node.
Definition DILAST.h:327
virtual llvm::Expected< lldb::ValueObjectSP > Visit(const IdentifierNode &node)=0
BinaryOpKind
The binary operators recognized by DIL.
Definition DILAST.h:44
BinaryOpKind GetBinaryOpKindFromToken(Token::Kind token_kind)
Translates DIL tokens to BinaryOpKind.
Definition DILAST.cpp:14