projects
/
YACASL2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
dumpwordコマンドで10進数/16進数を表す文字列が引数になるよう仕様変更
[YACASL2.git]
/
include
/
assemble.h
diff --git
a/include/assemble.h
b/include/assemble.h
index
30a4afb
..
594157c
100644
(file)
--- a/
include/assemble.h
+++ b/
include/assemble.h
@@
-1,3
+1,6
@@
+#ifndef YACASL2_ASSEMBLE_INCLUDED
+#define YACASL2_ASSEMBLE_INCLUDED
+
/* CASL IIの制限 */
enum {
LINESIZE = 1024, /* 行の最大文字数 */
/* CASL IIの制限 */
enum {
LINESIZE = 1024, /* 行の最大文字数 */
@@
-50,8
+53,11
@@
typedef enum {
SECOND = 1,
} PASS;
SECOND = 1,
} PASS;
-/* ラベル表からアドレスを検索する */
-WORD getlabel(const char *label, const char *prog);
+/* プログラム名とラベルに対応するハッシュ値を返す */
+unsigned labelhash(const char *prog, const char *label);
+
+/* プログラム名とラベルに対応するアドレスをラベル表から検索する */
+WORD getlabel(const char *prog, const char *label);
/* ラベルを表に追加する */
bool addlabel(const char *prog, const char *label, WORD word);
/* ラベルを表に追加する */
bool addlabel(const char *prog, const char *label, WORD word);
@@
-98,7
+104,7
@@
WORD gethex(const char *str);
/* アドレスを返す */
/* アドレスには、リテラル/10進定数/16進定数/アドレス定数が含まれる */
/* アドレスを返す */
/* アドレスには、リテラル/10進定数/16進定数/アドレス定数が含まれる */
-WORD getadr(const char *str, PASS pass);
+WORD getadr(const char *
prog, const char *
str, PASS pass);
/* 定数の前に等号(=)をつけて記述される、リテラルを返す */
/* リテラルには、10進定数/16進定数/文字定数が含まれる */
/* 定数の前に等号(=)をつけて記述される、リテラルを返す */
/* リテラルには、10進定数/16進定数/文字定数が含まれる */
@@
-145,3
+151,5
@@
bool writeRPUSH(PASS pass);
/* マクロ命令「RPOP」をメモリに書込 */
bool writeRPOP(PASS pass);
/* マクロ命令「RPOP」をメモリに書込 */
bool writeRPOP(PASS pass);
+
+#endif