From d9a4da94a3aabc24cc76e487936d2c182d83e24d Mon Sep 17 00:00:00 2001 From: Bob Nystrom Date: Sat, 26 Oct 2013 14:34:15 -0700 Subject: [PATCH] "count" method on strings. --- src/vm.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/vm.c b/src/vm.c index 295a10a4..c93f4afd 100644 --- a/src/vm.c +++ b/src/vm.c @@ -38,6 +38,7 @@ static void push(Fiber* fiber, Value value); static Value pop(Fiber* fiber); static Value primitive_metaclass_new(Value receiver); static Value primitive_num_abs(Value receiver); +static Value primitive_string_count(Value receiver); VM* newVM() { @@ -62,6 +63,9 @@ VM* newVM() vm->numClass = makeClass(); PRIMITIVE(num, abs); + vm->stringClass = makeClass(); + PRIMITIVE(string, count); + return vm; } @@ -449,3 +453,11 @@ Value primitive_num_abs(Value receiver) return (Value)makeNum(value); } + + +Value primitive_string_count(Value receiver) +{ + double count = strlen(((ObjString*)receiver)->value); + + return (Value)makeNum(count); +}