From 1ad50ce4e6ed74c8eeb89a1f2780e6ed58a72b2b Mon Sep 17 00:00:00 2001 From: rubidium Date: Wed, 25 Feb 2009 01:21:50 +0000 Subject: (svn r15578) -Change: unexternalise squirrel. --- src/3rdparty/squirrel/samples/methcall.nut | 61 ++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 src/3rdparty/squirrel/samples/methcall.nut (limited to 'src/3rdparty/squirrel/samples/methcall.nut') diff --git a/src/3rdparty/squirrel/samples/methcall.nut b/src/3rdparty/squirrel/samples/methcall.nut new file mode 100644 index 000000000..131d26228 --- /dev/null +++ b/src/3rdparty/squirrel/samples/methcall.nut @@ -0,0 +1,61 @@ +/*translation of the methcall test from The Great Computer Language Shootout +*/ + +Toggle <- { + bool=null +} + +function Toggle::value() { + return bool; +} + +function Toggle::activate() { + bool = !bool; + return this; +} + +function Toggle::new(startstate) { + local newo=clone this; + newo.bool = startstate; + return newo; +} + +NthToggle <- { + count_max=null + count=0 +} + +function NthToggle::new(start_state,max_counter) +{ + local newo=delegate ::Toggle.new(start_state) : clone this; + newo.count_max <- max_counter + return newo; +} + +function NthToggle::activate () +{ + count+=1 + if (count >= count_max) { + bool = !bool; + count = 0; + } + return this; +} + + +local n = ARGS.len()!=0?ARGS[0].tointeger():1 + +local val = 1; +local toggle = Toggle.new(val); +for (local i=0; i