/** @file Parser: @b int parser class. Copyright (c) 2001-2026 Art. Lebedev Studio (https://www.artlebedev.com) Authors: Konstantin Morshnev , Alexandr Petrosian */ #include "classes.h" #include "pa_vmethod_frame.h" #include "pa_request.h" #include "pa_vdouble.h" #include "pa_vint.h" #include "pa_vbool.h" volatile const char * IDENT_BOOL_C="$Id: bool.C,v 1.14 2026/04/25 13:38:46 moko Exp $" IDENT_PA_VBOOL_H; // externs void _string_format(Request& r, MethodParams&); // class class MBool: public Methoded { public: MBool(); }; // global variable DECLARE_CLASS_VAR(bool, new MBool); // methods static void _int(Request& r, MethodParams&) { VBool& vbool=GET_SELF(r, VBool); r.write(*new VInt(vbool.as_bool())); } static void _double(Request& r, MethodParams&) { VBool& vbool=GET_SELF(r, VBool); r.write(*new VDouble(vbool.as_bool())); } static void _bool(Request& r, MethodParams&) { r.write(GET_SELF(r, VBool)); } // constructor MBool::MBool(): Methoded("bool") { // ^bool.int[] // ^bool.int[default for ^string.int compatibility] add_native_method("int", Method::CT_DYNAMIC, _int, 0, 1); // ^bool.double[] // ^bool.double[default for ^string.double compatibility] add_native_method("double", Method::CT_DYNAMIC, _double, 0, 1); // ^bool.bool[] // ^bool.bool[default for ^string.bool compatibility] add_native_method("bool", Method::CT_DYNAMIC, _bool, 0, 1); }