C# Класс Reko.Core.Expressions.ExpressionEmitter

Factory class that has the extra benefit of reducing the verbosity of the code.
Показать файл Открыть проект Примеры использования класса

Открытые методы

Метод Описание
AddrOf ( Expression e ) : UnaryExpression
And ( Expression left, Expression right ) : BinaryExpression
And ( Expression left, ulong right ) : BinaryExpression
Array ( DataType elemType, Expression arrayPtr, Expression index ) : ArrayAccess
Byte ( byte b ) : Constant
Cand ( Expression a, Expression b ) : Expression

Short-circuiting 'and' ('&&' in C family of languages)

Cast ( DataType dataType, Expression expr ) : Cast
Comp ( Expression expr ) : Expression
Cond ( Expression expr ) : ConditionOf
Cor ( Expression a, Expression b ) : Expression

Short-circuiting 'or' ('&&' in C family of languages)

Deref ( Expression a ) : Dereference
Dpb ( Expression dst, Expression src, int offset ) : DepositBits
Eq ( Expression a, Expression b ) : BinaryExpression
Eq ( Expression a, int b ) : BinaryExpression
Eq0 ( Expression exp ) : BinaryExpression
FAdd ( Expression a, Expression b ) : Expression
FDiv ( Expression a, Expression b ) : Expression
FEq ( Expression a, Expression b ) : Expression
FGe ( Expression a, Expression b ) : Expression
FGt ( Expression a, Expression b ) : Expression
FLe ( Expression a, Expression b ) : Expression
FLt ( Expression a, Expression b ) : Expression
FMul ( Expression a, Expression b ) : Expression
FNe ( Expression a, Expression b ) : Expression
FNeg ( Expression a ) : Expression
FSub ( Expression a, Expression b ) : BinaryExpression
Field ( DataType dt, Expression e, Reko.Core.Types.Field field ) : FieldAccess
Field ( DataType dt, Expression e, string fieldName ) : FieldAccess
Fn ( Expression e ) : Application
Fn ( Expression fn, DataType retType ) : Application
Fn ( ExternalProcedure ep ) : Application
Fn ( PseudoProcedure ppp ) : Application
Ge ( Expression a, Expression b ) : Expression
Ge ( Expression a, int b ) : Expression
Ge0 ( Expression exp ) : BinaryExpression
Gt ( Expression a, Expression b ) : Expression
Gt ( Expression a, int b ) : Expression
IAdd ( Expression left, Expression right ) : BinaryExpression

Integer addition.

IAdd ( Expression left, int right ) : BinaryExpression
IMul ( Expression left, Expression right ) : Expression
IMul ( Expression left, int c ) : Expression
ISub ( Expression left, Expression right ) : BinaryExpression
ISub ( Expression left, int right ) : BinaryExpression
Int16 ( short n ) : Constant
Int16 ( uint n ) : Constant
Int32 ( int n ) : Constant
Int32 ( uint n ) : Constant
Int8 ( int n ) : Constant
Le ( Expression a, Expression b ) : BinaryExpression
Le ( Expression a, int b ) : BinaryExpression
Load ( DataType dt, Expression ea ) : MemoryAccess
LoadB ( Expression ea ) : Expression
LoadDw ( Expression ea ) : MemoryAccess
LoadW ( Expression ea ) : MemoryAccess
Lt ( Expression a, Expression b ) : BinaryExpression
Lt ( Expression a, int b ) : BinaryExpression
Lt0 ( Expression exp ) : BinaryExpression
MembPtr8 ( Expression ptr, Expression membPtr ) : MemberPointerSelector
MembPtrW ( Expression ptr, Expression membPtr ) : MemberPointerSelector
Mod ( Expression opLeft, Expression opRight ) : Expression
Ne ( Expression a, Expression b ) : BinaryExpression
Ne ( Expression a, int n ) : BinaryExpression
Ne0 ( Expression expr ) : BinaryExpression
Neg ( Expression expr ) : UnaryExpression
Not ( Expression exp ) : UnaryExpression

Logical not operation

Or ( Expression a, Expression b ) : Expression
Or ( Expression a, int b ) : Expression
Out ( DataType dt, Expression expr ) : OutArgument
Remainder ( Expression a, Expression b ) : Expression
SDiv ( Expression a, Expression b ) : BinaryExpression
SMul ( Expression left, Expression right ) : Expression
SMul ( Expression left, int c ) : Expression
Sar ( Expression e, Expression sh ) : BinaryExpression
Sar ( Expression e, byte sh ) : BinaryExpression
Sar ( Expression e, int sh ) : BinaryExpression
SegMem ( DataType dt, Expression basePtr, Expression ptr ) : SegmentedAccess
SegMemB ( Expression basePtr, Expression ptr ) : SegmentedAccess
SegMemW ( Expression basePtr, Expression ptr ) : SegmentedAccess
Seq ( Expression head, Expression tail ) : MkSequence
Shl ( Expression e, Expression sh ) : BinaryExpression
Shl ( Expression e, int sh ) : BinaryExpression
Shl ( int c, Expression sh ) : BinaryExpression
Shr ( Expression exp, Expression sh ) : BinaryExpression
Shr ( Expression exp, byte c ) : BinaryExpression
Shr ( Expression e, int sh ) : BinaryExpression
Slice ( PrimitiveType primitiveType, Identifier value, uint bitOffset ) : Slice
Test ( ConditionCode cc, Expression expr ) : TestCondition
UDiv ( Expression a, Expression b ) : BinaryExpression
UMul ( Expression left, Expression right ) : Expression
UMul ( Expression left, int c ) : Expression
USub ( Expression left, Expression right ) : BinaryExpression
Uge ( Expression a, Expression b ) : BinaryExpression
Uge ( Expression a, int n ) : BinaryExpression
Ugt ( Expression a, Expression b ) : BinaryExpression
Ule ( Expression a, Expression b ) : BinaryExpression
Ult ( Expression a, Expression b ) : Expression
Ult ( Expression a, int b ) : Expression
Word ( int byteSize, long n ) : Constant
Word16 ( uint n ) : Constant
Word16 ( ushort n ) : Constant
Word32 ( int n ) : Constant
Xor ( Expression a, Expression b ) : Expression

Описание методов

AddrOf() публичный Метод

public AddrOf ( Expression e ) : UnaryExpression
e Expression
Результат UnaryExpression

And() публичный Метод

public And ( Expression left, Expression right ) : BinaryExpression
left Expression
right Expression
Результат BinaryExpression

And() публичный Метод

public And ( Expression left, ulong right ) : BinaryExpression
left Expression
right ulong
Результат BinaryExpression

Array() публичный Метод

public Array ( DataType elemType, Expression arrayPtr, Expression index ) : ArrayAccess
elemType DataType
arrayPtr Expression
index Expression
Результат ArrayAccess

Byte() публичный Метод

public Byte ( byte b ) : Constant
b byte
Результат Constant

Cand() публичный Метод

Short-circuiting 'and' ('&&' in C family of languages)
public Cand ( Expression a, Expression b ) : Expression
a Expression
b Expression
Результат Expression

Cast() публичный Метод

public Cast ( DataType dataType, Expression expr ) : Cast
dataType DataType
expr Expression
Результат Cast

Comp() публичный Метод

public Comp ( Expression expr ) : Expression
expr Expression
Результат Expression

Cond() публичный Метод

public Cond ( Expression expr ) : ConditionOf
expr Expression
Результат ConditionOf

Cor() публичный Метод

Short-circuiting 'or' ('&&' in C family of languages)
public Cor ( Expression a, Expression b ) : Expression
a Expression
b Expression
Результат Expression

Deref() публичный Метод

public Deref ( Expression a ) : Dereference
a Expression
Результат Dereference

Dpb() публичный Метод

public Dpb ( Expression dst, Expression src, int offset ) : DepositBits
dst Expression
src Expression
offset int
Результат DepositBits

Eq() публичный Метод

public Eq ( Expression a, Expression b ) : BinaryExpression
a Expression
b Expression
Результат BinaryExpression

Eq() публичный Метод

public Eq ( Expression a, int b ) : BinaryExpression
a Expression
b int
Результат BinaryExpression

Eq0() публичный Метод

public Eq0 ( Expression exp ) : BinaryExpression
exp Expression
Результат BinaryExpression

FAdd() публичный Метод

public FAdd ( Expression a, Expression b ) : Expression
a Expression
b Expression
Результат Expression

FDiv() публичный Метод

public FDiv ( Expression a, Expression b ) : Expression
a Expression
b Expression
Результат Expression

FEq() публичный Метод

public FEq ( Expression a, Expression b ) : Expression
a Expression
b Expression
Результат Expression

FGe() публичный Метод

public FGe ( Expression a, Expression b ) : Expression
a Expression
b Expression
Результат Expression

FGt() публичный Метод

public FGt ( Expression a, Expression b ) : Expression
a Expression
b Expression
Результат Expression

FLe() публичный Метод

public FLe ( Expression a, Expression b ) : Expression
a Expression
b Expression
Результат Expression

FLt() публичный Метод

public FLt ( Expression a, Expression b ) : Expression
a Expression
b Expression
Результат Expression

FMul() публичный Метод

public FMul ( Expression a, Expression b ) : Expression
a Expression
b Expression
Результат Expression

FNe() публичный Метод

public FNe ( Expression a, Expression b ) : Expression
a Expression
b Expression
Результат Expression

FNeg() публичный Метод

public FNeg ( Expression a ) : Expression
a Expression
Результат Expression

FSub() публичный Метод

public FSub ( Expression a, Expression b ) : BinaryExpression
a Expression
b Expression
Результат BinaryExpression

Field() публичный Метод

public Field ( DataType dt, Expression e, Reko.Core.Types.Field field ) : FieldAccess
dt DataType
e Expression
field Reko.Core.Types.Field
Результат FieldAccess

Field() публичный Метод

public Field ( DataType dt, Expression e, string fieldName ) : FieldAccess
dt DataType
e Expression
fieldName string
Результат FieldAccess

Fn() публичный Метод

public Fn ( Expression e ) : Application
e Expression
Результат Application

Fn() публичный Метод

public Fn ( Expression fn, DataType retType ) : Application
fn Expression
retType DataType
Результат Application

Fn() публичный Метод

public Fn ( ExternalProcedure ep ) : Application
ep ExternalProcedure
Результат Application

Fn() публичный Метод

public Fn ( PseudoProcedure ppp ) : Application
ppp PseudoProcedure
Результат Application

Ge() публичный Метод

public Ge ( Expression a, Expression b ) : Expression
a Expression
b Expression
Результат Expression

Ge() публичный Метод

public Ge ( Expression a, int b ) : Expression
a Expression
b int
Результат Expression

Ge0() публичный Метод

public Ge0 ( Expression exp ) : BinaryExpression
exp Expression
Результат BinaryExpression

Gt() публичный Метод

public Gt ( Expression a, Expression b ) : Expression
a Expression
b Expression
Результат Expression

Gt() публичный Метод

public Gt ( Expression a, int b ) : Expression
a Expression
b int
Результат Expression

IAdd() публичный Метод

Integer addition.
public IAdd ( Expression left, Expression right ) : BinaryExpression
left Expression
right Expression
Результат BinaryExpression

IAdd() публичный Метод

public IAdd ( Expression left, int right ) : BinaryExpression
left Expression
right int
Результат BinaryExpression

IMul() публичный Метод

public IMul ( Expression left, Expression right ) : Expression
left Expression
right Expression
Результат Expression

IMul() публичный Метод

public IMul ( Expression left, int c ) : Expression
left Expression
c int
Результат Expression

ISub() публичный Метод

public ISub ( Expression left, Expression right ) : BinaryExpression
left Expression
right Expression
Результат BinaryExpression

ISub() публичный Метод

public ISub ( Expression left, int right ) : BinaryExpression
left Expression
right int
Результат BinaryExpression

Int16() публичный Метод

public Int16 ( short n ) : Constant
n short
Результат Constant

Int16() публичный Метод

public Int16 ( uint n ) : Constant
n uint
Результат Constant

Int32() публичный Метод

public Int32 ( int n ) : Constant
n int
Результат Constant

Int32() публичный Метод

public Int32 ( uint n ) : Constant
n uint
Результат Constant

Int8() публичный Метод

public Int8 ( int n ) : Constant
n int
Результат Constant

Le() публичный Метод

public Le ( Expression a, Expression b ) : BinaryExpression
a Expression
b Expression
Результат BinaryExpression

Le() публичный Метод

public Le ( Expression a, int b ) : BinaryExpression
a Expression
b int
Результат BinaryExpression

Load() публичный Метод

public Load ( DataType dt, Expression ea ) : MemoryAccess
dt DataType
ea Expression
Результат MemoryAccess

LoadB() публичный Метод

public LoadB ( Expression ea ) : Expression
ea Expression
Результат Expression

LoadDw() публичный Метод

public LoadDw ( Expression ea ) : MemoryAccess
ea Expression
Результат MemoryAccess

LoadW() публичный Метод

public LoadW ( Expression ea ) : MemoryAccess
ea Expression
Результат MemoryAccess

Lt() публичный Метод

public Lt ( Expression a, Expression b ) : BinaryExpression
a Expression
b Expression
Результат BinaryExpression

Lt() публичный Метод

public Lt ( Expression a, int b ) : BinaryExpression
a Expression
b int
Результат BinaryExpression

Lt0() публичный Метод

public Lt0 ( Expression exp ) : BinaryExpression
exp Expression
Результат BinaryExpression

MembPtr8() публичный Метод

public MembPtr8 ( Expression ptr, Expression membPtr ) : MemberPointerSelector
ptr Expression
membPtr Expression
Результат MemberPointerSelector

MembPtrW() публичный Метод

public MembPtrW ( Expression ptr, Expression membPtr ) : MemberPointerSelector
ptr Expression
membPtr Expression
Результат MemberPointerSelector

Mod() публичный Метод

public Mod ( Expression opLeft, Expression opRight ) : Expression
opLeft Expression
opRight Expression
Результат Expression

Ne() публичный Метод

public Ne ( Expression a, Expression b ) : BinaryExpression
a Expression
b Expression
Результат BinaryExpression

Ne() публичный Метод

public Ne ( Expression a, int n ) : BinaryExpression
a Expression
n int
Результат BinaryExpression

Ne0() публичный Метод

public Ne0 ( Expression expr ) : BinaryExpression
expr Expression
Результат BinaryExpression

Neg() публичный Метод

public Neg ( Expression expr ) : UnaryExpression
expr Expression
Результат UnaryExpression

Not() публичный Метод

Logical not operation
public Not ( Expression exp ) : UnaryExpression
exp Expression
Результат UnaryExpression

Or() публичный Метод

public Or ( Expression a, Expression b ) : Expression
a Expression
b Expression
Результат Expression

Or() публичный Метод

public Or ( Expression a, int b ) : Expression
a Expression
b int
Результат Expression

Out() публичный Метод

public Out ( DataType dt, Expression expr ) : OutArgument
dt DataType
expr Expression
Результат OutArgument

Remainder() публичный Метод

public Remainder ( Expression a, Expression b ) : Expression
a Expression
b Expression
Результат Expression

SDiv() публичный Метод

public SDiv ( Expression a, Expression b ) : BinaryExpression
a Expression
b Expression
Результат BinaryExpression

SMul() публичный Метод

public SMul ( Expression left, Expression right ) : Expression
left Expression
right Expression
Результат Expression

SMul() публичный Метод

public SMul ( Expression left, int c ) : Expression
left Expression
c int
Результат Expression

Sar() публичный Метод

public Sar ( Expression e, Expression sh ) : BinaryExpression
e Expression
sh Expression
Результат BinaryExpression

Sar() публичный Метод

public Sar ( Expression e, byte sh ) : BinaryExpression
e Expression
sh byte
Результат BinaryExpression

Sar() публичный Метод

public Sar ( Expression e, int sh ) : BinaryExpression
e Expression
sh int
Результат BinaryExpression

SegMem() публичный Метод

public SegMem ( DataType dt, Expression basePtr, Expression ptr ) : SegmentedAccess
dt DataType
basePtr Expression
ptr Expression
Результат SegmentedAccess

SegMemB() публичный Метод

public SegMemB ( Expression basePtr, Expression ptr ) : SegmentedAccess
basePtr Expression
ptr Expression
Результат SegmentedAccess

SegMemW() публичный Метод

public SegMemW ( Expression basePtr, Expression ptr ) : SegmentedAccess
basePtr Expression
ptr Expression
Результат SegmentedAccess

Seq() публичный Метод

public Seq ( Expression head, Expression tail ) : MkSequence
head Expression
tail Expression
Результат MkSequence

Shl() публичный Метод

public Shl ( Expression e, Expression sh ) : BinaryExpression
e Expression
sh Expression
Результат BinaryExpression

Shl() публичный Метод

public Shl ( Expression e, int sh ) : BinaryExpression
e Expression
sh int
Результат BinaryExpression

Shl() публичный Метод

public Shl ( int c, Expression sh ) : BinaryExpression
c int
sh Expression
Результат BinaryExpression

Shr() публичный Метод

public Shr ( Expression exp, Expression sh ) : BinaryExpression
exp Expression
sh Expression
Результат BinaryExpression

Shr() публичный Метод

public Shr ( Expression exp, byte c ) : BinaryExpression
exp Expression
c byte
Результат BinaryExpression

Shr() публичный Метод

public Shr ( Expression e, int sh ) : BinaryExpression
e Expression
sh int
Результат BinaryExpression

Slice() публичный Метод

public Slice ( PrimitiveType primitiveType, Identifier value, uint bitOffset ) : Slice
primitiveType PrimitiveType
value Identifier
bitOffset uint
Результат Slice

Test() публичный Метод

public Test ( ConditionCode cc, Expression expr ) : TestCondition
cc ConditionCode
expr Expression
Результат TestCondition

UDiv() публичный Метод

public UDiv ( Expression a, Expression b ) : BinaryExpression
a Expression
b Expression
Результат BinaryExpression

UMul() публичный Метод

public UMul ( Expression left, Expression right ) : Expression
left Expression
right Expression
Результат Expression

UMul() публичный Метод

public UMul ( Expression left, int c ) : Expression
left Expression
c int
Результат Expression

USub() публичный Метод

public USub ( Expression left, Expression right ) : BinaryExpression
left Expression
right Expression
Результат BinaryExpression

Uge() публичный Метод

public Uge ( Expression a, Expression b ) : BinaryExpression
a Expression
b Expression
Результат BinaryExpression

Uge() публичный Метод

public Uge ( Expression a, int n ) : BinaryExpression
a Expression
n int
Результат BinaryExpression

Ugt() публичный Метод

public Ugt ( Expression a, Expression b ) : BinaryExpression
a Expression
b Expression
Результат BinaryExpression

Ule() публичный Метод

public Ule ( Expression a, Expression b ) : BinaryExpression
a Expression
b Expression
Результат BinaryExpression

Ult() публичный Метод

public Ult ( Expression a, Expression b ) : Expression
a Expression
b Expression
Результат Expression

Ult() публичный Метод

public Ult ( Expression a, int b ) : Expression
a Expression
b int
Результат Expression

Word() публичный Метод

public Word ( int byteSize, long n ) : Constant
byteSize int
n long
Результат Constant

Word16() публичный Метод

public Word16 ( uint n ) : Constant
n uint
Результат Constant

Word16() публичный Метод

public Word16 ( ushort n ) : Constant
n ushort
Результат Constant

Word32() публичный Метод

public Word32 ( int n ) : Constant
n int
Результат Constant

Xor() публичный Метод

public Xor ( Expression a, Expression b ) : Expression
a Expression
b Expression
Результат Expression