From cd401d39281552be160ce3ca21450423748457b1 Mon Sep 17 00:00:00 2001
From: Stephan Hadinger
Date: Tue, 18 Jan 2022 22:13:40 +0100
Subject: [PATCH 1/2] Berry check non-method
---
lib/libesp32/berry/generate/be_const_strtab.h | 5 +
.../berry/generate/be_const_strtab_def.h | 1937 +++++++++--------
.../generate/be_fixed_be_class_tasmota.h | 151 +-
.../berry/generate/be_fixed_introspect.h | 11 +-
lib/libesp32/berry/src/be_introspectlib.c | 22 +-
lib/libesp32/berry/src/be_object.h | 4 +
lib/libesp32/berry/src/be_parser.c | 3 +-
lib/libesp32/berry/src/be_vector.c | 6 +-
lib/libesp32/berry/src/be_vm.c | 25 +-
lib/libesp32/berry/tests/bitwise.be | 14 +
lib/libesp32/berry/tests/call.be | 102 +
lib/libesp32/berry/tests/class_static.be | 122 ++
lib/libesp32/berry/tests/compound.be | 11 +-
.../berry/tests/introspect_ismethod.be | 29 +
lib/libesp32/berry/tests/json.be | 5 +
lib/libesp32/berry/tests/lexer.be | 1 -
lib/libesp32/berry/tests/map.be | 32 +
lib/libesp32/berry/tests/math.be | 14 +
.../berry_tasmota/src/be_animate_lib.c | 24 +-
.../berry_tasmota/src/be_autoconf_lib.c | 32 +-
lib/libesp32/berry_tasmota/src/be_driverlib.c | 2 +-
.../berry_tasmota/src/be_tasmotalib.c | 315 +--
.../berry_tasmota/src/embedded/Tasmota.be | 14 +
23 files changed, 1651 insertions(+), 1230 deletions(-)
create mode 100644 lib/libesp32/berry/tests/bitwise.be
create mode 100644 lib/libesp32/berry/tests/call.be
create mode 100644 lib/libesp32/berry/tests/class_static.be
create mode 100644 lib/libesp32/berry/tests/introspect_ismethod.be
create mode 100644 lib/libesp32/berry/tests/map.be
create mode 100644 lib/libesp32/berry/tests/math.be
diff --git a/lib/libesp32/berry/generate/be_const_strtab.h b/lib/libesp32/berry/generate/be_const_strtab.h
index c17f3d2cd..fc067efff 100644
--- a/lib/libesp32/berry/generate/be_const_strtab.h
+++ b/lib/libesp32/berry/generate/be_const_strtab.h
@@ -14,6 +14,7 @@ extern const bcstring be_const_str_BRY_X3A_X20ERROR_X2C_X20bad_X20json_X3A_X20;
extern const bcstring be_const_str_BRY_X3A_X20Exception_X3E_X20_X27_X25s_X27_X20_X2D_X20_X25s;
extern const bcstring be_const_str_BRY_X3A_X20could_X20not_X20save_X20compiled_X20file_X20_X25s_X20_X28_X25s_X29;
extern const bcstring be_const_str_BRY_X3A_X20failed_X20to_X20load_X20_persist_X2Ejson;
+extern const bcstring be_const_str_BRY_X3A_X20method_X20not_X20allowed_X2C_X20use_X20a_X20closure_X20like_X20_X27_X2F_X20args_X20_X2D_X3E_X20obj_X2Efunc_X28args_X29_X27;
extern const bcstring be_const_str_BUTTON_CONFIGURATION;
extern const bcstring be_const_str_CFG_X3A_X20Exception_X3E_X20_X27_X25s_X27_X20_X2D_X20_X25s;
extern const bcstring be_const_str_CFG_X3A_X20No_X20_X27_X2A_X2Eautoconf_X27_X20file_X20found;
@@ -261,6 +262,7 @@ extern const bcstring be_const_str_cb_obj;
extern const bcstring be_const_str_ceil;
extern const bcstring be_const_str_char;
extern const bcstring be_const_str_chars_in_string;
+extern const bcstring be_const_str_check_not_method;
extern const bcstring be_const_str_check_privileged_access;
extern const bcstring be_const_str_class;
extern const bcstring be_const_str_class_init_obj;
@@ -451,6 +453,7 @@ extern const bcstring be_const_str_ins_ramp;
extern const bcstring be_const_str_ins_time;
extern const bcstring be_const_str_insert;
extern const bcstring be_const_str_instance;
+extern const bcstring be_const_str_instance_X20required;
extern const bcstring be_const_str_instance_size;
extern const bcstring be_const_str_int;
extern const bcstring be_const_str_internal_error;
@@ -462,6 +465,7 @@ extern const bcstring be_const_str_is_dirty;
extern const bcstring be_const_str_is_first_time;
extern const bcstring be_const_str_is_running;
extern const bcstring be_const_str_isinstance;
+extern const bcstring be_const_str_ismethod;
extern const bcstring be_const_str_isnan;
extern const bcstring be_const_str_isrunning;
extern const bcstring be_const_str_issubclass;
@@ -725,6 +729,7 @@ extern const bcstring be_const_str_true;
extern const bcstring be_const_str_try;
extern const bcstring be_const_str_try_rule;
extern const bcstring be_const_str_type;
+extern const bcstring be_const_str_type_error;
extern const bcstring be_const_str_udp;
extern const bcstring be_const_str_unknown_X20instruction;
extern const bcstring be_const_str_update;
diff --git a/lib/libesp32/berry/generate/be_const_strtab_def.h b/lib/libesp32/berry/generate/be_const_strtab_def.h
index e2a82bb92..e621af056 100644
--- a/lib/libesp32/berry/generate/be_const_strtab_def.h
+++ b/lib/libesp32/berry/generate/be_const_strtab_def.h
@@ -1,706 +1,710 @@
be_define_const_str(, "", 2166136261u, 0, 0, NULL);
-be_define_const_str(_X0A, "\n", 252472541u, 0, 1, &be_const_str__X3Cp_X3E_X3Csmall_X3E_X26nbsp_X3B_X28This_X20feature_X20requires_X20an_X20internet_X20connection_X29_X3C_X2Fsmall_X3E_X3C_X2Fp_X3E);
-be_define_const_str(_X20, " ", 621580159u, 0, 1, &be_const_str__X2Ew);
-be_define_const_str(_X21_X3D, "!=", 2428715011u, 0, 2, &be_const_str__begin_transmission);
-be_define_const_str(_X21_X3D_X3D, "!==", 559817114u, 0, 3, &be_const_str_montserrat_font);
-be_define_const_str(_X23, "#", 638357778u, 0, 1, &be_const_str_CFG_X3A_X20exception_X20_X27_X25s_X27_X20_X2D_X20_X27_X25s_X27);
-be_define_const_str(_X23autoexec_X2Ebat, "#autoexec.bat", 3382890497u, 0, 13, &be_const_str_SERIAL_7N2);
-be_define_const_str(_X23autoexec_X2Ebe, "#autoexec.be", 1181757091u, 0, 12, &be_const_str__X3Clegend_X3E_X3Cb_X20title_X3D_X27New_X20autoconf_X27_X3E_X26nbsp_X3BSelect_X20new_X20auto_X2Dconfiguration_X3C_X2Fb_X3E_X3C_X2Flegend_X3E);
-be_define_const_str(_X23display_X2Eini, "#display.ini", 182218220u, 0, 12, &be_const_str_call_native);
-be_define_const_str(_X23init_X2Ebat, "#init.bat", 3297595077u, 0, 9, &be_const_str__X3D_X3C_X3E_X21);
-be_define_const_str(_X23preinit_X2Ebe, "#preinit.be", 687035716u, 0, 11, &be_const_str_CFG_X3A_X20multiple_X20autoconf_X20files_X20found_X2C_X20aborting_X20_X28_X27_X25s_X27_X20_X2B_X20_X27_X25s_X27_X29);
-be_define_const_str(_X2502d_X25s_X2502d, "%02d%s%02d", 1587999717u, 0, 10, &be_const_str__X3Cp_X20style_X3D_X27width_X3A340px_X3B_X27_X3E_X3Cb_X3EException_X3A_X3C_X2Fb_X3E_X3Cbr_X3E_X27_X25s_X27_X3Cbr_X3E_X25s_X3C_X2Fp_X3E);
-be_define_const_str(_X2504d_X2D_X2502d_X2D_X2502dT_X2502d_X3A_X2502d_X3A_X2502d, "%04d-%02d-%02dT%02d:%02d:%02d", 3425528601u, 0, 29, &be_const_str_resp_cmnd);
-be_define_const_str(_X25s_X2Eautoconf, "%s.autoconf", 3560383524u, 0, 11, &be_const_str_AudioOutputI2S);
-be_define_const_str(_X26lt_X3BError_X3A_X20apply_X20new_X20or_X20remove_X26gt_X3B, "<Error: apply new or remove>", 2855507949u, 0, 34, &be_const_str__X2Ep);
-be_define_const_str(_X26lt_X3BNone_X26gt_X3B, "<None>", 2602165498u, 0, 12, &be_const_str_deregister_obj);
-be_define_const_str(_X28_X29, "()", 685372826u, 0, 2, &be_const_str_sin);
-be_define_const_str(_X2B, "+", 772578730u, 0, 1, &be_const_str__end_transmission);
-be_define_const_str(_X2C, ",", 688690635u, 0, 1, &be_const_str_begin_multicast);
-be_define_const_str(_X2D_X2D_X3A_X2D_X2D, "--:--", 1370615441u, 0, 5, &be_const_str_find_op);
-be_define_const_str(_X2E, ".", 722245873u, 0, 1, &be_const_str_STATE_DEFAULT);
-be_define_const_str(_X2E_X2E, "..", 2748622605u, 0, 2, &be_const_str_cb_event_closure);
-be_define_const_str(_X2Eautoconf, ".autoconf", 2524679088u, 0, 9, NULL);
-be_define_const_str(_X2Ebe, ".be", 1325797348u, 0, 3, &be_const_str_add_rule);
-be_define_const_str(_X2Ebec, ".bec", 3985273221u, 0, 4, &be_const_str_function);
-be_define_const_str(_X2Elen, ".len", 850842136u, 0, 4, &be_const_str__X2Ep1);
-be_define_const_str(_X2Ep, ".p", 1171526419u, 0, 2, &be_const_str_imin);
-be_define_const_str(_X2Ep1, ".p1", 249175686u, 0, 3, NULL);
-be_define_const_str(_X2Ep2, ".p2", 232398067u, 0, 3, &be_const_str_can_show);
-be_define_const_str(_X2Esize, ".size", 1965188224u, 0, 5, &be_const_str__archive);
-be_define_const_str(_X2Etapp, ".tapp", 1363391594u, 0, 5, &be_const_str_fromb64);
-be_define_const_str(_X2Ew, ".w", 1255414514u, 0, 2, NULL);
-be_define_const_str(_X2F, "/", 705468254u, 0, 1, NULL);
-be_define_const_str(_X2F_X2Eautoconf, "/.autoconf", 2212074393u, 0, 10, &be_const_str__X3F);
-be_define_const_str(_X2F_X3Frst_X3D, "/?rst=", 580074707u, 0, 6, &be_const_str__fl);
-be_define_const_str(_X2Fac, "/ac", 3904651978u, 0, 3, &be_const_str__X3C_X2Fselect_X3E_X3Cp_X3E_X3C_X2Fp_X3E);
-be_define_const_str(_X3A, ":", 1057798253u, 0, 1, &be_const_str_SERIAL_8O2);
-be_define_const_str(_X3C, "<", 957132539u, 0, 1, &be_const_str_getbits);
-be_define_const_str(_X3C_X2Fform_X3E_X3C_X2Fp_X3E, "
", 3546571739u, 0, 11, &be_const_str_every_100ms);
-be_define_const_str(_X3C_X2Fselect_X3E_X3Cp_X3E_X3C_X2Fp_X3E, "", 1863865923u, 0, 16, &be_const_str__X3Cinstance_X3A_X20_X25s_X28_X25s_X2C_X20_X25s_X2C_X20_X25s_X29);
-be_define_const_str(_X3C_X3D, "<=", 2499223986u, 0, 2, &be_const_str__timers);
-be_define_const_str(_X3Cbutton_X20name_X3D_X27reapply_X27_X20class_X3D_X27button_X20bgrn_X27_X3ERe_X2Dapply_X20current_X20configuration_X3C_X2Fbutton_X3E, "", 3147934216u, 0, 82, &be_const_str_Wire);
-be_define_const_str(_X3Cbutton_X20name_X3D_X27zipapply_X27_X20class_X3D_X27button_X20bgrn_X27_X3EApply_X20configuration_X3C_X2Fbutton_X3E, "", 1205771629u, 0, 72, &be_const_str_https_X3A_X2F_X2Fraw_X2Egithubusercontent_X2Ecom_X2Ftasmota_X2Fautoconf_X2Fmain_X2F_X25s_X2F_X25s_X2Eautoconf);
-be_define_const_str(_X3Cfieldset_X3E_X3Cstyle_X3E_X2Ebdis_X7Bbackground_X3A_X23888_X3B_X7D_X2Ebdis_X3Ahover_X7Bbackground_X3A_X23888_X3B_X7D_X3C_X2Fstyle_X3E, "", 2052843416u, 0, 25, &be_const_str_I2C_X3A);
-be_define_const_str(_X3Cp_X3E_X3Cform_X20id_X3Dac_X20action_X3D_X27ac_X27_X20style_X3D_X27display_X3A_X20block_X3B_X27_X20method_X3D_X27get_X27_X3E_X3Cbutton_X3E_X26_X23129668_X3B_X20Auto_X2Dconfiguration_X3C_X2Fbutton_X3E_X3C_X2Fform_X3E_X3C_X2Fp_X3E, "", 452285201u, 0, 120, &be_const_str_webclient);
-be_define_const_str(_X3Cp_X3E_X3Cform_X20id_X3Dreapply_X20style_X3D_X27display_X3A_X20block_X3B_X27_X20action_X3D_X27_X2Fac_X27_X20method_X3D_X27post_X27_X20, "", 3546571739u, 0, 11, &be_const_str_draw_line_dsc);
+be_define_const_str(_X3C_X2Fselect_X3E_X3Cp_X3E_X3C_X2Fp_X3E, "", 1863865923u, 0, 16, &be_const_str_publish_result);
+be_define_const_str(_X3C_X3D, "<=", 2499223986u, 0, 2, &be_const_str__X3D_X3C_X3E_X21);
+be_define_const_str(_X3Cbutton_X20name_X3D_X27reapply_X27_X20class_X3D_X27button_X20bgrn_X27_X3ERe_X2Dapply_X20current_X20configuration_X3C_X2Fbutton_X3E, "", 3147934216u, 0, 82, &be_const_str_AudioOutputI2S);
+be_define_const_str(_X3Cbutton_X20name_X3D_X27zipapply_X27_X20class_X3D_X27button_X20bgrn_X27_X3EApply_X20configuration_X3C_X2Fbutton_X3E, "", 1205771629u, 0, 72, &be_const_str__available);
+be_define_const_str(_X3Cfieldset_X3E_X3Cstyle_X3E_X2Ebdis_X7Bbackground_X3A_X23888_X3B_X7D_X2Ebdis_X3Ahover_X7Bbackground_X3A_X23888_X3B_X7D_X3C_X2Fstyle_X3E, "", 2052843416u, 0, 25, &be_const_str_cosh);
+be_define_const_str(_X3Cp_X3E_X3Cform_X20id_X3Dac_X20action_X3D_X27ac_X27_X20style_X3D_X27display_X3A_X20block_X3B_X27_X20method_X3D_X27get_X27_X3E_X3Cbutton_X3E_X26_X23129668_X3B_X20Auto_X2Dconfiguration_X3C_X2Fbutton_X3E_X3C_X2Fform_X3E_X3C_X2Fp_X3E, "", 452285201u, 0, 120, &be_const_str_push);
+be_define_const_str(_X3Cp_X3E_X3Cform_X20id_X3Dreapply_X20style_X3D_X27display_X3A_X20block_X3B_X27_X20action_X3D_X27_X2Fac_X27_X20method_X3D_X27post_X27_X20, "