Changeset 72
- Timestamp:
- 03/04/06 19:57:01 (3 years ago)
- Location:
- trunk/thune
- Files:
-
- 9 modified
-
boot.c (modified) (1 diff)
-
doc/UserManual (modified) (1 diff)
-
doc/thune.vim (modified) (1 diff)
-
eval.c (modified) (2 diffs)
-
internal.h (modified) (1 diff)
-
tests/working/factorial.good (modified) (1 diff)
-
tests/working/factorial.t (modified) (1 diff)
-
urlan.c (modified) (2 diffs)
-
urlan.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/thune/boot.c
r40 r72 10 10 " opcode! 8 'nip make :nip\n" 11 11 " opcode! 9 'tuck make :tuck\n" 12 " opcode! 10 'do make :xx-do\n" 13 " opcode! 11 'func make :func\n" 14 " opcode! 12 'iter make :iter\n" 15 " opcode! 13 'recurse make :recurse\n" 16 " opcode! 14 'loop make :xx-loop\n" 17 " opcode! 15 'return make :return\n" 18 " opcode! 16 'throw make :throw\n" 19 " opcode! 17 'try make :try\n" 20 " opcode! 18 'ift make :ift\n" 21 " opcode! 19 'iff make :iff\n" 22 " opcode! 20 '! make :!\n" 23 " opcode! 21 'quit make :quit\n" 24 " opcode! 22 'inc make :inc\n" 25 " opcode! 23 'dec make :dec\n" 26 " opcode! 24 'verify make :verify\n" 27 " opcode! 25 'verify.2 make :verify.2\n" 28 " opcode! 26 'verify.3 make :verify.3\n" 12 " opcode! 10 'rot make :rot\n" 13 " opcode! 11 'do make :xx-do\n" 14 " opcode! 12 'func make :func\n" 15 " opcode! 13 'iter make :iter\n" 16 " opcode! 14 'recurse make :recurse\n" 17 " opcode! 15 'loop make :xx-loop\n" 18 " opcode! 16 'return make :return\n" 19 " opcode! 17 'throw make :throw\n" 20 " opcode! 18 'try make :try\n" 21 " opcode! 19 'ift make :ift\n" 22 " opcode! 20 'iff make :iff\n" 23 " opcode! 21 '! make :!\n" 24 " opcode! 22 'quit make :quit\n" 25 " opcode! 23 'inc make :inc\n" 26 " opcode! 24 'dec make :dec\n" 27 " opcode! 25 'verify make :verify\n" 28 " opcode! 26 'verify.2 make :verify.2\n" 29 " opcode! 27 'verify.3 make :verify.3\n" 29 30 "] make :urlan-ops\n" 30 31 ; -
trunk/thune/doc/UserManual
r49 r72 122 122 nip (a b -- b) Remove second value on stack. 123 123 tuck (a b -- b a b) Copy top value under second value. 124 rot (a b c -- b c a) Rotate third value to top. 124 125 ======= ================= ================= 125 126 -
trunk/thune/doc/thune.vim
r49 r72 41 41 " Booleans 42 42 syn keyword thuneBoolean true false on off yes no 43 syn keyword thuneOpcode drop dup dup2 over swap inc dec 43 syn keyword thuneOpcode drop dup dup2 over swap inc dec nip tuck 44 44 45 45 " Values -
trunk/thune/eval.c
r49 r72 429 429 break; 430 430 431 //case OP_ROT: // (a b c -- b c a)432 433 431 case OP_TUCK: // (a b -- b a b) 434 432 { … … 437 435 UR_TOS[1] = UR_TOS[2]; 438 436 UR_TOS[2] = *UR_TOS; 437 } 438 ++pc; 439 break; 440 441 case OP_ROT: // (a b c -- b c a) 442 { 443 UCell tmp = UR_TOS[2]; 444 UR_TOS[2] = UR_TOS[1]; 445 UR_TOS[1] = *UR_TOS; 446 *UR_TOS = tmp; 439 447 } 440 448 ++pc; -
trunk/thune/internal.h
r40 r72 118 118 #define OP_NIP 8 119 119 #define OP_TUCK 9 120 #define OP_DO 10 121 #define OP_FUNC 11 122 #define OP_ITER 12 123 #define OP_RECURSE 13 124 #define OP_LOOP 14 125 #define OP_RETURN 15 126 #define OP_THROW 16 127 #define OP_TRY 17 128 #define OP_IF_TRUE 18 129 #define OP_IF_FALSE 19 130 #define OP_HALT 20 131 #define OP_QUIT 21 132 #define OP_INCREMENT 22 133 #define OP_DECREMENT 23 134 #define OP_VERIFY 24 135 #define OP_VERIFY_2 25 136 #define OP_VERIFY_3 26 120 #define OP_ROT 10 121 #define OP_DO 11 122 #define OP_FUNC 12 123 #define OP_ITER 13 124 #define OP_RECURSE 14 125 #define OP_LOOP 15 126 #define OP_RETURN 16 127 #define OP_THROW 17 128 #define OP_TRY 18 129 #define OP_IF_TRUE 19 130 #define OP_IF_FALSE 20 131 #define OP_HALT 21 132 #define OP_QUIT 22 133 #define OP_INCREMENT 23 134 #define OP_DECREMENT 24 135 #define OP_VERIFY 25 136 #define OP_VERIFY_2 26 137 #define OP_VERIFY_3 27 137 138 //#define OP_END 255 138 139 -
trunk/thune/tests/working/factorial.good
r5 r72 1 1 1409286144 2 10946 -
trunk/thune/tests/working/factorial.t
r5 r72 8 8 30 factorial . 9 9 10 11 [ 12 dup 2 lt? ift (drop 1 return) 13 dup 1 sub fibonacci 14 swap 2 sub fibonacci add 15 ] 16 func :fibonacci ; (n -- res) 17 18 20 fibonacci . -
trunk/thune/urlan.c
r49 r72 141 141 142 142 143 #ifdef DEBUG 144 static void _validateEnv() 145 { 146 int i; 147 148 assert( sizeof(UCell) == 16 ); 149 assert( sizeof(CEntry) == 16 ); 150 151 // Make sure endianess is correct. 152 i = 1; 153 #ifdef __BIG_ENDIAN__ 154 assert(0 == *(char*)&i && "Undefine __BIG_ENDIAN__"); 155 #else 156 assert(1 == *(char*)&i && "Define __BIG_ENDIAN__"); 157 #endif 158 } 159 #endif 160 161 143 162 extern void ur_makeCallsEval(); 144 163 extern void ur_makeCallsSeries(); … … 154 173 int n; 155 174 156 assert( sizeof(UCell) == 16 ); 157 assert( sizeof(CEntry) == 16 ); 175 #ifdef DEBUG 176 _validateEnv(); 177 #endif 158 178 159 179 ur_env = env; -
trunk/thune/urlan.h
r41 r72 36 36 #define UR_VERSION_STR "0.0.1" 37 37 #define UR_VERSION 0x000001 38 39 40 #if defined(__APPLE__) && defined(__BIG_ENDIAN__)41 #define UR_BIG_ENDIAN 142 #endif43 38 44 39 … … 448 443 449 444 #define ur_type(c) (c)->id.type 450 #ifdef UR_BIG_ENDIAN445 #ifdef __BIG_ENDIAN__ 451 446 #define ur_setType(c,t) *((uint32_t*) (c)) = t << 24 452 447 #else
