Re: First Release of the ATmel AVR ASM highlighter

Joseph Wenninger <[email protected]> Thu, 25 Jul 2002 20:23:05 +0000
Newsgroups gmane.comp.kde.devel.kate
Message-ID <[email protected]>
Hi

On Wednesday 24 July 2002 15:29, Katinka Mills wrote:
> Hi all,
>
> First off thanks for your help so far :o)
>
> Tonight I have ironed out the bugs in my script, it is attached to the
> bottom of this email, so please feel free to look over it and make
> constructive critisims (this is the first XML script I have written usually
> I stick to asm (more my style).
>
> One question, atm I match my Directives on a name, the proper case for
> these is with a period "." infront of them, but when I try to match with
> the period in the item list, it does not highlight, do I need to "escape" a
> period ? and if so how would I put it in the items list as a :
> <item> "\.Blah" </item> ??
>
> Regards,
>
> Kat.

I've attached a file which should highlight eg .byte correctly. Normaly a dot 
is treated like a white space as a seperator. If you want to use it within 
keywords, you have to specify it as a weak delimiter  (weakDeliminator 
attribute).

In my modification I've assumed that the keywords are case sensitive too.

Would you mind if we put your file into the Kate distribution for KDE 3.1 ?

Kind regards
Joseph Wenninger
avr.xml (text/xml, 5 KB)
<?xml version="1.02" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<language name="Avr" version="0.09" kateversion="3.0.2" section="Sources" extensions="*.asm" mimetype="text/plain">
  <highlighting>
    <list name="Keywords">
      <item> add </item>
      <item> adc </item>
      <item> adiw </item>
      <item> sub </item>
      <item> subi </item>
      <item> sbc </item>
      <item> sbci </item>
      <item> sbiw </item>
      <item> and </item>
      <item> andi </item>
      <item> or </item>
      <item> ori </item>
      <item> eor </item>
      <item> com </item>
      <item> neg </item>
      <item> sbr </item>
      <item> cbr </item>
      <item> inc </item>
      <item> dec </item>
      <item> tst </item>
      <item> clr </item>
      <item> ser </item>
      <item> mul </item>
      <item> muls </item>
      <item> mulsu </item>
      <item> fmul </item>
      <item> fmuls </item>
      <item> fmulsu </item>
      <item> rjmp </item>
      <item> ijmp </item>
      <item> eijmp </item>
      <item> jmp </item>
      <item> rcall </item>
      <item> icall </item>
      <item> eicall </item>
      <item> call </item>
      <item> ret </item>
      <item> reti </item>
      <item> cpse </item>
      <item> cp </item>
      <item> cpc </item>
      <item> cpi </item>
      <item> sbrc </item>
      <item> sbrs </item>
      <item> sbic </item>
      <item> sbis </item>
      <item> brbs </item>
      <item> brbc </item>
      <item> breq </item>
      <item> brne </item>
      <item> brcs </item>
      <item> brcc </item>
      <item> brsh </item>
      <item> brlo </item>
      <item> brmi </item>
      <item> brpl </item>
      <item> brge </item>
      <item> brlt </item>
      <item> brhs </item>
      <item> brhc </item>
      <item> brts </item>
      <item> brtc </item>
      <item> brvc </item>
      <item> brie </item>
      <item> brid </item>
      <item> mov </item>
      <item> movw </item>
      <item> ldi </item>
      <item> lds </item>
      <item> ld </item>
      <item> ldd </item>
      <item> sts </item>
      <item> st </item>
      <item> std </item>
      <item> lpm </item>
      <item> elpm </item>
      <item> spm </item>
      <item> in </item>
      <item> out </item>
      <item> push </item>
      <item> pop </item>
      <item> lsl </item>
      <item> lsr </item>
      <item> rol </item>
      <item> ror </item>
      <item> asr </item>
      <item> swap </item>
      <item> bset </item>
      <item> bclr </item>
      <item> sbi </item>
      <item> cbi </item>
      <item> bst </item>
      <item> bld </item>
      <item> sec </item>
      <item> clc </item>
      <item> sen </item>
      <item> cln </item>
      <item> sez </item>
      <item> clz </item>
      <item> sei </item>
      <item> cli </item>
      <item> ses </item>
      <item> cls </item>
      <item> sev </item>
      <item> clv </item>
      <item> set </item>
      <item> clt </item>
      <item> seh </item>
      <item> clh </item>
      <item> break </item>
      <item> nop </item>
      <item> sleep </item>
      <item> wdr </item>
    </list>
    <list name="Directives">
      <item> .byte </item>
      <item> .cseg </item>
      <item> .db </item>
      <item> .def </item>
      <item> .device </item>
      <item> .dseg </item>
      <item> .dw </item>
      <item> .endmacro </item>
      <item> .equ </item>
      <item> .eseg </item>
      <item> .exit </item>
      <item> .include </item>
      <item> .list </item>
      <item> .listmac </item>
      <item> .macro </item>
      <item> .nolist </item>
      <item> .org </item>
      <item> .set </item>
    </list>
      <contexts>
        <context name="Normal" attribute="0" lineEndContext="0">
          <keyword name="Keywords" attribute="2" context="#stay" String="Keywords"/>
          <keyword name="Directives" attribute="3" context="#stay" String="Directives"/>
	  <DetectChar name="Strings" attribute="4" context="2" char="&quot;"/>
	  <DetectChar name="Comment" attribute="1" context="1" char=";"/>
	  <HlCHex name="hex_find" attribute="5" context="#stay"/>
	  <Int name="Numbers" attribute="6" context="0"/>
        </context>
        <context name="Comment" attribute="1" lineEndContext="0">
	</context>
        <context attribute="4" lineEndContext="#pop">
          <LineContinue attribute="4" context="#stay"/>
          <DetectChar attribute="4" context="#pop" char="&quot;"/>
        </context>
      </contexts>
      <itemDatas>
          <itemData name="Normal" defStyleNum="dsNormal"/>
          <itemData name="Comment" defStyleNum="dsComment"/>
	  <itemData name="Keywords" defStyleNum="dsKeyword"/>
	  <itemData name="Directives" defStyleNum="dsNormal"  color="#000000" selColor="#ffffff" bold="1" italic="1" />
	  <itemData name="Strings" defStyleNum="dsString"/>
	  <itemData name="Hexadecimal" defStyle="dsBaseN"/>
	  <itemData name="Numbers" defStyle="dsBaseN"/>
      </itemDatas>
  </highlighting>
  <general>
    <keywords casesensitive="1" weakDeliminator="."/>
    <comments>
      <comment name="singleLine" start=";" />
    </comments>
  </general>
</language>