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::plus:
17 return BinaryOpKind::Add;
18 case Token::minus:
19 return BinaryOpKind::Sub;
20 case Token::star:
21 return BinaryOpKind::Mul;
22 case Token::slash:
23 return BinaryOpKind::Div;
24 case Token::percent:
25 return BinaryOpKind::Rem;
26 default:
27 break;
28 }
29 llvm_unreachable("Unknown binary operator kind.");
30}
31
32llvm::Expected<lldb::ValueObjectSP> ErrorNode::Accept(Visitor *v) const {
33 llvm_unreachable("Attempting to Visit a DIL ErrorNode.");
34}
35
36llvm::Expected<lldb::ValueObjectSP> IdentifierNode::Accept(Visitor *v) const {
37 return v->Visit(*this);
38}
39
40llvm::Expected<lldb::ValueObjectSP> MemberOfNode::Accept(Visitor *v) const {
41 return v->Visit(*this);
42}
43
44llvm::Expected<lldb::ValueObjectSP> UnaryOpNode::Accept(Visitor *v) const {
45 return v->Visit(*this);
46}
47
48llvm::Expected<lldb::ValueObjectSP> BinaryOpNode::Accept(Visitor *v) const {
49 return v->Visit(*this);
50}
51
52llvm::Expected<lldb::ValueObjectSP>
54 return v->Visit(*this);
55}
56
57llvm::Expected<lldb::ValueObjectSP>
59 return v->Visit(*this);
60}
61
62llvm::Expected<lldb::ValueObjectSP>
64 return v->Visit(*this);
65}
66
67llvm::Expected<lldb::ValueObjectSP> FloatLiteralNode::Accept(Visitor *v) const {
68 return v->Visit(*this);
69}
70
71llvm::Expected<lldb::ValueObjectSP>
73 return v->Visit(*this);
74}
75
76llvm::Expected<lldb::ValueObjectSP> CastNode::Accept(Visitor *v) const {
77 return v->Visit(*this);
78}
79
80} // namespace lldb_private::dil
llvm::Expected< lldb::ValueObjectSP > Accept(Visitor *v) const override
Definition DILAST.cpp:53
llvm::Expected< lldb::ValueObjectSP > Accept(Visitor *v) const override
Definition DILAST.cpp:48
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:72
llvm::Expected< lldb::ValueObjectSP > Accept(Visitor *v) const override
Definition DILAST.cpp:76
llvm::Expected< lldb::ValueObjectSP > Accept(Visitor *v) const override
Definition DILAST.cpp:32
llvm::Expected< lldb::ValueObjectSP > Accept(Visitor *v) const override
Definition DILAST.cpp:67
llvm::Expected< lldb::ValueObjectSP > Accept(Visitor *v) const override
Definition DILAST.cpp:36
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:40
llvm::Expected< lldb::ValueObjectSP > Accept(Visitor *v) const override
Definition DILAST.cpp:44
This class contains one Visit method for each specialized type of DIL AST node.
Definition DILAST.h:322
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