| //===-- CommandObjectLanguage.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 "CommandObjectLanguage.h" | |
| #include "lldb/Target/LanguageRuntime.h" | |
| using namespace lldb; | |
| using namespace lldb_private; | |
| CommandObjectLanguage::CommandObjectLanguage(CommandInterpreter &interpreter) | |
| : CommandObjectMultiword( | |
| interpreter, "language", "Commands specific to a source language.", | |
| "language <language-name> <subcommand> [<subcommand-options>]") { | |
| // Let the LanguageRuntime populates this command with subcommands | |
| LanguageRuntime::InitializeCommands(this); | |
| SetHelpLong( | |
| R"( | |
| Language specific subcommands may be used directly (without the `language | |
| <language-name>` prefix), when stopped on a frame written in that language. For | |
| example, from a C++ frame, users may run `demangle` directly, instead of | |
| `language cplusplus demangle`. | |
| Language specific subcommands are only available when the command name cannot be | |
| misinterpreted. Take the `demangle` command for example, if a Python command | |
| named `demangle-tree` were loaded, then the invocation `demangle` would run | |
| `demangle-tree`, not `language cplusplus demangle`. | |
| )"); | |
| } | |
| CommandObjectLanguage::~CommandObjectLanguage() = default; |