diff --git a/src/macro/MacroValue.cc b/src/macro/MacroValue.cc index c44f80c13fd4137aaff526de28b1ed7fc575d3bd..4d1f0ca05f146ea96f3483bffc9c36cf36ee1ca3 100644 --- a/src/macro/MacroValue.cc +++ b/src/macro/MacroValue.cc @@ -329,6 +329,12 @@ StringMV::print() return "'" + value + "'"; } +shared_ptr<IntMV> +StringMV::length() noexcept(false) +{ + return make_shared<IntMV>(value.length()); +} + FuncMV::FuncMV(vector<string> args_arg, string body_arg) : args{move(args_arg)}, body{move(body_arg)} { diff --git a/src/macro/MacroValue.hh b/src/macro/MacroValue.hh index b8e782d0da884f4f120734b18a7cfbfd9cfaeec1..35c9c934d956bc75fb18db07f0ee01bb237b90cb 100644 --- a/src/macro/MacroValue.hh +++ b/src/macro/MacroValue.hh @@ -161,6 +161,7 @@ public: //! Returns underlying string value string toString() override; string print() override; + shared_ptr<IntMV> length() noexcept(false) override; }; class FuncMV : public MacroValue