From 5d089dc34d0d397d0d00d5bbe044c5c011f59068 Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Sat, 31 Jan 2026 01:44:53 -0500 Subject: [PATCH] xo-expression2 xo-gc: DSequenceExpr builds [WIP] --- CMakeLists.txt | 14 ++++ idl/IExpression_DSequenceExpr.json5 | 12 ++++ .../xo/expression2/DSequenceExpr.hpp | 10 ++- include/xo/expression2/Expression.hpp | 2 +- include/xo/expression2/SymbolTable.hpp | 2 +- include/xo/expression2/detail/AExpression.hpp | 2 +- .../xo/expression2/detail/IExpression_Any.hpp | 2 +- .../detail/IExpression_DApplyExpr.hpp | 2 +- .../detail/IExpression_DConstant.hpp | 2 +- .../detail/IExpression_DDefineExpr.hpp | 2 +- .../detail/IExpression_DIfElseExpr.hpp | 2 +- .../detail/IExpression_DLambdaExpr.hpp | 2 +- .../detail/IExpression_DSequenceExpr.hpp | 66 +++++++++++++++++++ .../detail/IExpression_DVariable.hpp | 2 +- .../expression2/detail/IExpression_Xfer.hpp | 2 +- .../detail/IGCObject_DUniqueString.hpp | 2 +- .../detail/IGCObject_DVariable.hpp | 2 +- .../detail/IPrintable_DApplyExpr.hpp | 2 +- .../detail/IPrintable_DConstant.hpp | 2 +- .../detail/IPrintable_DDefineExpr.hpp | 2 +- .../detail/IPrintable_DIfElseExpr.hpp | 2 +- .../detail/IPrintable_DLambdaExpr.hpp | 2 +- .../detail/IPrintable_DUniqueString.hpp | 2 +- .../detail/IPrintable_DVariable.hpp | 2 +- include/xo/expression2/detail/RExpression.hpp | 2 +- .../xo/expression2/symtab/ASymbolTable.hpp | 2 +- .../symtab/IPrintable_DLocalSymtab.hpp | 2 +- .../expression2/symtab/ISymbolTable_Any.hpp | 2 +- .../symtab/ISymbolTable_DLocalSymtab.hpp | 2 +- .../expression2/symtab/ISymbolTable_Xfer.hpp | 2 +- .../xo/expression2/symtab/RSymbolTable.hpp | 2 +- src/expression2/CMakeLists.txt | 3 + src/expression2/DSequenceExpr.cpp | 33 +++++++--- src/expression2/IExpression_DApplyExpr.cpp | 2 +- src/expression2/IExpression_DConstant.cpp | 2 +- src/expression2/IExpression_DDefineExpr.cpp | 2 +- src/expression2/IExpression_DIfElseExpr.cpp | 2 +- src/expression2/IExpression_DLambdaExpr.cpp | 2 +- src/expression2/IExpression_DSequenceExpr.cpp | 45 +++++++++++++ src/expression2/IExpression_DVariable.cpp | 2 +- src/expression2/IGCObject_DUniqueString.cpp | 2 +- src/expression2/IGCObject_DVariable.cpp | 2 +- src/expression2/IPrintable_DApplyExpr.cpp | 2 +- src/expression2/IPrintable_DConstant.cpp | 2 +- src/expression2/IPrintable_DDefineExpr.cpp | 2 +- src/expression2/IPrintable_DIfElseExpr.cpp | 2 +- src/expression2/IPrintable_DLambdaExpr.cpp | 2 +- src/expression2/IPrintable_DLocalSymtab.cpp | 2 +- src/expression2/IPrintable_DUniqueString.cpp | 2 +- src/expression2/IPrintable_DVariable.cpp | 2 +- src/expression2/ISymbolTable_DLocalSymtab.cpp | 2 +- 51 files changed, 217 insertions(+), 54 deletions(-) create mode 100644 idl/IExpression_DSequenceExpr.json5 rename DSequenceExpr.hpp => include/xo/expression2/DSequenceExpr.hpp (85%) create mode 100644 include/xo/expression2/detail/IExpression_DSequenceExpr.hpp create mode 100644 src/expression2/IExpression_DSequenceExpr.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index ae1bb8c2..4f7705ce 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -238,6 +238,20 @@ xo_add_genfacetimpl( # ---------------------------------------------------------------- +# note: manual target; generated code committed to git +xo_add_genfacetimpl( + TARGET xo-expression2-facetimpl-expression-sequenceexpr + FACET_PKG xo_expression2 + FACET Expression + REPR SequenceExpr + INPUT idl/IExpression_DSequenceExpr.json5 + OUTPUT_HPP_DIR include/xo/expression2 + OUTPUT_IMPL_SUBDIR detail + OUTPUT_CPP_DIR src/expression2 +) + +# ---------------------------------------------------------------- + # note: manual target; generated code committed to git xo_add_genfacetimpl( TARGET xo-expression2-facetimpl-gcobject-uniquestring diff --git a/idl/IExpression_DSequenceExpr.json5 b/idl/IExpression_DSequenceExpr.json5 new file mode 100644 index 00000000..451d39f1 --- /dev/null +++ b/idl/IExpression_DSequenceExpr.json5 @@ -0,0 +1,12 @@ +{ + mode: "implementation", + includes: [ "\"Expression.hpp\"" ], + local_types: [ ], + namespace1: "xo", + namespace2: "scm", + facet_idl: "idl/Expression.json5", + brief: "provide AExpression interface for DSequenceExpr state", + using_doxygen: true, + repr: "DSequenceExpr", + doc: ["doc for something or other IExpression+DSequenceExpr" ], +} diff --git a/DSequenceExpr.hpp b/include/xo/expression2/DSequenceExpr.hpp similarity index 85% rename from DSequenceExpr.hpp rename to include/xo/expression2/DSequenceExpr.hpp index 12caf649..7285ada8 100644 --- a/DSequenceExpr.hpp +++ b/include/xo/expression2/DSequenceExpr.hpp @@ -5,6 +5,7 @@ #pragma once +#include "Expression.hpp" #include "TypeRef.hpp" #include @@ -21,6 +22,8 @@ namespace xo { **/ class DSequenceExpr { public: + using AAllocator = xo::mm::AAllocator; + using TypeDescr = xo::reflect::TypeDescr; using size_type = DArray::size_type; using ppindentinfo = xo::print::ppindentinfo; @@ -37,8 +40,11 @@ namespace xo { size_type size() const noexcept; obj operator[](std::size_t i) const; - /** append @p expr to the end of this sequence **/ - void push_back(obj expr); + /** append @p expr to the end of this sequence; + * use memory from @p mm if need to expand storage + **/ + void push_back(obj mm, + obj expr); // get_free_variables(); // visit_preorder(); diff --git a/include/xo/expression2/Expression.hpp b/include/xo/expression2/Expression.hpp index df4161a1..60e8a402 100644 --- a/include/xo/expression2/Expression.hpp +++ b/include/xo/expression2/Expression.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/Expression.json5] * 2. jinja2 template for facet .hpp file: diff --git a/include/xo/expression2/SymbolTable.hpp b/include/xo/expression2/SymbolTable.hpp index 26576ed6..09fc04a8 100644 --- a/include/xo/expression2/SymbolTable.hpp +++ b/include/xo/expression2/SymbolTable.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/SymbolTable.json5] * 2. jinja2 template for facet .hpp file: diff --git a/include/xo/expression2/detail/AExpression.hpp b/include/xo/expression2/detail/AExpression.hpp index e080ece8..10375114 100644 --- a/include/xo/expression2/detail/AExpression.hpp +++ b/include/xo/expression2/detail/AExpression.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/Expression.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/include/xo/expression2/detail/IExpression_Any.hpp b/include/xo/expression2/detail/IExpression_Any.hpp index 17545afb..c92c2c4a 100644 --- a/include/xo/expression2/detail/IExpression_Any.hpp +++ b/include/xo/expression2/detail/IExpression_Any.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/Expression.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/include/xo/expression2/detail/IExpression_DApplyExpr.hpp b/include/xo/expression2/detail/IExpression_DApplyExpr.hpp index c8952199..d577854f 100644 --- a/include/xo/expression2/detail/IExpression_DApplyExpr.hpp +++ b/include/xo/expression2/detail/IExpression_DApplyExpr.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/IExpression_DApplyExpr.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/include/xo/expression2/detail/IExpression_DConstant.hpp b/include/xo/expression2/detail/IExpression_DConstant.hpp index 61b92e12..89c5044c 100644 --- a/include/xo/expression2/detail/IExpression_DConstant.hpp +++ b/include/xo/expression2/detail/IExpression_DConstant.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/IExpression_DConstant.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/include/xo/expression2/detail/IExpression_DDefineExpr.hpp b/include/xo/expression2/detail/IExpression_DDefineExpr.hpp index 3ac7fd49..f5585b60 100644 --- a/include/xo/expression2/detail/IExpression_DDefineExpr.hpp +++ b/include/xo/expression2/detail/IExpression_DDefineExpr.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/IExpression_DDefineExpr.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/include/xo/expression2/detail/IExpression_DIfElseExpr.hpp b/include/xo/expression2/detail/IExpression_DIfElseExpr.hpp index 7d726dde..03500a39 100644 --- a/include/xo/expression2/detail/IExpression_DIfElseExpr.hpp +++ b/include/xo/expression2/detail/IExpression_DIfElseExpr.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/IExpression_DIfElseExpr.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/include/xo/expression2/detail/IExpression_DLambdaExpr.hpp b/include/xo/expression2/detail/IExpression_DLambdaExpr.hpp index d488b6b3..916b82ac 100644 --- a/include/xo/expression2/detail/IExpression_DLambdaExpr.hpp +++ b/include/xo/expression2/detail/IExpression_DLambdaExpr.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/IExpression_DLambdaExpr.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/include/xo/expression2/detail/IExpression_DSequenceExpr.hpp b/include/xo/expression2/detail/IExpression_DSequenceExpr.hpp new file mode 100644 index 00000000..b010ac65 --- /dev/null +++ b/include/xo/expression2/detail/IExpression_DSequenceExpr.hpp @@ -0,0 +1,66 @@ +/** @file IExpression_DSequenceExpr.hpp + * + * Generated automagically from ingredients: + * 1. code generator: + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] + * arguments: + * --input [idl/IExpression_DSequenceExpr.json5] + * 2. jinja2 template for abstract facet .hpp file: + * [iface_facet_repr.hpp.j2] + * 3. idl for facet methods + * [idl/IExpression_DSequenceExpr.json5] + **/ + +#pragma once + +#include "Expression.hpp" +#include "Expression.hpp" +#include "DSequenceExpr.hpp" + +namespace xo { namespace scm { class IExpression_DSequenceExpr; } } + +namespace xo { + namespace facet { + template <> + struct FacetImplementation + { + using ImplType = xo::scm::IExpression_Xfer + ; + }; + } +} + +namespace xo { + namespace scm { + /** @class IExpression_DSequenceExpr + **/ + class IExpression_DSequenceExpr { + public: + /** @defgroup scm-expression-dsequenceexpr-type-traits **/ + ///@{ + using TypeDescr = xo::scm::AExpression::TypeDescr; + using Copaque = xo::scm::AExpression::Copaque; + using Opaque = xo::scm::AExpression::Opaque; + ///@} + /** @defgroup scm-expression-dsequenceexpr-methods **/ + ///@{ + // const methods + /** expression type (constant | apply | ..) **/ + static exprtype extype(const DSequenceExpr & self) noexcept; + /** placeholder for type giving possible values for this expression **/ + static TypeRef typeref(const DSequenceExpr & self) noexcept; + /** type giving possible values for this expression. Maybe null before typecheck **/ + static TypeDescr valuetype(const DSequenceExpr & self) noexcept; + + // non-const methods + /** assing to valuetype member. Useful when scaffolding expressions **/ + static void assign_valuetype(DSequenceExpr & self, TypeDescr td) noexcept; + ///@} + }; + + } /*namespace scm*/ +} /*namespace xo*/ + +/* end */ \ No newline at end of file diff --git a/include/xo/expression2/detail/IExpression_DVariable.hpp b/include/xo/expression2/detail/IExpression_DVariable.hpp index 6b9b702f..95b1becb 100644 --- a/include/xo/expression2/detail/IExpression_DVariable.hpp +++ b/include/xo/expression2/detail/IExpression_DVariable.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/IExpression_DVariable.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/include/xo/expression2/detail/IExpression_Xfer.hpp b/include/xo/expression2/detail/IExpression_Xfer.hpp index fac8c541..9f7356bc 100644 --- a/include/xo/expression2/detail/IExpression_Xfer.hpp +++ b/include/xo/expression2/detail/IExpression_Xfer.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/Expression.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/include/xo/expression2/detail/IGCObject_DUniqueString.hpp b/include/xo/expression2/detail/IGCObject_DUniqueString.hpp index b971daea..c95db10f 100644 --- a/include/xo/expression2/detail/IGCObject_DUniqueString.hpp +++ b/include/xo/expression2/detail/IGCObject_DUniqueString.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/IGCObject_DUniqueString.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/include/xo/expression2/detail/IGCObject_DVariable.hpp b/include/xo/expression2/detail/IGCObject_DVariable.hpp index 24dc591f..aee612ea 100644 --- a/include/xo/expression2/detail/IGCObject_DVariable.hpp +++ b/include/xo/expression2/detail/IGCObject_DVariable.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/IGCObject_DVariable.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/include/xo/expression2/detail/IPrintable_DApplyExpr.hpp b/include/xo/expression2/detail/IPrintable_DApplyExpr.hpp index c05e87e2..b7782166 100644 --- a/include/xo/expression2/detail/IPrintable_DApplyExpr.hpp +++ b/include/xo/expression2/detail/IPrintable_DApplyExpr.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/IPrintable_DApplyExpr.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/include/xo/expression2/detail/IPrintable_DConstant.hpp b/include/xo/expression2/detail/IPrintable_DConstant.hpp index a1e31382..35535d80 100644 --- a/include/xo/expression2/detail/IPrintable_DConstant.hpp +++ b/include/xo/expression2/detail/IPrintable_DConstant.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/IPrintable_DConstant.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/include/xo/expression2/detail/IPrintable_DDefineExpr.hpp b/include/xo/expression2/detail/IPrintable_DDefineExpr.hpp index 6d727d86..758022a6 100644 --- a/include/xo/expression2/detail/IPrintable_DDefineExpr.hpp +++ b/include/xo/expression2/detail/IPrintable_DDefineExpr.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/IPrintable_DDefineExpr.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/include/xo/expression2/detail/IPrintable_DIfElseExpr.hpp b/include/xo/expression2/detail/IPrintable_DIfElseExpr.hpp index fcf80fd5..e9cf67ff 100644 --- a/include/xo/expression2/detail/IPrintable_DIfElseExpr.hpp +++ b/include/xo/expression2/detail/IPrintable_DIfElseExpr.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/IPrintable_DIfElseExpr.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/include/xo/expression2/detail/IPrintable_DLambdaExpr.hpp b/include/xo/expression2/detail/IPrintable_DLambdaExpr.hpp index 64ab6af1..45970bd8 100644 --- a/include/xo/expression2/detail/IPrintable_DLambdaExpr.hpp +++ b/include/xo/expression2/detail/IPrintable_DLambdaExpr.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/IPrintable_DLambdaExpr.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/include/xo/expression2/detail/IPrintable_DUniqueString.hpp b/include/xo/expression2/detail/IPrintable_DUniqueString.hpp index 34c9da79..51afa9da 100644 --- a/include/xo/expression2/detail/IPrintable_DUniqueString.hpp +++ b/include/xo/expression2/detail/IPrintable_DUniqueString.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/IPrintable_DUniqueString.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/include/xo/expression2/detail/IPrintable_DVariable.hpp b/include/xo/expression2/detail/IPrintable_DVariable.hpp index 6e97451b..a31ee97e 100644 --- a/include/xo/expression2/detail/IPrintable_DVariable.hpp +++ b/include/xo/expression2/detail/IPrintable_DVariable.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/IPrintable_DVariable.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/include/xo/expression2/detail/RExpression.hpp b/include/xo/expression2/detail/RExpression.hpp index 4d717640..caf69fe0 100644 --- a/include/xo/expression2/detail/RExpression.hpp +++ b/include/xo/expression2/detail/RExpression.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/Expression.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/include/xo/expression2/symtab/ASymbolTable.hpp b/include/xo/expression2/symtab/ASymbolTable.hpp index f0c6e10f..36d4c812 100644 --- a/include/xo/expression2/symtab/ASymbolTable.hpp +++ b/include/xo/expression2/symtab/ASymbolTable.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/SymbolTable.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/include/xo/expression2/symtab/IPrintable_DLocalSymtab.hpp b/include/xo/expression2/symtab/IPrintable_DLocalSymtab.hpp index c013e937..d4481dca 100644 --- a/include/xo/expression2/symtab/IPrintable_DLocalSymtab.hpp +++ b/include/xo/expression2/symtab/IPrintable_DLocalSymtab.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/IPrintable_DLocalSymtab.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/include/xo/expression2/symtab/ISymbolTable_Any.hpp b/include/xo/expression2/symtab/ISymbolTable_Any.hpp index b642adb7..6a119832 100644 --- a/include/xo/expression2/symtab/ISymbolTable_Any.hpp +++ b/include/xo/expression2/symtab/ISymbolTable_Any.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/SymbolTable.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/include/xo/expression2/symtab/ISymbolTable_DLocalSymtab.hpp b/include/xo/expression2/symtab/ISymbolTable_DLocalSymtab.hpp index 72f409dd..2c1816e4 100644 --- a/include/xo/expression2/symtab/ISymbolTable_DLocalSymtab.hpp +++ b/include/xo/expression2/symtab/ISymbolTable_DLocalSymtab.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/ISymbolTable_DLocalSymtab.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/include/xo/expression2/symtab/ISymbolTable_Xfer.hpp b/include/xo/expression2/symtab/ISymbolTable_Xfer.hpp index 3d5f7221..2333bb05 100644 --- a/include/xo/expression2/symtab/ISymbolTable_Xfer.hpp +++ b/include/xo/expression2/symtab/ISymbolTable_Xfer.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/SymbolTable.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/include/xo/expression2/symtab/RSymbolTable.hpp b/include/xo/expression2/symtab/RSymbolTable.hpp index 600ea4f8..c72503cc 100644 --- a/include/xo/expression2/symtab/RSymbolTable.hpp +++ b/include/xo/expression2/symtab/RSymbolTable.hpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/SymbolTable.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/src/expression2/CMakeLists.txt b/src/expression2/CMakeLists.txt index 8e6565c4..ab10048e 100644 --- a/src/expression2/CMakeLists.txt +++ b/src/expression2/CMakeLists.txt @@ -10,6 +10,7 @@ set(SELF_SRCS DLambdaExpr.cpp DApplyExpr.cpp DIfElseExpr.cpp + DSequenceExpr.cpp TypeRef.cpp @@ -34,6 +35,8 @@ set(SELF_SRCS IExpression_DIfElseExpr.cpp IPrintable_DIfElseExpr.cpp + IExpression_DSequenceExpr.cpp + DLocalSymtab.cpp DGlobalSymtab.cpp diff --git a/src/expression2/DSequenceExpr.cpp b/src/expression2/DSequenceExpr.cpp index c5abf27b..5e449531 100644 --- a/src/expression2/DSequenceExpr.cpp +++ b/src/expression2/DSequenceExpr.cpp @@ -4,8 +4,19 @@ **/ #include "DSequenceExpr.hpp" +#include "detail/IExpression_DSequenceExpr.hpp" +#include +#include +#include +#include +#include +#include namespace xo { + using xo::mm::AGCObject; + using xo::facet::FacetRegistry; + using xo::reflect::typeseq; + namespace scm { obj @@ -35,8 +46,8 @@ namespace xo { return expr; } - size_type - DSequenceExpr::size() const noexcept + auto + DSequenceExpr::size() const noexcept -> size_type { return expr_v_->size(); } @@ -44,7 +55,9 @@ namespace xo { obj DSequenceExpr::operator[](std::size_t i) const { - return (*expr_v_)[i]; + obj gco = (*expr_v_)[i]; + + return FacetRegistry::instance().variant(gco); } void @@ -64,7 +77,10 @@ namespace xo { this->expr_v_ = expr_2x_v; } - this->expr_v_->push_back(expr); + obj expr_gco + = FacetRegistry::instance().variant(expr); + + this->expr_v_->push_back(expr_gco); } void @@ -73,15 +89,16 @@ namespace xo { typeref_.resolve(td); } - void + bool DSequenceExpr::pretty(const ppindentinfo & ppii) const { using xo::print::ppstate; - ppstate * pps = ppii.pps(); - - xxx; + return ppii.pps()->pretty_struct + (ppii, + "DSequenceExpr"); } + } /*namespace scm*/ } /*namespace xo*/ diff --git a/src/expression2/IExpression_DApplyExpr.cpp b/src/expression2/IExpression_DApplyExpr.cpp index 2098e050..c00e91dc 100644 --- a/src/expression2/IExpression_DApplyExpr.cpp +++ b/src/expression2/IExpression_DApplyExpr.cpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/IExpression_DApplyExpr.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/src/expression2/IExpression_DConstant.cpp b/src/expression2/IExpression_DConstant.cpp index 2d39c36d..0e91d27d 100644 --- a/src/expression2/IExpression_DConstant.cpp +++ b/src/expression2/IExpression_DConstant.cpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/IExpression_DConstant.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/src/expression2/IExpression_DDefineExpr.cpp b/src/expression2/IExpression_DDefineExpr.cpp index 3222eabd..ab0676a4 100644 --- a/src/expression2/IExpression_DDefineExpr.cpp +++ b/src/expression2/IExpression_DDefineExpr.cpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/IExpression_DDefineExpr.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/src/expression2/IExpression_DIfElseExpr.cpp b/src/expression2/IExpression_DIfElseExpr.cpp index d913eaf0..78680310 100644 --- a/src/expression2/IExpression_DIfElseExpr.cpp +++ b/src/expression2/IExpression_DIfElseExpr.cpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/IExpression_DIfElseExpr.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/src/expression2/IExpression_DLambdaExpr.cpp b/src/expression2/IExpression_DLambdaExpr.cpp index 273f5544..d9174ad2 100644 --- a/src/expression2/IExpression_DLambdaExpr.cpp +++ b/src/expression2/IExpression_DLambdaExpr.cpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/IExpression_DLambdaExpr.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/src/expression2/IExpression_DSequenceExpr.cpp b/src/expression2/IExpression_DSequenceExpr.cpp new file mode 100644 index 00000000..e269a114 --- /dev/null +++ b/src/expression2/IExpression_DSequenceExpr.cpp @@ -0,0 +1,45 @@ +/** @file IExpression_DSequenceExpr.cpp + * + * Generated automagically from ingredients: + * 1. code generator: + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] + * arguments: + * --input [idl/IExpression_DSequenceExpr.json5] + * 2. jinja2 template for abstract facet .hpp file: + * [iface_facet_any.hpp.j2] + * 3. idl for facet methods + * [idl/IExpression_DSequenceExpr.json5] +**/ + +#include "detail/IExpression_DSequenceExpr.hpp" + +namespace xo { + namespace scm { + auto + IExpression_DSequenceExpr::extype(const DSequenceExpr & self) noexcept -> exprtype + { + return self.extype(); + } + + auto + IExpression_DSequenceExpr::typeref(const DSequenceExpr & self) noexcept -> TypeRef + { + return self.typeref(); + } + + auto + IExpression_DSequenceExpr::valuetype(const DSequenceExpr & self) noexcept -> TypeDescr + { + return self.valuetype(); + } + + auto + IExpression_DSequenceExpr::assign_valuetype(DSequenceExpr & self, TypeDescr td) noexcept -> void + { + self.assign_valuetype(td); + } + + } /*namespace scm*/ +} /*namespace xo*/ + +/* end IExpression_DSequenceExpr.cpp */ \ No newline at end of file diff --git a/src/expression2/IExpression_DVariable.cpp b/src/expression2/IExpression_DVariable.cpp index 2b4a007b..ca657c36 100644 --- a/src/expression2/IExpression_DVariable.cpp +++ b/src/expression2/IExpression_DVariable.cpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/IExpression_DVariable.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/src/expression2/IGCObject_DUniqueString.cpp b/src/expression2/IGCObject_DUniqueString.cpp index b13b3f79..5d2553f0 100644 --- a/src/expression2/IGCObject_DUniqueString.cpp +++ b/src/expression2/IGCObject_DUniqueString.cpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/IGCObject_DUniqueString.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/src/expression2/IGCObject_DVariable.cpp b/src/expression2/IGCObject_DVariable.cpp index 4af0f906..8735b286 100644 --- a/src/expression2/IGCObject_DVariable.cpp +++ b/src/expression2/IGCObject_DVariable.cpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/IGCObject_DVariable.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/src/expression2/IPrintable_DApplyExpr.cpp b/src/expression2/IPrintable_DApplyExpr.cpp index 4f4a50d3..6c7c16a8 100644 --- a/src/expression2/IPrintable_DApplyExpr.cpp +++ b/src/expression2/IPrintable_DApplyExpr.cpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/IPrintable_DApplyExpr.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/src/expression2/IPrintable_DConstant.cpp b/src/expression2/IPrintable_DConstant.cpp index 1bacfb9d..02e8bde0 100644 --- a/src/expression2/IPrintable_DConstant.cpp +++ b/src/expression2/IPrintable_DConstant.cpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/IPrintable_DConstant.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/src/expression2/IPrintable_DDefineExpr.cpp b/src/expression2/IPrintable_DDefineExpr.cpp index e8c6a799..31f8c554 100644 --- a/src/expression2/IPrintable_DDefineExpr.cpp +++ b/src/expression2/IPrintable_DDefineExpr.cpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/IPrintable_DDefineExpr.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/src/expression2/IPrintable_DIfElseExpr.cpp b/src/expression2/IPrintable_DIfElseExpr.cpp index a75cd6a4..ec68b9fc 100644 --- a/src/expression2/IPrintable_DIfElseExpr.cpp +++ b/src/expression2/IPrintable_DIfElseExpr.cpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/IPrintable_DIfElseExpr.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/src/expression2/IPrintable_DLambdaExpr.cpp b/src/expression2/IPrintable_DLambdaExpr.cpp index 12e6c22c..966c9d2f 100644 --- a/src/expression2/IPrintable_DLambdaExpr.cpp +++ b/src/expression2/IPrintable_DLambdaExpr.cpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/IPrintable_DLambdaExpr.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/src/expression2/IPrintable_DLocalSymtab.cpp b/src/expression2/IPrintable_DLocalSymtab.cpp index dbd4887b..90f69407 100644 --- a/src/expression2/IPrintable_DLocalSymtab.cpp +++ b/src/expression2/IPrintable_DLocalSymtab.cpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/IPrintable_DLocalSymtab.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/src/expression2/IPrintable_DUniqueString.cpp b/src/expression2/IPrintable_DUniqueString.cpp index a7b92af8..ef7cf037 100644 --- a/src/expression2/IPrintable_DUniqueString.cpp +++ b/src/expression2/IPrintable_DUniqueString.cpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/IPrintable_DUniqueString.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/src/expression2/IPrintable_DVariable.cpp b/src/expression2/IPrintable_DVariable.cpp index 75e673ae..edf79638 100644 --- a/src/expression2/IPrintable_DVariable.cpp +++ b/src/expression2/IPrintable_DVariable.cpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/IPrintable_DVariable.json5] * 2. jinja2 template for abstract facet .hpp file: diff --git a/src/expression2/ISymbolTable_DLocalSymtab.cpp b/src/expression2/ISymbolTable_DLocalSymtab.cpp index 778cfdf4..3e5e465c 100644 --- a/src/expression2/ISymbolTable_DLocalSymtab.cpp +++ b/src/expression2/ISymbolTable_DLocalSymtab.cpp @@ -2,7 +2,7 @@ * * Generated automagically from ingredients: * 1. code generator: - * [/home/roland/proj/xo-umbrella2-claude1/xo-facet/codegen/genfacet] + * [/Users/roland/proj/xo-umbrella2/xo-facet/codegen/genfacet] * arguments: * --input [idl/ISymbolTable_DLocalSymtab.json5] * 2. jinja2 template for abstract facet .hpp file: