disassembler: Emit %start directive. This avoids a warning when re-assembling
[b43-tools.git] / assembler / scanner.l
index 16f375ca2d0fa974268b70ab6770d47a6312a213..80b204f6df33d3af0398838217c51e8fc29b9e19 100644 (file)
@@ -51,11 +51,12 @@ NEWLINE             ((\r)|(\n)|(\r\n))
 
 ^{WS}*"%"{WS}*arch     { update_lineinfo(); return ASM_ARCH; }
 ^{WS}*"%"{WS}*start    { update_lineinfo(); return ASM_START; }
+"%"{WS}*assert         { update_lineinfo(); return ASM_ASSERT; }
 
 ^{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; }
@@ -67,6 +68,10 @@ lr/[0-3]             { update_lineinfo(); return LR; }
 \(                     { update_lineinfo(); return PAREN_OPEN; }
 \)                     { update_lineinfo(); return PAREN_CLOSE; }
 
+==                     { update_lineinfo(); return EQUAL; }
+!=                     { update_lineinfo(); return NOT_EQUAL; }
+\|\|                   { update_lineinfo(); return LOGICAL_OR; }
+\&\&                   { update_lineinfo(); return LOGICAL_AND; }
 \+                     { update_lineinfo(); return PLUS; }
 \-                     { update_lineinfo(); return MINUS; }
 \*                     { update_lineinfo(); return MULTIPLY; }
@@ -137,8 +142,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; }