3 #ifndef AWKWARD_LayoutBuilder_H_ 4 #define AWKWARD_LayoutBuilder_H_ 14 class ArrayBuilderOptions;
24 enum class state : std::int32_t {
49 using utype = std::underlying_type<state>::type;
62 template <
typename T,
typename I>
90 const std::shared_ptr<ForthMachineOf<T, I>>
119 complex(std::complex<double> x);
124 bytestring(
const char* x);
131 bytestring(
const char* x, int64_t length);
136 bytestring(
const std::string& x);
141 string(
const char* x);
148 string(
const char* x, int64_t length);
153 string(
const std::string& x);
191 template <
typename D>
194 auto const& outputs = vm_.get()->outputs();
195 auto search = outputs.find(vm_output_data);
196 if (search != outputs.end()) {
197 auto data = std::static_pointer_cast<D>(search->second.get()->ptr());
198 auto size = search->second.get()->len();
199 for (int64_t i = 0; i < size; i++) {
200 if (data.get()[i] == x) {
215 add_int64(int64_t x);
219 add_double(
double x);
223 add_complex(std::complex<double> x);
227 add_string(
const std::string& x);
257 form_builder_from_json(
const std::string& json_form);
260 template <
typename JSON>
262 from_json(
const JSON& json_doc);
266 initialise_builder(
const std::string& json_form);
273 template <
typename D>
287 std::shared_ptr<ForthMachineOf<T, I>> vm_;
290 std::map<std::string, std::shared_ptr<ForthInputBuffer>> vm_inputs_map_;
293 std::string vm_input_data_;
296 std::string vm_source_;
299 std::set<util::ForthError> ignore_;
311 #endif // AWKWARD_LayoutBuilder_H_
std::map< std::string, std::shared_ptr< ForthOutputBuffer > > ForthOutputBufferMap
Definition: FormBuilder.h:15
Container for all configuration options needed by ArrayBuilder, GrowableBuffer, and the Builder subcl...
Definition: ArrayBuilderOptions.h:13
const std::string primitive_to_state(const std::string &name)
#define LIBAWKWARD_EXPORT_SYMBOL
Definition: common.h:45
state
Definition: LayoutBuilder.h:24
Definition: BitMaskedArray.h:15
Definition: ForthMachine.h:25
static int64_t error_id
An error ID to be used to generate a user 'halt' message.
Definition: LayoutBuilder.h:252
std::string name(Mapping a, V value)
Definition: datetime_util.h:39
const FormBuilderPtr< T, I > builder() const
Definition: LayoutBuilder.h:242
std::underlying_type< state >::type utype
Definition: LayoutBuilder.h:49
bool find_index_of(D x, const std::string &vm_output_data)
Finds an index of a data in a VM output buffer. This is used to build a 'categorical' array...
Definition: LayoutBuilder.h:193
User interface to the FormBuilder system: the LayoutBuilder is a fixed reference while the FormBuilde...
Definition: FormBuilder.h:17
const std::string primitive_to_vm_format(const std::string &name)
const std::string index_form_to_vm_format(const std::string &form_index)
const std::string index_form_to_name(const std::string &form_index)
std::shared_ptr< FormBuilder< T, I > > FormBuilderPtr
Definition: FormBuilder.h:148
static int64_t next_node_id
A unique ID to use when Form nodes do not have Form key defined.
Definition: LayoutBuilder.h:248