Merge pull request #62 from greg-king5/ubiquitous

Ubiquitous
This commit is contained in:
Oliver Schmidt
2013-11-30 12:53:51 -08:00

View File

@@ -1,3 +1,4 @@
/*****************************************************************************/
/* */ /* */
/* main.c */ /* main.c */
/* */ /* */
@@ -650,15 +651,18 @@ static void OneLine (void)
* an instruction. * an instruction.
*/ */
if (CurTok.Tok == TOK_IDENT) { if (CurTok.Tok == TOK_IDENT) {
if (!UbiquitousIdents) { if (UbiquitousIdents) {
/* Macros and symbols cannot use instruction names */ /* Macros CAN be instructions, so check for them first */
Mac = FindMacro (&CurTok.SVal);
if (Mac == 0) {
Instr = FindInstruction (&CurTok.SVal);
}
} else {
/* Macros and symbols may NOT use the names of instructions */
Instr = FindInstruction (&CurTok.SVal); Instr = FindInstruction (&CurTok.SVal);
if (Instr < 0) { if (Instr < 0) {
Mac = FindMacro (&CurTok.SVal); Mac = FindMacro (&CurTok.SVal);
} }
} else {
/* Macros and symbols may use the names of instructions */
Mac = FindMacro (&CurTok.SVal);
} }
} }
@@ -745,15 +749,18 @@ static void OneLine (void)
* be a macro or instruction. * be a macro or instruction.
*/ */
if (CurTok.Tok == TOK_IDENT) { if (CurTok.Tok == TOK_IDENT) {
if (!UbiquitousIdents) { if (UbiquitousIdents) {
/* Macros and symbols cannot use instruction names */ /* Macros CAN be instructions, so check for them first */
Mac = FindMacro (&CurTok.SVal);
if (Mac == 0) {
Instr = FindInstruction (&CurTok.SVal);
}
} else {
/* Macros and symbols may NOT use the names of instructions */
Instr = FindInstruction (&CurTok.SVal); Instr = FindInstruction (&CurTok.SVal);
if (Instr < 0) { if (Instr < 0) {
Mac = FindMacro (&CurTok.SVal); Mac = FindMacro (&CurTok.SVal);
} }
} else {
/* Macros and symbols may use the names of instructions */
Mac = FindMacro (&CurTok.SVal);
} }
} }
} }
@@ -766,8 +773,7 @@ static void OneLine (void)
} else if (Mac != 0) { } else if (Mac != 0) {
/* A macro expansion */ /* A macro expansion */
MacExpandStart (Mac); MacExpandStart (Mac);
} else if (Instr >= 0 || } else if (Instr >= 0) {
(UbiquitousIdents && ((Instr = FindInstruction (&CurTok.SVal)) >= 0))) {
/* A mnemonic - assemble one instruction */ /* A mnemonic - assemble one instruction */
HandleInstruction (Instr); HandleInstruction (Instr);
} else if (PCAssignment && (CurTok.Tok == TOK_STAR || CurTok.Tok == TOK_PC)) { } else if (PCAssignment && (CurTok.Tok == TOK_STAR || CurTok.Tok == TOK_PC)) {