llvm/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCTypeEncodingParser.cpp

//===-- AppleObjCTypeEncodingParser.cpp -----------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//

#include "AppleObjCTypeEncodingParser.h"

#include "Plugins/ExpressionParser/Clang/ClangUtil.h"
#include "Plugins/TypeSystem/Clang/TypeSystemClang.h"
#include "lldb/Symbol/CompilerType.h"
#include "lldb/Target/Process.h"
#include "lldb/Target/Target.h"
#include "lldb/Utility/LLDBLog.h"
#include "lldb/Utility/Log.h"
#include "lldb/Utility/StringLexer.h"

#include "clang/Basic/TargetInfo.h"

#include <vector>

usingnamespacelldb_private;

AppleObjCTypeEncodingParser::AppleObjCTypeEncodingParser(
    ObjCLanguageRuntime &runtime)
    :{}

std::string AppleObjCTypeEncodingParser::ReadStructName(StringLexer &type) {}

std::string AppleObjCTypeEncodingParser::ReadQuotedString(StringLexer &type) {}

uint32_t AppleObjCTypeEncodingParser::ReadNumber(StringLexer &type) {}

// as an extension to the published grammar recent runtimes emit structs like
// this:
// "{CGRect=\"origin\"{CGPoint=\"x\"d\"y\"d}\"size\"{CGSize=\"width\"d\"height\"d}}"

AppleObjCTypeEncodingParser::StructElement::StructElement()
    :{}

AppleObjCTypeEncodingParser::StructElement
AppleObjCTypeEncodingParser::ReadStructElement(TypeSystemClang &ast_ctx,
                                               StringLexer &type,
                                               bool for_expression) {}

clang::QualType AppleObjCTypeEncodingParser::BuildStruct(
    TypeSystemClang &ast_ctx, StringLexer &type, bool for_expression) {}

clang::QualType AppleObjCTypeEncodingParser::BuildUnion(
    TypeSystemClang &ast_ctx, StringLexer &type, bool for_expression) {}

clang::QualType AppleObjCTypeEncodingParser::BuildAggregate(
    TypeSystemClang &ast_ctx, StringLexer &type, bool for_expression,
    char opener, char closer, uint32_t kind) {}

clang::QualType AppleObjCTypeEncodingParser::BuildArray(
    TypeSystemClang &ast_ctx, StringLexer &type, bool for_expression) {}

// the runtime can emit these in the form of @"SomeType", giving more specifics
// this would be interesting for expression parser interop, but since we
// actually try to avoid exposing the ivar info to the expression evaluator,
// consume but ignore the type info and always return an 'id'; if anything,
// dynamic typing will resolve things for us anyway
clang::QualType AppleObjCTypeEncodingParser::BuildObjCObjectPointerType(
    TypeSystemClang &clang_ast_ctx, StringLexer &type, bool for_expression) {}

clang::QualType
AppleObjCTypeEncodingParser::BuildType(TypeSystemClang &clang_ast_ctx,
                                       StringLexer &type, bool for_expression,
                                       uint32_t *bitfield_bit_size) {}

CompilerType AppleObjCTypeEncodingParser::RealizeType(TypeSystemClang &ast_ctx,
                                                      const char *name,
                                                      bool for_expression) {}