Lines Matching defs:Value
76 class Value {
396 virtual ~Value() = default;
398 DEFAULT_COPY_SEMANTIC(Value);
399 DEFAULT_MOVE_SEMANTIC(Value);
402 explicit Value(Type type) : type_(type) {}
410 template <Value::Type value_type>
414 using type = std::conditional_t<value_type == Value::Type::U1, uint8_t,
416 std::conditional_t<value_type == Value::Type::I8, int8_t,
418 std::conditional_t<value_type == Value::Type::U8, uint8_t,
420 std::conditional_t<value_type == Value::Type::I16, int16_t,
422 std::conditional_t<value_type == Value::Type::U16, uint16_t,
424 std::conditional_t<value_type == Value::Type::I32, int32_t,
426 std::conditional_t<value_type == Value::Type::U32, uint32_t,
428 std::conditional_t<value_type == Value::Type::I64, int64_t,
430 std::conditional_t<value_type == Value::Type::U64, uint64_t,
432 std::conditional_t<value_type == Value::Type::F32, float,
434 std::conditional_t<value_type == Value::Type::F64, double,
436 std::conditional_t<value_type == Value::Type::STRING, std::string_view,
438 std::conditional_t<value_type == Value::Type::STRING_NULLPTR, uint32_t,
440 std::conditional_t<value_type == Value::Type::RECORD, pandasm::Type,
442 std::conditional_t<value_type == Value::Type::METHOD, std::string_view,
444 std::conditional_t<value_type == Value::Type::ENUM, std::string_view,
446 std::conditional_t<value_type == Value::Type::ANNOTATION, AnnotationData,
448 std::conditional_t<value_type == Value::Type::LITERALARRAY, std::string_view,
454 template <Value::Type type>
457 class ScalarValue : public Value {
459 template <Value::Type type>
501 ScalarValue(Type type, uint64_t value) : Value(type), value_(value) {}
503 ScalarValue(Type type, float value) : Value(type), value_(value) {}
505 ScalarValue(Type type, double value) : Value(type), value_(value) {}
507 ScalarValue(Type type, const std::string_view &value) : Value(type), value_(std::string(value)) {}
509 ScalarValue(Type type, pandasm::Type value) : Value(type), value_(std::move(value)) {}
511 ScalarValue(Type type, AnnotationData &value) : Value(type), value_(value) {}
516 class ArrayValue : public Value {
519 : Value(Type::ARRAY), component_type_(component_type), values_(std::move(values))
545 AnnotationElement(const std::string_view &name, std::unique_ptr<Value> value)
558 Value *GetValue() const
563 static std::string TypeToString(Value::Type type);
567 std::unique_ptr<Value> value_;