From 0972cdada37126b7e5cedadd6ec32e45a1aa48ad Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Tue, 24 Mar 2026 22:18:37 -0400 Subject: [PATCH] xo-reader2: + gcobject facet includes for DSchematikaParser --- idl/IGCObject_DSchematikaParser.json5 | 18 +++++ include/xo/reader2/SchematikaParser.hpp | 11 +++ .../env/IGCObject_DSchematikaParser.hpp | 67 +++++++++++++++++++ .../parser/IGCObject_DSchematikaParser.hpp | 67 +++++++++++++++++++ .../facet/IGCObject_DSchematikaParser.cpp | 39 +++++++++++ 5 files changed, 202 insertions(+) create mode 100644 idl/IGCObject_DSchematikaParser.json5 create mode 100644 include/xo/reader2/SchematikaParser.hpp create mode 100644 include/xo/reader2/env/IGCObject_DSchematikaParser.hpp create mode 100644 include/xo/reader2/parser/IGCObject_DSchematikaParser.hpp create mode 100644 src/reader2/facet/IGCObject_DSchematikaParser.cpp diff --git a/idl/IGCObject_DSchematikaParser.json5 b/idl/IGCObject_DSchematikaParser.json5 new file mode 100644 index 00000000..cbb2d09a --- /dev/null +++ b/idl/IGCObject_DSchematikaParser.json5 @@ -0,0 +1,18 @@ +{ + mode: "implementation", + output_cpp_dir: "src/reader2/facet", + output_hpp_dir: "include/xo/reader2", + output_impl_subdir: "parser", + includes: [ + "", + "" + ], + local_types: [ ], + namespace1: "xo", + namespace2: "scm", + facet_idl: "idl/GCObject.json5", + brief: "provide AGCObject interface for SchematikaParser", + using_doxygen: true, + repr: "DSchematikaParser", + doc: [ "implement AGCObject for DSchematikaParser" ], +} diff --git a/include/xo/reader2/SchematikaParser.hpp b/include/xo/reader2/SchematikaParser.hpp new file mode 100644 index 00000000..c93bfb19 --- /dev/null +++ b/include/xo/reader2/SchematikaParser.hpp @@ -0,0 +1,11 @@ +/** @file SchematikaParser.hpp + * + * @author Roland Conybeare, Mar 2026 + **/ + +#pragma once + +#include "parser/DSchematikaParser.hpp" +#include "parser/IGCObject_DSchematikaParser.hpp" + +/* end SchemtikaParser.hpp */ diff --git a/include/xo/reader2/env/IGCObject_DSchematikaParser.hpp b/include/xo/reader2/env/IGCObject_DSchematikaParser.hpp new file mode 100644 index 00000000..afe0d6b5 --- /dev/null +++ b/include/xo/reader2/env/IGCObject_DSchematikaParser.hpp @@ -0,0 +1,67 @@ +/** @file IGCObject_DSchematikaParser.hpp + * + * Generated automagically from ingredients: + * 1. code generator: + * [xo-facet/codegen/genfacet] + * arguments: + * --input [idl/IGCObject_DSchematikaParser.json5] + * 2. jinja2 template for abstract facet .hpp file: + * [iface_facet_repr.hpp.j2] + * 3. idl for facet methods + * [idl/IGCObject_DSchematikaParser.json5] + **/ + +#pragma once + +#include "GCObject.hpp" +#include +#include +#include "DSchematikaParser.hpp" + +namespace xo { namespace scm { class IGCObject_DSchematikaParser; } } + +namespace xo { + namespace facet { + template <> + struct FacetImplementation + { + using ImplType = xo::mm::IGCObject_Xfer + ; + }; + } +} + +namespace xo { + namespace scm { + /** @class IGCObject_DSchematikaParser + **/ + class IGCObject_DSchematikaParser { + public: + /** @defgroup scm-gcobject-dschematikaparser-type-traits **/ + ///@{ + using size_type = xo::mm::AGCObject::size_type; + using AAllocator = xo::mm::AGCObject::AAllocator; + using ACollector = xo::mm::AGCObject::ACollector; + using Copaque = xo::mm::AGCObject::Copaque; + using Opaque = xo::mm::AGCObject::Opaque; + ///@} + /** @defgroup scm-gcobject-dschematikaparser-methods **/ + ///@{ + // const methods + /** memory consumption for this instance **/ + static size_type shallow_size(const DSchematikaParser & self) noexcept; + /** copy instance using allocator **/ + static Opaque shallow_copy(const DSchematikaParser & self, obj mm) noexcept; + + // non-const methods + /** during GC: forward immdiate children **/ + static size_type forward_children(DSchematikaParser & self, obj gc) noexcept; + ///@} + }; + + } /*namespace scm*/ +} /*namespace xo*/ + +/* end */ \ No newline at end of file diff --git a/include/xo/reader2/parser/IGCObject_DSchematikaParser.hpp b/include/xo/reader2/parser/IGCObject_DSchematikaParser.hpp new file mode 100644 index 00000000..afe0d6b5 --- /dev/null +++ b/include/xo/reader2/parser/IGCObject_DSchematikaParser.hpp @@ -0,0 +1,67 @@ +/** @file IGCObject_DSchematikaParser.hpp + * + * Generated automagically from ingredients: + * 1. code generator: + * [xo-facet/codegen/genfacet] + * arguments: + * --input [idl/IGCObject_DSchematikaParser.json5] + * 2. jinja2 template for abstract facet .hpp file: + * [iface_facet_repr.hpp.j2] + * 3. idl for facet methods + * [idl/IGCObject_DSchematikaParser.json5] + **/ + +#pragma once + +#include "GCObject.hpp" +#include +#include +#include "DSchematikaParser.hpp" + +namespace xo { namespace scm { class IGCObject_DSchematikaParser; } } + +namespace xo { + namespace facet { + template <> + struct FacetImplementation + { + using ImplType = xo::mm::IGCObject_Xfer + ; + }; + } +} + +namespace xo { + namespace scm { + /** @class IGCObject_DSchematikaParser + **/ + class IGCObject_DSchematikaParser { + public: + /** @defgroup scm-gcobject-dschematikaparser-type-traits **/ + ///@{ + using size_type = xo::mm::AGCObject::size_type; + using AAllocator = xo::mm::AGCObject::AAllocator; + using ACollector = xo::mm::AGCObject::ACollector; + using Copaque = xo::mm::AGCObject::Copaque; + using Opaque = xo::mm::AGCObject::Opaque; + ///@} + /** @defgroup scm-gcobject-dschematikaparser-methods **/ + ///@{ + // const methods + /** memory consumption for this instance **/ + static size_type shallow_size(const DSchematikaParser & self) noexcept; + /** copy instance using allocator **/ + static Opaque shallow_copy(const DSchematikaParser & self, obj mm) noexcept; + + // non-const methods + /** during GC: forward immdiate children **/ + static size_type forward_children(DSchematikaParser & self, obj gc) noexcept; + ///@} + }; + + } /*namespace scm*/ +} /*namespace xo*/ + +/* end */ \ No newline at end of file diff --git a/src/reader2/facet/IGCObject_DSchematikaParser.cpp b/src/reader2/facet/IGCObject_DSchematikaParser.cpp new file mode 100644 index 00000000..0ac80e37 --- /dev/null +++ b/src/reader2/facet/IGCObject_DSchematikaParser.cpp @@ -0,0 +1,39 @@ +/** @file IGCObject_DSchematikaParser.cpp + * + * Generated automagically from ingredients: + * 1. code generator: + * [xo-facet/codegen/genfacet] + * arguments: + * --input [idl/IGCObject_DSchematikaParser.json5] + * 2. jinja2 template for abstract facet .hpp file: + * [iface_facet_any.hpp.j2] + * 3. idl for facet methods + * [idl/IGCObject_DSchematikaParser.json5] +**/ + +#include "parser/IGCObject_DSchematikaParser.hpp" + +namespace xo { + namespace scm { + auto + IGCObject_DSchematikaParser::shallow_size(const DSchematikaParser & self) noexcept -> size_type + { + return self.shallow_size(); + } + + auto + IGCObject_DSchematikaParser::shallow_copy(const DSchematikaParser & self, obj mm) noexcept -> Opaque + { + return self.shallow_copy(mm); + } + + auto + IGCObject_DSchematikaParser::forward_children(DSchematikaParser & self, obj gc) noexcept -> size_type + { + return self.forward_children(gc); + } + + } /*namespace scm*/ +} /*namespace xo*/ + +/* end IGCObject_DSchematikaParser.cpp */