29 lines
1.2 KiB
C
29 lines
1.2 KiB
C
|
|
#pragma once
|
||
|
|
|
||
|
|
#include <string>
|
||
|
|
#include <vector>
|
||
|
|
|
||
|
|
#include "locator.h"
|
||
|
|
|
||
|
|
// A Klammerset is the formal construct declared by the @@@klammerset system
|
||
|
|
// command: a named, logically related group of klammer definitions loaded
|
||
|
|
// together. The instance holds metadata and the file list only -- the
|
||
|
|
// klammers themselves live in the Machine's Klammer_registry (one flat,
|
||
|
|
// additive namespace; the definition modes govern collisions). Membership
|
||
|
|
// is provenance, not containment.
|
||
|
|
class Klammerset
|
||
|
|
{
|
||
|
|
public:
|
||
|
|
Klammerset() = default;
|
||
|
|
Klammerset(const std::string& symbol, const std::string& desc, const Locator& loc);
|
||
|
|
|
||
|
|
std::string m_symbol {}; // registry key and command-line name (e.g. "sks")
|
||
|
|
std::string m_desc {}; // the logical relationship that makes this a set
|
||
|
|
std::string m_name {}; // display name (e.g. "Standard Klammer Set")
|
||
|
|
std::string m_author {};
|
||
|
|
std::string m_date {}; // last update; a date serves as the version
|
||
|
|
std::vector<std::string> m_requires {}; // klammerset declaration files, loaded first
|
||
|
|
std::vector<std::string> m_files {}; // definition files, loaded in list order
|
||
|
|
Locator m_loc {}; // the declaring file; relative names resolve against it
|
||
|
|
};
|