2026-07-30 23:50:07 +02:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include <string>
|
|
|
|
|
#include <vector>
|
|
|
|
|
|
2026-08-16 01:37:59 +02:00
|
|
|
#include "util.h" // strings_t
|
|
|
|
|
|
2026-07-30 23:50:07 +02:00
|
|
|
#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
|
2026-08-16 01:37:59 +02:00
|
|
|
// Every file this set actually read, as a canonical path: the declaring
|
|
|
|
|
// file itself (a set may define klammers before or after its declaration)
|
|
|
|
|
// followed by the resolved :requires and :files. m_files holds the names
|
|
|
|
|
// as WRITTEN, which cannot be compared against a definition's location;
|
|
|
|
|
// this holds what was opened. It is what lets a display tell a klammer
|
|
|
|
|
// that came from a klammerset apart from one the input defined.
|
|
|
|
|
strings_t m_loaded_files {};
|
2026-07-30 23:50:07 +02:00
|
|
|
};
|