ASR Expression Nodes¶
An expression has a type and produces a value. Almost every expression node
carries a type member and an optional value member holding the compile
time value when the frontend could fold it.
ASR expressions are explicit about conversion: there is no implicit promotion, and every conversion is a Cast inserted by the frontend.
- ArrayBound
- ArrayBroadcast
- ArrayConstant
- ArrayConstructor
- ArrayIsContiguous
- ArrayItem
- ArrayPack
- ArrayPhysicalCast
- ArrayRank
- ArrayReshape
- ArraySection
- ArraySize
- ArrayTranspose
- BitCast
- Cast
- CLoc
- CoarrayRef
- CompilerOptions
- ComplexBinOp
- ComplexCompare
- ComplexConstant
- ComplexConstructor
- ComplexIm
- ComplexRe
- ComplexUnaryMinus
- CPtrCompare
- DictConstant
- DictContains
- DictItem
- DictLen
- DictPop
- EnumConstructor
- EnumName
- EnumStaticMember
- EnumValue
- FunctionCall
- FunctionParam
- FunctionPointerCast
- GetPointer
- GpuBlockIndex
- GpuBlockSize
- GpuThreadIndex
- Iachar
- Ichar
- IfExp
- ImpliedDoLoop
- IntegerBinOp
- IntegerBitLen
- IntegerBitNot
- IntegerCompare
- IntegerConstant
- IntegerUnaryMinus
- IntrinsicArrayFunction
- IntrinsicElementalFunction
- IntrinsicImpureFunction
- ListCompare
- ListConcat
- ListConstant
- ListContains
- ListCount
- ListItem
- ListLen
- ListRepeat
- ListSection
- LogicalBinOp
- LogicalCompare
- LogicalConstant
- LogicalNot
- NamedExpr
- OverloadedBinOp
- OverloadedBoolOp
- OverloadedCompare
- OverloadedStringConcat
- OverloadedUnaryMinus
- PointerAssociated
- PointerNullConstant
- PointerToCPtr
- RealBinOp
- RealCompare
- RealConstant
- RealCopySign
- RealSqrt
- RealUnaryMinus
- SetConstant
- SetContains
- SetLen
- SetPop
- SizeOfType
- StringChr
- StringCompare
- StringConcat
- StringConstant
- StringContains
- StringFormat
- StringItem
- StringLen
- StringOrd
- StringPhysicalCast
- StringRepeat
- StringSection
- StructConstant
- StructConstructor
- StructInstanceMember
- StructStaticMember
- SymbolicCompare
- TupleCompare
- TupleConcat
- TupleConstant
- TupleContains
- TupleItem
- TupleLen
- TypeInquiry
- UnionConstructor
- UnionInstanceMember
- UnsignedIntegerBinOp
- UnsignedIntegerBitNot
- UnsignedIntegerCompare
- UnsignedIntegerConstant
- UnsignedIntegerUnaryMinus
- Var