X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=assembler%2Fscanner.l;h=11f38907da743740a13996007436eb4fdfb5bafe;hb=e21b92e66ad6c143da489331d4d56abfa2092160;hp=5013d0e94e4e0a430fcab9f357624686cd2a7888;hpb=c2202e82a4da7ec25c1d5866f617b644bdcbb73e;p=b43-tools.git diff --git a/assembler/scanner.l b/assembler/scanner.l index 5013d0e..11f3890 100644 --- a/assembler/scanner.l +++ b/assembler/scanner.l @@ -56,7 +56,7 @@ NEWLINE ((\r)|(\n)|(\r\n)) ^{WS}*\.text{WS}*$ { update_lineinfo(); return SECTION_TEXT; } ^{WS}*\.initvals/\({IDENTIFIER}\) { update_lineinfo(); return SECTION_IVALS; } -spr[0-9a-fA-F]{3,3} { update_lineinfo(); return SPR; } +spr[0-9a-fA-F]{1,4} { update_lineinfo(); return SPR; } r/([0-9]|([1-5][0-9])|(6[0-3])) { update_lineinfo(); return GPR; } off/[0-6] { update_lineinfo(); return OFFR; } lr/[0-3] { update_lineinfo(); return LR; } @@ -127,7 +127,9 @@ jext { update_lineinfo(); return OP_JEXT; } jnext { update_lineinfo(); return OP_JNEXT; } call { update_lineinfo(); return OP_CALL; } +calls { update_lineinfo(); return OP_CALLS; } ret { update_lineinfo(); return OP_RET; } +rets { update_lineinfo(); return OP_RETS; } tkiph { update_lineinfo(); return OP_TKIPH; } tkiphs { update_lineinfo(); return OP_TKIPHS; } @@ -142,8 +144,9 @@ phy { update_lineinfo(); return IVAL_PHY; } radio { update_lineinfo(); return IVAL_RADIO; } shm16 { update_lineinfo(); return IVAL_SHM16; } shm32 { update_lineinfo(); return IVAL_SHM32; } +tram { update_lineinfo(); return IVAL_TRAM; } -@[0-9a-fA-F]{3,3} { update_lineinfo(); return RAW_CODE; } +@[0-9a-fA-F]{1,4} { update_lineinfo(); return RAW_CODE; } 0x[0-9a-fA-F]+ { update_lineinfo(); return HEXNUM; } -?[0-9]+ { update_lineinfo(); return DECNUM; } @@ -180,7 +183,7 @@ static void interpret_cppinfo(const char *str) goto error; memset(tmp, 0, sizeof(tmp)); memcpy(tmp, str, min(sizeof(tmp) - 1, - (int)(found - str))); + (size_t)(found - str))); cur_lineinfo.lineno = strtoul(tmp, NULL, 10) - 1; str = found; str++; @@ -197,7 +200,7 @@ static void interpret_cppinfo(const char *str) memset(cur_lineinfo.file, 0, sizeof(cur_lineinfo.file)); memcpy(cur_lineinfo.file, str, min(sizeof(cur_lineinfo.file) - 1, - (int)(found - str))); + (size_t)(found - str))); return; error: