libTriton
version 1.0 build 1592
Loading...
Searching...
No Matches
src
libtriton
includes
triton
astSmtRepresentation.hpp
Go to the documentation of this file.
1
2
/*
3
** Copyright (C) - Triton
4
**
5
** This program is under the terms of the Apache License 2.0.
6
*/
7
8
#ifndef TRITON_ASTSMTREPRESENTATION_HPP
9
#define TRITON_ASTSMTREPRESENTATION_HPP
10
11
#include <iostream>
12
13
#include <
triton/astRepresentationInterface.hpp
>
14
#include <
triton/ast.hpp
>
15
#include <
triton/dllexport.hpp
>
16
17
18
20
namespace
triton
{
27
namespace
ast {
35
namespace
representations {
43
class
AstSmtRepresentation
:
public
AstRepresentationInterface
{
44
public
:
46
TRITON_EXPORT
AstSmtRepresentation
();
47
49
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::AbstractNode
* node);
50
52
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::ArrayNode
* node);
53
55
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::AssertNode
* node);
56
58
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::BswapNode
* node);
59
61
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::BvNode
* node);
62
64
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::BvaddNode
* node);
65
67
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::BvandNode
* node);
68
70
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::BvashrNode
* node);
71
73
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::BvlshrNode
* node);
74
76
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::BvmulNode
* node);
77
79
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::BvnandNode
* node);
80
82
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::BvnegNode
* node);
83
85
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::BvnorNode
* node);
86
88
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::BvnotNode
* node);
89
91
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::BvorNode
* node);
92
94
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::BvrolNode
* node);
95
97
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::BvrorNode
* node);
98
100
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::BvsdivNode
* node);
101
103
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::BvsgeNode
* node);
104
106
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::BvsgtNode
* node);
107
109
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::BvshlNode
* node);
110
112
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::BvsleNode
* node);
113
115
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::BvsltNode
* node);
116
118
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::BvsmodNode
* node);
119
121
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::BvsremNode
* node);
122
124
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::BvsubNode
* node);
125
127
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::BvudivNode
* node);
128
130
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::BvugeNode
* node);
131
133
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::BvugtNode
* node);
134
136
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::BvuleNode
* node);
137
139
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::BvultNode
* node);
140
142
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::BvuremNode
* node);
143
145
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::BvxnorNode
* node);
146
148
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::BvxorNode
* node);
149
151
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::CompoundNode
* node);
152
154
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::ConcatNode
* node);
155
157
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::DeclareNode
* node);
158
160
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::DistinctNode
* node);
161
163
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::EqualNode
* node);
164
166
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::ExtractNode
* node);
167
169
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::ForallNode
* node);
170
172
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::IffNode
* node);
173
175
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::IntegerNode
* node);
176
178
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::IteNode
* node);
179
181
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::LandNode
* node);
182
184
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::LetNode
* node);
185
187
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::LnotNode
* node);
188
190
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::LorNode
* node);
191
193
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::LxorNode
* node);
194
196
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::ReferenceNode
* node);
197
199
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::SelectNode
* node);
200
202
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::StoreNode
* node);
203
205
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::StringNode
* node);
206
208
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::SxNode
* node);
209
211
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::VariableNode
* node);
212
214
TRITON_EXPORT std::ostream&
print
(std::ostream& stream,
triton::ast::ZxNode
* node);
215
};
216
218
};
220
};
222
};
223
224
#endif
/* TRITON_ASTSMTREPRESENTATION_HPP */
astRepresentationInterface.hpp
ast.hpp
triton::ast::AbstractNode
Abstract node.
Definition
ast.hpp:68
triton::ast::ArrayNode
(Array (_ BitVec indexSize) (_ BitVec 8)) node
Definition
ast.hpp:193
triton::ast::AssertNode
(assert <expr>) node
Definition
ast.hpp:231
triton::ast::BswapNode
(bswap <expr>) node
Definition
ast.hpp:242
triton::ast::BvNode
(_ bv<value> <size>) node
Definition
ast.hpp:574
triton::ast::BvaddNode
(bvadd <expr1> <expr2>) node
Definition
ast.hpp:253
triton::ast::BvandNode
(bvand <expr1> <expr2>) node
Definition
ast.hpp:264
triton::ast::BvashrNode
(bvashr <expr1> <expr2>) node
Definition
ast.hpp:275
triton::ast::BvlshrNode
(bvlshr <expr1> <expr2>) node
Definition
ast.hpp:286
triton::ast::BvmulNode
(bvmul <expr1> <expr2>) node
Definition
ast.hpp:297
triton::ast::BvnandNode
(bvnand <expr1> <expr2>) node
Definition
ast.hpp:308
triton::ast::BvnegNode
(bvneg <expr>) node
Definition
ast.hpp:319
triton::ast::BvnorNode
(bvnor <expr1> <expr2>) node
Definition
ast.hpp:330
triton::ast::BvnotNode
(bvnot <expr>) node
Definition
ast.hpp:341
triton::ast::BvorNode
(bvor <expr1> <expr2>) node
Definition
ast.hpp:352
triton::ast::BvrolNode
((_ rotate_left rot) <expr>) node
Definition
ast.hpp:363
triton::ast::BvrorNode
((_ rotate_right rot) <expr>) node
Definition
ast.hpp:375
triton::ast::BvsdivNode
(bvsdiv <expr1> <expr2>) node
Definition
ast.hpp:387
triton::ast::BvsgeNode
(bvsge <expr1> <expr2>) node
Definition
ast.hpp:398
triton::ast::BvsgtNode
(bvsgt <expr1> <expr2>) node
Definition
ast.hpp:409
triton::ast::BvshlNode
(bvshl <expr1> <expr2>) node
Definition
ast.hpp:420
triton::ast::BvsleNode
(bvsle <expr1> <expr2>) node
Definition
ast.hpp:431
triton::ast::BvsltNode
(bvslt <expr1> <expr2>) node
Definition
ast.hpp:442
triton::ast::BvsmodNode
(bvsmod <expr1> <expr2>) node
Definition
ast.hpp:453
triton::ast::BvsremNode
(bvsrem <expr1> <expr2>) node
Definition
ast.hpp:464
triton::ast::BvsubNode
(bvsub <expr1> <expr2>) node
Definition
ast.hpp:475
triton::ast::BvudivNode
(bvudiv <expr1> <expr2>) node
Definition
ast.hpp:486
triton::ast::BvugeNode
(bvuge <expr1> <expr2>) node
Definition
ast.hpp:497
triton::ast::BvugtNode
(bvugt <expr1> <expr2>) node
Definition
ast.hpp:508
triton::ast::BvuleNode
(bvule <expr1> <expr2>) node
Definition
ast.hpp:519
triton::ast::BvultNode
(bvult <expr1> <expr2>) node
Definition
ast.hpp:530
triton::ast::BvuremNode
(bvurem <expr1> <expr2>) node
Definition
ast.hpp:541
triton::ast::BvxnorNode
(bvxnor <expr1> <expr2>) node
Definition
ast.hpp:552
triton::ast::BvxorNode
(bvxor <expr1> <expr2>) node
Definition
ast.hpp:563
triton::ast::CompoundNode
[<expr1> <expr2> <expr3> ...] node
Definition
ast.hpp:585
triton::ast::ConcatNode
(concat <expr1> <expr2> ...) node
Definition
ast.hpp:601
triton::ast::DeclareNode
(declare-fun <var_name> () (_ BitVec <var_size>)) node
Definition
ast.hpp:618
triton::ast::DistinctNode
(distinct <expr1> <expr2> ...) node
Definition
ast.hpp:629
triton::ast::EqualNode
(= <expr1> <expr2> ...) node
Definition
ast.hpp:640
triton::ast::ExtractNode
((_ extract <high> <low>) <expr>) node
Definition
ast.hpp:651
triton::ast::ForallNode
(forall ((x (_ BitVec <size>)), ...) body)
Definition
ast.hpp:662
triton::ast::IffNode
(iff <expr1> <expr2>)
Definition
ast.hpp:679
triton::ast::IntegerNode
Integer node.
Definition
ast.hpp:690
triton::ast::IteNode
(ite <ifExpr> <thenExpr> <elseExpr>)
Definition
ast.hpp:705
triton::ast::LandNode
(and <expr1> <expr2>)
Definition
ast.hpp:716
triton::ast::LetNode
(let ((<alias> <expr2>)) <expr3>)
Definition
ast.hpp:733
triton::ast::LnotNode
(lnot <expr>)
Definition
ast.hpp:744
triton::ast::LorNode
(or <expr1> <expr2>)
Definition
ast.hpp:755
triton::ast::LxorNode
(xor <expr1> <expr2>)
Definition
ast.hpp:772
triton::ast::ReferenceNode
Reference node.
Definition
ast.hpp:789
triton::ast::SelectNode
(select array index)
Definition
ast.hpp:804
triton::ast::StoreNode
(store array index expr)
Definition
ast.hpp:816
triton::ast::StringNode
String node.
Definition
ast.hpp:852
triton::ast::SxNode
((_ sign_extend sizeExt) <expr>) node
Definition
ast.hpp:867
triton::ast::VariableNode
Variable node.
Definition
ast.hpp:878
triton::ast::ZxNode
((_ zero_extend sizeExt) <expr>) node
Definition
ast.hpp:893
triton::ast::representations::AstRepresentationInterface
The AST representation interface.
Definition
astRepresentationInterface.hpp:45
triton::ast::representations::AstSmtRepresentation
SMT representation.
Definition
astSmtRepresentation.hpp:43
triton::ast::representations::AstSmtRepresentation::AstSmtRepresentation
TRITON_EXPORT AstSmtRepresentation()
Constructor.
Definition
astSmtRepresentation.cpp:19
triton::ast::representations::AstSmtRepresentation::print
TRITON_EXPORT std::ostream & print(std::ostream &stream, triton::ast::AbstractNode *node)
Displays the node according to the representation mode.
Definition
astSmtRepresentation.cpp:24
dllexport.hpp
triton
The Triton namespace.
Definition
architecture.cpp:27
Generated by
1.10.0