projects
/
YACASL2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
malloc周辺を中心としたリファクタリング
[YACASL2.git]
/
src
/
assemble.c
diff --git
a/src/assemble.c
b/src/assemble.c
index
c9f1345
..
7dcd888
100644
(file)
--- a/
src/assemble.c
+++ b/
src/assemble.c
@@
-47,7
+47,7
@@
WORD getgr(const char *str, bool is_x)
WORD r;
/* 「GR[0-7]」以外の文字列では、0xFFFFを返して終了 */
if(!(strlen(str) == 3 && strncmp(str, "GR", 2) == 0 &&
WORD r;
/* 「GR[0-7]」以外の文字列では、0xFFFFを返して終了 */
if(!(strlen(str) == 3 && strncmp(str, "GR", 2) == 0 &&
- (*(str+2) >= '0' && *(str+2) <= '0' +
GRSIZE
)))
+ (*(str+2) >= '0' && *(str+2) <= '0' +
(GRSIZE - 1)
)))
{
return 0xFFFF;
}
{
return 0xFFFF;
}
@@
-167,9
+167,9
@@
void writeDC(const char *str, PASS pass)
bool assemblecmd(const CMDLINE *cmdl, PASS pass)
{
int i = 0;
bool assemblecmd(const CMDLINE *cmdl, PASS pass)
{
int i = 0;
-
CASLCMD cm
d = 0;
+
ASCMDID cmdi
d = 0;
bool status = false;
bool status = false;
-
CMDARRAY
ascmd[] = {
+
ASCMD
ascmd[] = {
{ START, 0, 1, "START" },
{ END, 0, 0, "END" },
{ DC, 1, OPDSIZE, "DC" },
{ START, 0, 1, "START" },
{ END, 0, 0, "END" },
{ DC, 1, OPDSIZE, "DC" },
@@
-183,12
+183,12
@@
bool assemblecmd(const CMDLINE *cmdl, PASS pass)
setcerr(106, NULL); /* operand count mismatch */
return false;
}
setcerr(106, NULL); /* operand count mismatch */
return false;
}
- cmd = ascmd[i].cmdid;
+ cmd
id
= ascmd[i].cmdid;
break;
}
} while(ascmd[++i].cmdid != 0);
/* アセンブラ命令 */
break;
}
} while(ascmd[++i].cmdid != 0);
/* アセンブラ命令 */
- switch(cmd)
+ switch(cmd
id
)
{
case START:
if(cmdl->label == NULL) {
{
case START:
if(cmdl->label == NULL) {
@@
-196,7
+196,7
@@
bool assemblecmd(const CMDLINE *cmdl, PASS pass)
return false;
}
/* プログラム名の設定 */
return false;
}
/* プログラム名の設定 */
- asprop->prog = strdup
(cmdl->label
);
+ asprop->prog = strdup
_chk(cmdl->label, "asprop.prog"
);
/* オペランドがある場合、実行開始番地を設定 */
if(pass == SECOND && cmdl->opd->opdc == 1) {
if((progprop->start = getlabel(asprop->prog, cmdl->opd->opdv[0])) == 0xFFFF) {
/* オペランドがある場合、実行開始番地を設定 */
if(pass == SECOND && cmdl->opd->opdc == 1) {
if((progprop->start = getlabel(asprop->prog, cmdl->opd->opdv[0])) == 0xFFFF) {
@@
-249,9
+249,9
@@
bool assemblecmd(const CMDLINE *cmdl, PASS pass)
bool macrocmd(const CMDLINE *cmdl, PASS pass)
{
int i = 0;
bool macrocmd(const CMDLINE *cmdl, PASS pass)
{
int i = 0;
-
CASLCMD cm
d;
+
MACROCMDID cmdi
d;
bool status = false;
bool status = false;
-
CMDARRAY
macrocmd[] = {
+
MACROCMD
macrocmd[] = {
{ IN, 2, 2, "IN" },
{ OUT, 2, 2, "OUT" },
{ RPUSH, 0, 0, "RPUSH" },
{ IN, 2, 2, "IN" },
{ OUT, 2, 2, "OUT" },
{ RPUSH, 0, 0, "RPUSH" },
@@
-261,15
+261,17
@@
bool macrocmd(const CMDLINE *cmdl, PASS pass)
do {
if(strcmp(cmdl->cmd, macrocmd[i].cmd) == 0) {
do {
if(strcmp(cmdl->cmd, macrocmd[i].cmd) == 0) {
- if(cmdl->opd->opdc < macrocmd[i].opdc_min || cmdl->opd->opdc > macrocmd[i].opdc_max) {
+ if(cmdl->opd->opdc < macrocmd[i].opdc_min ||
+ cmdl->opd->opdc > macrocmd[i].opdc_max)
+ {
setcerr(106, NULL); /* operand count mismatch */
return false;
}
setcerr(106, NULL); /* operand count mismatch */
return false;
}
- cmd = macrocmd[i].cmdid;
+ cmd
id
= macrocmd[i].cmdid;
break;
}
} while(macrocmd[++i].cmdid != 0);
break;
}
} while(macrocmd[++i].cmdid != 0);
- switch(cmd)
+ switch(cmd
id
)
{
case IN:
status = writeIN(cmdl->opd->opdv[0], cmdl->opd->opdv[1], pass);
{
case IN:
status = writeIN(cmdl->opd->opdv[0], cmdl->opd->opdv[1], pass);