ハッシュ関数を共用体版にし、ラベルの範囲をプログラム内だけで有効に
[YACASL2.git] / include / casl2.h
index 65d2870..fde1207 100644 (file)
@@ -6,6 +6,7 @@
 #include <assert.h>
 #include <stdbool.h>
 #include <time.h>
+#include "hash.h"
 
 #define ARRAYSIZE(array) (sizeof(array)/sizeof(array[0]))
 
@@ -14,12 +15,9 @@ enum {
     CMDSIZE = 4,      /* 命令の最大文字数 */
     REGSIZE = 8,      /* 汎用レジスタの数 */
     DEFAULT_MEMSIZE = 512,    /* デフォルトのメモリ容量。COMET II規格では、65536語 */
-    DEFAULT_CLOCKS = 5000000  /* デフォルトのクロック周波数。COMET II規格では、未定義 */
+    DEFAULT_CLOCKS = 5000000, /* デフォルトのクロック周波数。COMET II規格では、未定義 */
 };
 
-/* ハッシュ値を取得する */
-unsigned hash(const char *key, int size);
-
 /* COMET IIの基本データサイズ */
 typedef unsigned short WORD;
 
@@ -33,7 +31,7 @@ extern WORD GR[REGSIZE], SP, PR, FR;
 enum {
     OF = 0x4,    /* Overflow Flag */
     SF = 0x2,    /* Sign Flag */
-    ZF = 0x1     /* Zero Flag */
+    ZF = 0x1,    /* Zero Flag */
 };
 
 /* エラー番号 */
@@ -94,7 +92,7 @@ typedef enum {
     R1_R2 = 020,
     ADR_X = 030,
     R_ = 040,
-    NONE = 0
+    NONE = 0,
 } CMDTYPE;
 
 typedef struct {