P4C
The P4 Compiler
Loading...
Searching...
No Matches
P4::ScalarValue Class Reference
Inheritance diagram for P4::ScalarValue:
[legend]

Public Types

enum class  ValueState { Uninitialized , NotConstant , Constant }
 

Public Member Functions

void dbprint (std::ostream &out) const override
 
 DECLARE_TYPEINFO (ScalarValue, SymbolicValue)
 
bool hasUninitializedParts () const override
 
bool isKnown () const
 
bool isScalar () const override
 
bool isUninitialized () const
 
bool isUnknown () const
 
ValueState mergeState (ValueState other) const
 
void setAllUnknown () override
 
- Public Member Functions inherited from P4::SymbolicValue
virtual void assign (const SymbolicValue *other)=0
 
virtual SymbolicValueclone () const =0
 
 DECLARE_TYPEINFO (SymbolicValue)
 
virtual bool equals (const SymbolicValue *other) const =0
 
virtual bool merge (const SymbolicValue *other)=0
 
- Public Member Functions inherited from P4::IHasDbPrint
void print () const
 
- Public Member Functions inherited from P4::ICastable
template<typename T >
T & as ()
 Tries to convert the class to type T. A BUG occurs if the cast fails.
 
template<typename T >
const T & as () const
 Tries to convert the class to type T. A BUG occurs if the cast fails.
 
template<typename T >
T * checkedTo ()
 Performs a checked cast. A BUG occurs if the cast fails.
 
template<typename T >
const T * checkedTo () const
 Performs a checked cast. A BUG occurs if the cast fails.
 
- Public Member Functions inherited from P4::RTTI::Base
template<typename T >
bool is () const noexcept
 
virtual bool isA (TypeId typeId) const noexcept=0
 
template<typename T >
const T * to () const noexcept
 Same as to, but returns const pointer to T.
 
template<typename T >
T * to () noexcept
 
virtual TypeId typeId () const noexcept=0
 

Static Public Member Functions

static ValueState init (bool uninit)
 

Public Attributes

ValueState state
 
- Public Attributes inherited from P4::SymbolicValue
const unsigned id
 
const IR::Type * type
 

Protected Member Functions

 ScalarValue (ScalarValue::ValueState state, const IR::Type *type)
 
- Protected Member Functions inherited from P4::SymbolicValue
 SymbolicValue (const IR::Type *type)
 
- Protected Member Functions inherited from P4::RTTI::Base
virtual const void * toImpl (TypeId typeId) const noexcept=0
 

Member Function Documentation

◆ dbprint()

void P4::ScalarValue::dbprint ( std::ostream & out) const
inlineoverridevirtual

Implements P4::IHasDbPrint.

◆ hasUninitializedParts()

bool P4::ScalarValue::hasUninitializedParts ( ) const
inlineoverridevirtual

Implements P4::SymbolicValue.

◆ isScalar()

bool P4::ScalarValue::isScalar ( ) const
inlineoverridevirtual

Implements P4::SymbolicValue.

◆ setAllUnknown()

void P4::ScalarValue::setAllUnknown ( )
inlineoverridevirtual

Implements P4::SymbolicValue.