yast2-core
|
YCP type Map <keytype, valuetype> More...
#include <Type.h>
Public Member Functions | |
string | toString () const |
bool | isBasetype () const |
constTypePtr | matchFlex (constTypePtr type, unsigned int number=0) const |
int | match (constTypePtr expected) const |
bool | equals (constTypePtr expected) const |
constTypePtr | commontype (constTypePtr type) const |
constTypePtr | detailedtype (constTypePtr type) const |
bool | canCast (constTypePtr to) const |
TypePtr | clone () const |
constTypePtr | unflex (constTypePtr type, unsigned int number=0) const |
constTypePtr | keytype () const |
constTypePtr | valuetype () const |
std::ostream & | toStream (std::ostream &str) const |
MapType (constTypePtr key=Type::Unspec, constTypePtr value=Type::Unspec, bool as_const=false) | |
MapType (bytecodeistream &str) | |
~MapType () | |
![]() | |
Type () | |
Type (tkind kind, bytecodeistream &str) | |
virtual | ~Type () |
virtual string | toXmlString () const |
virtual std::ostream & | toXml (std::ostream &str, int indent) const |
virtual int | matchvalue (YCPValue value) const |
string | preToString () const |
string | postToString () const |
bool | isConst () const |
void | asConst () |
bool | isReference () const |
void | asReference () |
int | basematch (constTypePtr expected) const |
bool | isUnspec () const |
bool | isError () const |
bool | isAny () const |
bool | isBoolean () const |
bool | isByteblock () const |
bool | isFloat () const |
bool | isInteger () const |
bool | isLocale () const |
bool | isPath () const |
bool | isString () const |
bool | isSymbol () const |
bool | isTerm () const |
bool | isVoid () const |
bool | isWildcard () const |
bool | isFlex () const |
bool | isNFlex () const |
bool | isVariable () const |
bool | isList () const |
bool | isMap () const |
bool | isBlock () const |
bool | isTuple () const |
bool | isFunction () const |
bool | isNil () const |
YCPValueType | valueType () const |
![]() | |
Rep () | |
Rep (const Rep &) | |
Rep & | operator= (const Rep &) |
virtual | ~Rep () |
void | ref () const |
void | unref () const |
unsigned | refCount () const |
virtual const char * | repName () const |
virtual std::ostream & | dumpOn (std::ostream &str) const |
Private Member Functions | |
REP_BODY (MapType) | |
Private Attributes | |
const constTypePtr | m_keytype |
const constTypePtr | m_valuetype |
Additional Inherited Members | |
![]() | |
enum | type_kind { UnspecT = 0, ErrorT, AnyT, BooleanT, ByteblockT, FloatT, IntegerT, LocaleT, PathT, StringT, SymbolT, TermT, VoidT, WildcardT, FlexT, VariableT, ListT, MapT, BlockT, TupleT, FunctionT, NilT, NFlexT } |
typedef enum Type::type_kind | tkind |
![]() | |
static void | setNocheck (bool nocheck) |
static constTypePtr | vt2type (enum YCPValueType vt) |
static int | nextToken (const char **signature) |
static constTypePtr | fromSignature (const char **signature) |
static constTypePtr | fromSignature (const string &signature) |
static constTypePtr | determineFlexType (constFunctionTypePtr actual, constFunctionTypePtr declared) |
static FunctionTypePtr | Function (constTypePtr return_type) |
![]() | |
static void | ref (const Rep *obj_r) |
static void | unref (const Rep *obj_r) |
![]() | |
static const constTypePtr | Unspec = TypePtr ( new Type (UnspecT)) |
static const constTypePtr | Error = TypePtr ( new Type (ErrorT)) |
static const constTypePtr | Any = TypePtr ( new Type (AnyT)) |
static const constTypePtr | Void = TypePtr ( new Type (VoidT)) |
static const constTypePtr | Boolean = TypePtr ( new Type (BooleanT)) |
static const constTypePtr | Byteblock = TypePtr ( new Type (ByteblockT)) |
static const constTypePtr | Float = TypePtr ( new Type (FloatT)) |
static const constTypePtr | Integer = TypePtr ( new Type (IntegerT)) |
static const constTypePtr | Locale = TypePtr ( new Type (LocaleT)) |
static const constTypePtr | Path = TypePtr ( new Type (PathT)) |
static const constTypePtr | String = TypePtr ( new Type (StringT)) |
static const constTypePtr | Symbol = TypePtr ( new Type (SymbolT)) |
static const constTypePtr | Term = TypePtr ( new Type (TermT)) |
static const constTypePtr | Wildcard = TypePtr ( new Type (WildcardT)) |
static const constTypePtr | ConstAny = TypePtr ( new Type (AnyT, true)) |
static const constTypePtr | ConstVoid = TypePtr ( new Type (VoidT, true)) |
static const constTypePtr | ConstBoolean = TypePtr ( new Type (BooleanT, true)) |
static const constTypePtr | ConstByteblock = TypePtr ( new Type (ByteblockT, true)) |
static const constTypePtr | ConstFloat = TypePtr ( new Type (FloatT, true)) |
static const constTypePtr | ConstInteger = TypePtr ( new Type (IntegerT, true)) |
static const constTypePtr | ConstLocale = TypePtr ( new Type (LocaleT, true)) |
static const constTypePtr | ConstPath = TypePtr ( new Type (PathT, true)) |
static const constTypePtr | ConstString = TypePtr ( new Type (StringT, true)) |
static const constTypePtr | ConstSymbol = TypePtr ( new Type (SymbolT, true)) |
static const constTypePtr | ConstTerm = TypePtr ( new Type (TermT, true)) |
static const constTypePtr | ConstList = TypePtr ( new Type (ListT, true)) |
static const constTypePtr | ConstMap = TypePtr ( new Type (MapT, true)) |
static const constTypePtr | Flex = TypePtr ( new FlexType()) |
static const constTypePtr | ConstFlex = TypePtr ( new FlexType (true)) |
static const constTypePtr | NFlex1 = TypePtr ( new NFlexType(1)) |
static const constTypePtr | ConstNFlex1 = TypePtr ( new NFlexType (1, true)) |
static const constTypePtr | NFlex2 = TypePtr ( new NFlexType(2)) |
static const constTypePtr | ConstNFlex2 = TypePtr ( new NFlexType (2, true)) |
static const constTypePtr | NFlex3 = TypePtr ( new NFlexType(3)) |
static const constTypePtr | ConstNFlex3 = TypePtr ( new NFlexType (3, true)) |
static const constTypePtr | NFlex4 = TypePtr ( new NFlexType(4)) |
static const constTypePtr | ConstNFlex4 = TypePtr ( new NFlexType (4, true)) |
static const constTypePtr | ListUnspec = new ListType (Type::Unspec) |
static const constTypePtr | List = new ListType (Type::Any) |
static const constTypePtr | MapUnspec = new MapType (Type::Unspec, Type::Unspec) |
static const constTypePtr | Map = new MapType (Type::Any, Type::Any) |
static const constTypePtr | Variable = new VariableType (Type::Any) |
static const constTypePtr | Block = new BlockType (Type::Any) |
static const constTypePtr | Nil = TypePtr ( new Type (NilT)) |
![]() | |
Type (tkind kind, bool as_const=false, bool as_reference=false) | |
![]() | |
virtual void | ref_to (unsigned) const |
virtual void | unref_to (unsigned) const |
![]() | |
tkind | m_kind |
bool | m_const |
bool | m_reference |
YCP type Map <keytype, valuetype>
MapType::MapType | ( | constTypePtr | key = Type::Unspec , |
constTypePtr | value = Type::Unspec , |
||
bool | as_const = false |
||
) |
MapType::MapType | ( | bytecodeistream & | str | ) |
MapType::~MapType | ( | ) |
|
virtual |
check, if the type can be casted (at runtime considered to be - similar to dynamic_cast) to another type
Reimplemented from Type.
References m_keytype, and m_valuetype.
|
virtual |
clone this type
Reimplemented from Type.
References m_keytype, and m_valuetype.
Referenced by unflex().
|
virtual |
Finds a type that can hold both given types This should be the narrowest such type - TODO
Reimplemented from Type.
References Type::Any, m_keytype, m_valuetype, toString(), and y2debug.
|
virtual |
Finds a type which contains most information
Reimplemented from Type.
References Type::Error, m_keytype, m_valuetype, toString(), and y2debug.
|
virtual |
check equality of the types, without any assumptions like any == unspec
Reimplemented from Type.
References m_keytype, and m_valuetype.
|
inlinevirtual |
Reimplemented from Type.
|
inline |
References m_keytype.
|
virtual |
Checks match with expected type. Match is not symmetric, e.g integer match any but not vice versa.
expected | Target type against which this is matched, so integer.match(any) -> 0 <0: no match, ==0: full match, >0: propagated match |
Reimplemented from Type.
References Type::basematch(), m_keytype, m_valuetype, toString(), and y2debug.
|
virtual |
Reimplemented from Type.
References m_keytype, m_valuetype, toString(), and y2debug.
|
private |
|
virtual |
write bytecode out to stream
write out to bytecode stream
Reimplemented from Type.
References m_keytype, m_valuetype, str, Type::toStream(), and Bytecode::writeType().
|
virtual |
Converts a type code to its YCP notation.
Reimplemented from Type.
References m_keytype, m_valuetype, Type::postToString(), and Type::preToString().
Referenced by commontype(), detailedtype(), match(), matchFlex(), and unflex().
|
virtual |
replace any 'FlexT' (number == 0) or 'NFlexT' (number != 0) with 'type'
Reimplemented from Type.
References clone(), m_keytype, m_valuetype, toString(), and y2debug.
|
inline |
References m_valuetype.
|
private |
Referenced by canCast(), clone(), commontype(), detailedtype(), equals(), keytype(), match(), matchFlex(), toStream(), toString(), and unflex().
|
private |
Referenced by canCast(), clone(), commontype(), detailedtype(), equals(), match(), matchFlex(), toStream(), toString(), unflex(), and valuetype().