blob: fc55132f39763ed513451a33c1a81927ac2932ea [file] [log] [blame]
Damiend99b0522013-12-21 18:17:45 +00001#include <stdlib.h>
Damiend99b0522013-12-21 18:17:45 +00002
3#include "nlr.h"
4#include "misc.h"
5#include "mpconfig.h"
Damien George55baff42014-01-21 21:40:13 +00006#include "qstr.h"
Damiend99b0522013-12-21 18:17:45 +00007#include "obj.h"
Damien George4e8dc8c2014-01-27 23:15:32 +00008#include "runtime0.h"
Damiend99b0522013-12-21 18:17:45 +00009
10typedef struct _mp_obj_none_t {
11 mp_obj_base_t base;
12} mp_obj_none_t;
13
Paul Sokolovskyd5df6cd2014-02-12 18:15:40 +020014STATIC void none_print(void (*print)(void *env, const char *fmt, ...), void *env, mp_obj_t self_in, mp_print_kind_t kind) {
Damiend99b0522013-12-21 18:17:45 +000015 print(env, "None");
16}
17
Paul Sokolovskyd5df6cd2014-02-12 18:15:40 +020018STATIC mp_obj_t none_unary_op(int op, mp_obj_t o_in) {
Damien George4e8dc8c2014-01-27 23:15:32 +000019 switch (op) {
Damien Georged17926d2014-03-30 13:35:08 +010020 case MP_UNARY_OP_BOOL: return mp_const_false;
Damien Georgeea8d06c2014-04-17 23:19:36 +010021 default: return MP_OBJ_NOT_SUPPORTED;
Damien George4e8dc8c2014-01-27 23:15:32 +000022 }
23}
24
Damien George07ddab52014-03-29 13:15:08 +000025const mp_obj_type_t mp_type_NoneType = {
Damien Georgec5966122014-02-15 16:10:44 +000026 { &mp_type_type },
Damien Georgea71c83a2014-02-15 11:34:50 +000027 .name = MP_QSTR_NoneType,
Paul Sokolovsky860ffb02014-01-05 22:34:09 +020028 .print = none_print,
Damien George4e8dc8c2014-01-27 23:15:32 +000029 .unary_op = none_unary_op,
Damiend99b0522013-12-21 18:17:45 +000030};
31
Damien George07ddab52014-03-29 13:15:08 +000032const mp_obj_none_t mp_const_none_obj = {{&mp_type_NoneType}};