Parcourir la source

Enable syntax highlighting

git-svn-id: file:///var/svn/tigccpp/trunk@305 9552661e-59e3-4036-b4f2-dbe53926924f
kevinkofler il y a 18 ans
Parent
commit
1c2c67f5ad
6 fichiers modifiés avec 746 ajouts et 13 suppressions
  1. 5 2
      ktigcc/KTIGCC.pws
  2. 15 3
      ktigcc/Makefile
  3. 429 0
      ktigcc/gnuasm68k.xml
  4. 4 0
      ktigcc/ktigcc.pro
  5. 24 8
      ktigcc/mainform.ui.h
  6. 269 0
      ktigcc/masm68k.xml

+ 5 - 2
ktigcc/KTIGCC.pws

@@ -6,8 +6,8 @@ RunInTerminal=true
 clean before build=false
 
 [filenumbers]
-0=12
-1=17
+0=35
+1=426
 2=27
 3=4
 
@@ -22,6 +22,9 @@ filter.file.unmatch=*.so *.o *.a *.la
 filter.file.ignore.hidden=0
 filter.dir.ignore.hidden=0
 
+[breakpoints]
+0=2,,0,20,0,,mainform.ui.h,426,6,0,MainForm\\3A\\3AfileTreeClicked\\28QListViewItem\\2A\\29,,1132549742,
+
 [filelist]
 0=/root/ktigcc/ktigcc.cpp
 1=/root/ktigcc/mainform.ui.h

+ 15 - 3
ktigcc/Makefile

@@ -1,6 +1,6 @@
 #############################################################################
 # Makefile for building: ktigcc
-# Generated by qmake (1.07a) (Qt 3.3.4) on: Sun Nov 20 11:10:37 2005
+# Generated by qmake (1.07a) (Qt 3.3.4) on: Mon Nov 21 06:06:46 2005
 # Project:  ktigcc.pro
 # Template: app
 # Command: $(QMAKE) -o Makefile ktigcc.pro
@@ -189,7 +189,19 @@ FORCE:
 
 ####### Install
 
-install:  
+install_syntaxfiles: all 
+	@$(CHK_DIR_EXISTS) "$(INSTALL_ROOT)/usr/share/apps/katepart/syntax/" || $(MKDIR) "$(INSTALL_ROOT)/usr/share/apps/katepart/syntax/"
+	-$(INSTALL_FILE) "gnuasm68k.xml" "$(INSTALL_ROOT)/usr/share/apps/katepart/syntax/"
+	-$(INSTALL_FILE) "masm68k.xml" "$(INSTALL_ROOT)/usr/share/apps/katepart/syntax/"
 
-uninstall:  
+
+uninstall_syntaxfiles: 
+	-$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/apps/katepart/syntax/gnuasm68k.xml"
+	-$(DEL_FILE) -r "$(INSTALL_ROOT)/usr/share/apps/katepart/syntax/masm68k.xml"
+	-$(DEL_DIR) "$(INSTALL_ROOT)/usr/share/apps/katepart/syntax/"
+
+
+install: install_syntaxfiles  
+
+uninstall: uninstall_syntaxfiles  
 

+ 429 - 0
ktigcc/gnuasm68k.xml

@@ -0,0 +1,429 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<!--
+
+Please feel free to post your comments and suggestions at this address:
+			http://www.yaronet.com/en/posts.php?s=52890
+
+*************************************************************************
+*                                                                       *
+*               Syntax highlighting for the GNU Assembler               *
+*                   Copyright (C) 2002, John Zaitseff                   *
+*                                                                       *
+*************************************************************************
+
+Modified: Spectras <spectras@etherdream.org>
+Date:     14th November, 2004
+Version:  1.03.1
+
+Updated:  Roland Pabel <roland@pabel.name>
+Date:     15th August, 2002
+Version:  1.01
+
+Author:   John Zaitseff <J.Zaitseff@zap.org.au>
+Date:     15th April, 2002
+Version:  1.0
+
+This file contains the XML syntax highlighting description for the GNU
+Assembler, for KATE, the KDE Advanced Editor.  Keywords have been taken
+directly from the GNU Assembler source code (read.c).
+
+Recognized assembly instructions are that of Motorola's Programmer
+Reference Manual.
+
+Known problems: Floating point highlighting does not work correctly.
+
+This program, including associated files, is free software.  You may
+distribute it and/or modify it under the terms of the GNU General Public
+License as published by the Free Software Foundation; either Version 2 of
+the license, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+-->
+
+<language name="GNU Assembler 68k" version="1.03.1" kateversion="2.1" section="Sources" extensions="*.s;*.S" mimetype="text/x-asm">
+  <highlighting>
+    <list name="keywords">
+      <item>abort</item>
+      <item>align</item>
+      <item>appfile</item>
+      <item>appline</item>
+      <item>ascii</item>
+      <item>asciz</item>
+      <item>balign</item>
+      <item>balignl</item>
+      <item>balignw</item>
+      <item>byte</item>
+      <item>comm</item>
+      <item>common.s</item>
+      <item>common</item>
+      <item>data</item>
+      <item>dc.b</item>
+      <item>dc.d</item>
+      <item>dc.l</item>
+      <item>dc.s</item>
+      <item>dc.w</item>
+      <item>dc.x</item>
+      <item>dc</item>
+      <item>dcb.b</item>
+      <item>dcb.d</item>
+      <item>dcb.l</item>
+      <item>dcb.s</item>
+      <item>dcb.w</item>
+      <item>dcb.x</item>
+      <item>dcb</item>
+      <item>debug</item>
+      <item>def</item>
+      <item>desc</item>
+      <item>dim</item>
+      <item>double</item>
+      <item>ds.b</item>
+      <item>ds.d</item>
+      <item>ds.l</item>
+      <item>ds.p</item>
+      <item>ds.s</item>
+      <item>ds.w</item>
+      <item>ds.x</item>
+      <item>ds</item>
+      <item>dsect</item>
+      <item>eject</item>
+      <item>else</item>
+      <item>elsec</item>
+      <item>elseif</item>
+      <item>end</item>
+      <item>endc</item>
+      <item>endef</item>
+      <item>endfunc</item>
+      <item>endif</item>
+      <item>endm</item>
+      <item>endr</item>
+      <item>equ</item>
+      <item>equiv</item>
+      <item>err</item>
+	  <item>even</item>
+      <item>exitm</item>
+      <item>extend</item>
+      <item>extern</item>
+      <item>fail</item>
+      <item>file</item>
+      <item>fill</item>
+      <item>float</item>
+      <item>format</item>
+      <item>func</item>
+      <item>global</item>
+      <item>globl</item>
+      <item>hidden</item>
+      <item>hword</item>
+      <item>ident</item>
+      <item>if</item>
+      <item>ifc</item>
+      <item>ifdef</item>
+      <item>ifeq</item>
+      <item>ifeqs</item>
+      <item>ifge</item>
+      <item>ifgt</item>
+      <item>ifle</item>
+      <item>iflt</item>
+      <item>ifnc</item>
+      <item>ifndef</item>
+      <item>ifne</item>
+      <item>ifnes</item>
+      <item>ifnotdef</item>
+      <item>include</item>
+      <item>int</item>
+      <item>internal</item>
+      <item>irep</item>
+      <item>irepc</item>
+      <item>irp</item>
+      <item>irpc</item>
+      <item>lcomm</item>
+      <item>lflags</item>
+      <item>line</item>
+      <item>linkonce</item>
+      <item>list</item>
+      <item>llen</item>
+      <item>ln</item>
+      <item>long</item>
+      <item>lsym</item>
+      <item>macro</item>
+      <item>mexit</item>
+      <item>name</item>
+      <item>noformat</item>
+      <item>nolist</item>
+      <item>nopage</item>
+      <item>octa</item>
+      <item>offset</item>
+      <item>org</item>
+      <item>p2align</item>
+      <item>p2alignl</item>
+      <item>p2alignw</item>
+      <item>page</item>
+      <item>plen</item>
+      <item>popsection</item>
+      <item>previous</item>
+      <item>print</item>
+      <item>protected</item>
+      <item>psize</item>
+      <item>purgem</item>
+      <item>pushsection</item>
+      <item>quad</item>
+      <item>rep</item>
+      <item>rept</item>
+      <item>rva</item>
+      <item>sbttl</item>
+      <item>scl</item>
+      <item>sect.s</item>
+      <item>sect</item>
+      <item>section.s</item>
+      <item>section</item>
+      <item>set</item>
+      <item>short</item>
+      <item>single</item>
+      <item>size</item>
+      <item>skip</item>
+      <item>sleb128</item>
+      <item>space</item>
+      <item>spc</item>
+      <item>stabd</item>
+      <item>stabn</item>
+      <item>stabs</item>
+      <item>string</item>
+      <item>struct</item>
+      <item>subsection</item>
+      <item>symver</item>
+      <item>tag</item>
+      <item>text</item>
+      <item>title</item>
+      <item>ttl</item>
+      <item>type</item>
+      <item>uleb128</item>
+      <item>use</item>
+      <item>val</item>
+      <item>version</item>
+      <item>vtable_entry</item>
+      <item>vtable_inherit</item>
+      <item>weak</item>
+      <item>word</item>
+      <item>xcom</item>
+      <item>xdef</item>
+      <item>xref</item>
+      <item>xstabs</item>
+      <item>zero</item>
+    </list>
+	<list name="instructions">
+		<item>abcd</item>
+		<item>add</item>
+		<item>adda</item>
+		<item>addi</item>
+		<item>addq</item>
+		<item>addx</item>
+		<item>and</item>
+		<item>andi</item>
+		<item>asl</item>
+		<item>asr</item>
+		<item>bcc</item>
+		<item>bcs</item>
+		<item>beq</item>
+		<item>bge</item>
+		<item>bgt</item>
+		<item>bhi</item>
+		<item>ble</item>
+		<item>bls</item>
+		<item>blt</item>
+		<item>bmi</item>
+		<item>bne</item>
+		<item>bpl</item>
+		<item>bvc</item>
+		<item>bvs</item>
+		<item>bchg</item>
+		<item>bclr</item>
+		<item>bra</item>
+		<item>bset</item>
+		<item>bsr</item>
+		<item>btst</item>
+		<item>chk</item>
+		<item>clr</item>
+		<item>cmp</item>
+		<item>cmpa</item>
+		<item>cmpi</item>
+		<item>cmpm</item>
+		<item>dbcc</item>
+		<item>dbcs</item>
+		<item>dbeq</item>
+		<item>dbf</item>
+		<item>dbge</item>
+		<item>dbgt</item>
+		<item>dbhi</item>
+		<item>dble</item>
+		<item>dbls</item>
+		<item>dblt</item>
+		<item>dbmi</item>
+		<item>dbne</item>
+		<item>dbpl</item>
+		<item>dbt</item>
+		<item>dbvc</item>
+		<item>dbvs</item>
+		<item>dbra</item>
+		<item>divs</item>
+		<item>divu</item>
+		<item>eor</item>
+		<item>eori</item>
+		<item>exg</item>
+		<item>ext</item>
+		<item>illegal</item>
+		<item>jmp</item>
+		<item>jsr</item>
+		<item>lea</item>
+		<item>link</item>
+		<item>lsl</item>
+		<item>lsr</item>
+		<item>move</item>
+		<item>movea</item>
+		<item>movem</item>
+		<item>movep</item>
+		<item>moveq</item>
+		<item>muls</item>
+		<item>mulu</item>
+		<item>nbcd</item>
+		<item>neg</item>
+		<item>negx</item>
+		<item>nop</item>
+		<item>not</item>
+		<item>or</item>
+		<item>ori</item>
+		<item>pea</item>
+		<item>reset</item>
+		<item>rol</item>
+		<item>ror</item>
+		<item>roxl</item>
+		<item>roxr</item>
+		<item>rte</item>
+		<item>rtr</item>
+		<item>rts</item>
+		<item>sbcd</item>
+		<item>scc</item>
+		<item>scs</item>
+		<item>seq</item>
+		<item>sf</item>
+		<item>sge</item>
+		<item>sgt</item>
+		<item>shi</item>
+		<item>sle</item>
+		<item>sls</item>
+		<item>slt</item>
+		<item>smi</item>
+		<item>sne</item>
+		<item>spi</item>
+		<item>st</item>
+		<item>svc</item>
+		<item>svs</item>
+		<item>stop</item>
+		<item>sub</item>
+		<item>suba</item>
+		<item>subi</item>
+		<item>subq</item>
+		<item>subx</item>
+		<item>swap</item>
+		<item>tas</item>
+		<item>trap</item>
+		<item>trapv</item>
+		<item>tst</item>
+		<item>unlk</item>
+	</list>
+	<list name="registers">
+		<item>%a0</item>
+		<item>%a1</item>
+		<item>%a2</item>
+		<item>%a3</item>
+		<item>%a4</item>
+		<item>%a5</item>
+		<item>%a6</item>
+		<item>%a7</item>
+		<item>%d0</item>
+		<item>%d1</item>
+		<item>%d2</item>
+		<item>%d3</item>
+		<item>%d4</item>
+		<item>%d5</item>
+		<item>%d6</item>
+		<item>%d7</item>
+		<item>%sr</item>
+		<item>%ccr</item>
+		<item>%usp</item>
+		<item>%pc</item>
+	</list>
+
+    <contexts>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
+        <RegExpr      attribute="Label" context="#stay" String="^\s*[A-Za-z0-9_$][A-Za-z0-9_.$]*:" />
+		<RegExpr      attribute="Normal Text" context="KeywordStart" String="^\s*\." />
+        <keyword      attribute="Instruction" context="Instruction" String="instructions" />
+		<keyword      attribute="Register" context="#stay" String="registers" />
+        <RegExpr      attribute="Octal" context="#stay" String="#?0[0-7]+" />
+        <RegExpr      attribute="Hex" context="#stay" String="#?0[xX][0-9a-fA-F]+" />
+        <RegExpr      attribute="Binary" context="#stay" String="#?0[bB][01]+" />
+        <RegExpr      attribute="Decimal" context="#stay" String="#?[-+]?[1-9][0-9]*" />
+        <RegExpr      attribute="Float" context="#stay" String="0[fFeEdD][-+]?[0-9]*\.?[0-9]*[eE]?[-+]?[0-9]+" />
+        <RegExpr      attribute="Normal Text" context="#stay" String="[A-Za-z_.$][A-Za-z0-9_.$]*" />
+        <RegExpr      attribute="Char" context="#stay" String="'(\\x[0-9a-fA-F][0-9a-fA-F]?|\\[0-7]?[0-7]?[0-7]?|\\.|.)" />
+        <DetectChar   attribute="String" context="String" char="&quot;" />
+        <Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="*" />
+        <DetectChar   attribute="Comment" context="Commentar 2" char="|" />
+        <AnyChar      attribute="Symbol" context="#stay" String="!#%&amp;*()+,-&lt;=&gt;?/:[]^{@}~" />
+        <RegExpr      attribute="Preprocessor" context="Preprocessor" String="^#" />
+      </context>
+      <context attribute="Comment" lineEndContext="#stay" name="Commentar 1">
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" />
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="Commentar 2" />
+      <context attribute="Preprocessor" lineEndContext="#pop" name="Preprocessor" />
+      <context attribute="String" lineEndContext="#pop" name="String">
+        <LineContinue  attribute="String" context="Some Context" />
+        <HlCStringChar attribute="String Char" context="#stay" />
+        <DetectChar    attribute="String" context="#pop" char="&quot;" />
+      </context>
+	  <context attribute="Normal" lineEndContext="#pop" name="KeywordStart">
+        <keyword      attribute="Keyword" context="#pop" String="keywords" />
+	  </context>
+	  <context attribute="Instruction" lineEndContext="#pop" name="Instruction">
+        <RegExpr      attribute="Instruction" context="#pop" String="(\.[lwbs])|[^a-zA-Z]" />
+	  </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="Some Context" />
+    </contexts>
+
+    <itemDatas>
+      <itemData name="Normal Text"  defStyleNum="dsNormal"   />
+      <itemData name="Label"        defStyleNum="dsNormal"   />
+      <itemData name="Keyword"      defStyleNum="dsKeyword"  />
+      <itemData name="Decimal"      defStyleNum="dsDecVal"   />
+      <itemData name="Octal"        defStyleNum="dsBaseN"    />
+      <itemData name="Hex"          defStyleNum="dsBaseN"    />
+      <itemData name="Binary"       defStyleNum="dsBaseN"    />
+      <itemData name="Float"        defStyleNum="dsFloat"    />
+      <itemData name="Char"         defStyleNum="dsChar"     />
+      <itemData name="String"       defStyleNum="dsString"   />
+      <itemData name="String Char"  defStyleNum="dsChar"     />
+      <itemData name="Symbol"       defStyleNum="dsNormal"   />
+      <itemData name="Comment"      defStyleNum="dsComment"  />
+      <itemData name="Preprocessor" defStyleNum="dsOthers"   />
+	  <itemData name="Instruction"	defStyleNum="dsNormal"	 />
+	  <itemData name="Register"		defStyleNum="dsNormal"   />
+    </itemDatas>
+  </highlighting>
+
+  <general>
+    <comments>
+      <comment name="singleLine" start="|" />
+      <comment name="multiLine"  start="/*" end="*/" />
+    </comments>
+    <keywords casesensitive="1" weakDeliminator="_$%" additionalDeliminator="@" />
+  </general>
+</language>

+ 4 - 0
ktigcc/ktigcc.pro

@@ -54,3 +54,7 @@ unix {
   MOC_DIR = .moc
   OBJECTS_DIR = .obj
 }
+
+syntaxfiles.path = /usr/share/apps/katepart/syntax/
+syntaxfiles.files = gnuasm68k.xml masm68k.xml
+INSTALLS += syntaxfiles

+ 24 - 8
ktigcc/mainform.ui.h

@@ -196,11 +196,11 @@ void MainForm::init()
   m_view = (Kate::View *) doc->createView( splitter, 0L );
   m_view->setEnabled(FALSE);
   m_view->setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding,0,0));
-  write_temp_file("config.tmp","Highlighting=None\n[Kate Renderer Defaults]\nSchema=ktigcc - Grayed Out\n",0);
+  write_temp_file("config.tmp","[Kate Renderer Defaults]\nSchema=ktigcc - Grayed Out\n",0);
   KConfig kconfig(QString(tempdir)+"/config.tmp",true);
   m_view->getDoc()->readConfig(&kconfig);
-  m_view->getDoc()->readSessionConfig(&kconfig);
   delete_temp_file("config.tmp");
+  m_view->getDoc()->setHlMode(0);
   QValueList<int> list;
   list.append(150);
   list.append(500);
@@ -411,29 +411,44 @@ void MainForm::fileTreeClicked(QListViewItem *item)
     fileNewFolderAction->setEnabled(TRUE);
     m_view->setEnabled(FALSE);
     m_view->getDoc()->setText("");
-    write_temp_file("config.tmp","Highlighting=None\n[Kate Renderer Defaults]\nSchema=ktigcc - Grayed Out\n",0);
+    write_temp_file("config.tmp","[Kate Renderer Defaults]\nSchema=ktigcc - Grayed Out\n",0);
     KConfig kconfig(QString(tempdir)+"/config.tmp",true);
     m_view->getDoc()->readConfig(&kconfig);
-    m_view->getDoc()->readSessionConfig(&kconfig);
     delete_temp_file("config.tmp");
+    m_view->getDoc()->setHlMode(0);
   } else if (item->rtti()==0x716CC1) {
     fileNewFolderAction->setEnabled(TRUE);
     m_view->setEnabled(TRUE);
     m_view->getDoc()->setText(static_cast<ListViewFile *>(item)->textBuffer);
-    write_temp_file("config.tmp","Highlighting=None\n[Kate Renderer Defaults]\nSchema=kate - Normal\n",0);
+    QListViewItem *category=item->parent();
+    while (category->parent()->rtti()==0x716CC0) category=category->parent();
+    const char *buffer=static_cast<ListViewFile *>(item)->textBuffer;
+    write_temp_file("config.tmp","[Kate Renderer Defaults]\nSchema=kate - Normal\n",0);
     KConfig kconfig(QString(tempdir)+"/config.tmp",true);
     m_view->getDoc()->readConfig(&kconfig);
-    m_view->getDoc()->readSessionConfig(&kconfig);
     delete_temp_file("config.tmp");
+    uint cnt=m_view->getDoc()->hlModeCount(), i;
+    for (i=0; i<cnt; i++) {
+      if (!m_view->getDoc()->hlModeName(i).compare(
+          ((category==sFilesListItem||(category==hFilesListItem&&buffer&&*buffer=='|'))?
+             "GNU Assembler 68k":
+           (category==asmFilesListItem||(category==hFilesListItem&&buffer&&*buffer==';'))?
+             "Motorola Assembler 68k":
+           (category==cFilesListItem||category==hFilesListItem)?
+             "C":
+           "None"))) break;
+    }
+    if (i==cnt) i=0;
+    m_view->getDoc()->setHlMode(i);
   } else {
     fileNewFolderAction->setEnabled(FALSE);
     m_view->setEnabled(FALSE);
     m_view->getDoc()->setText("");
-    write_temp_file("config.tmp","Highlighting=None\n[Kate Renderer Defaults]\nSchema=ktigcc - Grayed Out\n",0);
+    write_temp_file("config.tmp","[Kate Renderer Defaults]\nSchema=ktigcc - Grayed Out\n",0);
     KConfig kconfig(QString(tempdir)+"/config.tmp",true);
     m_view->getDoc()->readConfig(&kconfig);
-    m_view->getDoc()->readSessionConfig(&kconfig);
     delete_temp_file("config.tmp");
+    m_view->getDoc()->setHlMode(0);
 }
   currentListItem=item;
   updateLeftStatusLabel();
@@ -506,6 +521,7 @@ void MainForm::newFile( QListViewItem *parent, QString text, const char *iconNam
   newFile->setText(0,"New File");
   newFile->setPixmap(0,QPixmap::fromMimeSource(iconName));
   parent->setOpen(TRUE);
+  newFile->textBuffer=text;
   fileTreeClicked(newFile);
   newFile->startRename(0);
   m_view->getDoc()->setText(text);

+ 269 - 0
ktigcc/masm68k.xml

@@ -0,0 +1,269 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<!--
+
+Please feel free to post your comments and suggestions at this address:
+			http://www.yaronet.com/en/posts.php?s=52890
+
+1.0		Spectras <spectras@etherdream.org>		- 14th November, 2004
+
+This program, including associated files, is free software.  You may
+distribute it and/or modify it under the terms of the GNU General Public
+License as published by the Free Software Foundation; either Version 2 of
+the license, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+-->
+
+<language name="Motorola Assembler 68k" version="1.0" kateversion="2.1" section="Sources" extensions="*.s;*.S;*.asm" mimetype="text/x-asm">
+  <highlighting>
+    <list name="keywords">
+		<item>include</item>
+		<item>incbin</item>
+		<item>even</item>
+		<item>cnop</item>
+		<item>xdef</item>
+		<item>xref</item>
+		<item>public</item>
+		<item>section</item>
+		<item>bss</item>
+		<item>cseg</item>
+		<item>dseg</item>
+		<item>end</item>
+		<item>dc</item>
+		<item>ds</item>
+		<item>dcb</item>
+		<item>macro</item>
+		<item>endm</item>
+		<item>equ</item>
+		<item>equr</item>
+		<item>set</item>
+		<item>ifeq</item>
+		<item>endc</item>
+		<item>ifne</item>
+		<item>ifge</item>
+		<item>ifgt</item>
+		<item>ifle</item>
+		<item>iflt</item>
+		<item>ifc</item>
+		<item>ifnc</item>
+		<item>ifd</item>
+		<item>ifnd</item>
+		<item>near</item>
+		<item>far</item>
+		<item>org</item>
+		<item>rorg</item>
+		<item>nolist</item>
+		<item>list</item>
+		<item>page</item>
+		<item>spc</item>
+		<item>ttl</item>
+		<item>idnt</item>
+    </list>
+	<list name="instructions">
+		<item>abcd</item>
+		<item>add</item>
+		<item>adda</item>
+		<item>addi</item>
+		<item>addq</item>
+		<item>addx</item>
+		<item>and</item>
+		<item>andi</item>
+		<item>asl</item>
+		<item>asr</item>
+		<item>bcc</item>
+		<item>bcs</item>
+		<item>beq</item>
+		<item>bge</item>
+		<item>bgt</item>
+		<item>bhi</item>
+		<item>ble</item>
+		<item>bls</item>
+		<item>blt</item>
+		<item>bmi</item>
+		<item>bne</item>
+		<item>bpl</item>
+		<item>bvc</item>
+		<item>bvs</item>
+		<item>bchg</item>
+		<item>bclr</item>
+		<item>bra</item>
+		<item>bset</item>
+		<item>bsr</item>
+		<item>btst</item>
+		<item>chk</item>
+		<item>clr</item>
+		<item>cmp</item>
+		<item>cmpa</item>
+		<item>cmpi</item>
+		<item>cmpm</item>
+		<item>dbcc</item>
+		<item>dbcs</item>
+		<item>dbeq</item>
+		<item>dbf</item>
+		<item>dbge</item>
+		<item>dbgt</item>
+		<item>dbhi</item>
+		<item>dble</item>
+		<item>dbls</item>
+		<item>dblt</item>
+		<item>dbmi</item>
+		<item>dbne</item>
+		<item>dbpl</item>
+		<item>dbt</item>
+		<item>dbvc</item>
+		<item>dbvs</item>
+		<item>dbra</item>
+		<item>divs</item>
+		<item>divu</item>
+		<item>eor</item>
+		<item>eori</item>
+		<item>exg</item>
+		<item>ext</item>
+		<item>illegal</item>
+		<item>jmp</item>
+		<item>jsr</item>
+		<item>lea</item>
+		<item>link</item>
+		<item>lsl</item>
+		<item>lsr</item>
+		<item>move</item>
+		<item>movea</item>
+		<item>movem</item>
+		<item>movep</item>
+		<item>moveq</item>
+		<item>muls</item>
+		<item>mulu</item>
+		<item>nbcd</item>
+		<item>neg</item>
+		<item>negx</item>
+		<item>nop</item>
+		<item>not</item>
+		<item>or</item>
+		<item>ori</item>
+		<item>pea</item>
+		<item>reset</item>
+		<item>rol</item>
+		<item>ror</item>
+		<item>roxl</item>
+		<item>roxr</item>
+		<item>rte</item>
+		<item>rtr</item>
+		<item>rts</item>
+		<item>sbcd</item>
+		<item>scc</item>
+		<item>scs</item>
+		<item>seq</item>
+		<item>sf</item>
+		<item>sge</item>
+		<item>sgt</item>
+		<item>shi</item>
+		<item>sle</item>
+		<item>sls</item>
+		<item>slt</item>
+		<item>smi</item>
+		<item>sne</item>
+		<item>spi</item>
+		<item>st</item>
+		<item>svc</item>
+		<item>svs</item>
+		<item>stop</item>
+		<item>sub</item>
+		<item>suba</item>
+		<item>subi</item>
+		<item>subq</item>
+		<item>subx</item>
+		<item>swap</item>
+		<item>tas</item>
+		<item>trap</item>
+		<item>trapv</item>
+		<item>tst</item>
+		<item>unlk</item>
+	</list>
+	<list name="registers">
+		<item>a0</item>
+		<item>a1</item>
+		<item>a2</item>
+		<item>a3</item>
+		<item>a4</item>
+		<item>a5</item>
+		<item>a6</item>
+		<item>a7</item>
+		<item>d0</item>
+		<item>d1</item>
+		<item>d2</item>
+		<item>d3</item>
+		<item>d4</item>
+		<item>d5</item>
+		<item>d6</item>
+		<item>d7</item>
+		<item>sr</item>
+		<item>ccr</item>
+		<item>usp</item>
+		<item>pc</item>
+	</list>
+
+    <contexts>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
+        <RegExpr      attribute="Label" context="#stay" String="^[A-Za-z0-9_$@][A-Za-z0-9_.$@]*:" />
+        <RegExpr      attribute="Label" context="AfterLabel" String="^[A-Za-z0-9_$@][A-Za-z0-9_.$@]*(?=\s+[_\w])" />
+		<RegExpr      attribute="Normal Text" context="AfterLabel" String="^\s+" />
+        <DetectChar   attribute="Comment" context="Commentar 1" char=";" />
+	  </context>
+	  <context attribute="Normal Text" lineEndContext="#pop" name="AfterLabel">
+        <keyword      attribute="Instruction" context="Instruction" String="instructions" />
+		<keyword      attribute="Keyword" context="#stay" String="keywords" />
+		<keyword      attribute="Register" context="#stay" String="registers" />
+        <RegExpr      attribute="Hex" context="#stay" String="#?\$[0-9a-fA-F]+" />
+        <RegExpr      attribute="Binary" context="#stay" String="#?%[01]+" />
+        <RegExpr      attribute="Decimal" context="#stay" String="#?[-+]?[1-9][0-9]*" />
+        <RegExpr      attribute="Normal Text" context="#stay" String="[A-Za-z_.$][A-Za-z0-9_.$]*" />
+        <RegExpr      attribute="Char" context="#stay" String="'(\\x[0-9a-fA-F][0-9a-fA-F]?|\\[0-7]?[0-7]?[0-7]?|\\.|.)" />
+        <DetectChar   attribute="String" context="String" char="&quot;" />
+        <DetectChar   attribute="Comment" context="Commentar 1" char=";" />
+        <AnyChar      attribute="Symbol" context="#stay" String="!#%&amp;*()+,-&lt;=&gt;?/:[]^{@}~" />
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="Commentar 1" />
+      <context attribute="String" lineEndContext="#pop" name="String">
+        <LineContinue  attribute="String" context="Some Context" />
+        <HlCStringChar attribute="String Char" context="#stay" />
+        <DetectChar    attribute="String" context="#pop" char="&quot;" />
+      </context>
+	  <context attribute="Instruction" lineEndContext="#pop" name="Instruction">
+        <RegExpr      attribute="Instruction" context="#pop" String="(\.[lwbs])|[^a-zA-Z]" />
+	  </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="Some Context" />
+    </contexts>
+
+    <itemDatas>
+      <itemData name="Normal Text"  defStyleNum="dsNormal"   />
+      <itemData name="Label"        defStyleNum="dsNormal"   />
+      <itemData name="Keyword"      defStyleNum="dsKeyword"  />
+      <itemData name="Decimal"      defStyleNum="dsDecVal"   />
+      <itemData name="Hex"          defStyleNum="dsBaseN"    />
+      <itemData name="Binary"       defStyleNum="dsBaseN"    />
+      <itemData name="Char"         defStyleNum="dsChar"     />
+      <itemData name="String"       defStyleNum="dsString"   />
+      <itemData name="String Char"  defStyleNum="dsChar"     />
+      <itemData name="Symbol"       defStyleNum="dsNormal"   />
+      <itemData name="Comment"      defStyleNum="dsComment"  />
+	  <itemData name="Instruction"	defStyleNum="dsNormal"	 />
+	  <itemData name="Register"		defStyleNum="dsNormal"   />
+    </itemDatas>
+  </highlighting>
+
+  <general>
+    <comments>
+      <comment name="singleLine" start=";" />
+    </comments>
+    <keywords casesensitive="1" weakDeliminator="_$" />
+  </general>
+</language>