summaryrefslogtreecommitdiffstats
path: root/src/psm.xml
blob: 83e43860b26d4550ab221f353f9d22c4cd021e2b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<!--
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.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

-->

<language name="pblazeASM" version="1.02" kateversion="2.1" section="Assembler" extensions="*.psm" mimetype="text/x-psm" author="Mark Six" license="GPL">
  <highlighting>
    <list name="instructions">
		<item> ADD </item>
		<item> ADDCY </item>
		<item> AND </item>
		<item> CALL </item>
		<item> COMPARE </item>
		<item> FETCH </item>
		<item> INPUT </item>
		<item> JUMP </item>
		<item> LOAD </item>
		<item> OR </item>
		<item> OUTPUT </item>
		<item> RETURN </item>
		<item> RETURNI </item>
		<item> ROTATE </item>
		<item> RL </item>
		<item> RR </item>
		<item> SL0 </item>
		<item> SL1 </item>
		<item> SLA </item>
		<item> SLX </item>
		<item> SR0 </item>
		<item> SR1 </item>
		<item> SRA </item>
		<item> SRX </item>
		<item> STORE </item>
		<item> SUB </item>
		<item> SUBCY </item>
		<item> TEST </item>
		<item> XOR </item>
		<item> DISABLE </item>
		<item> ENABLE </item>
    </list>

	<list name="instruction_attr">
		<item> NZ </item>
		<item> Z </item>
		<item> C </item>
		<item> NC </item>
		<item> INTERRUPT </item>
		<item> DISABLE </item>
		<item> ENABLE </item>
		<item> s0 </item>
		<item> s1 </item>
		<item> s2 </item>
		<item> s3 </item>
		<item> s4 </item>
		<item> s5 </item>
		<item> s6 </item>
		<item> s7 </item>
		<item> s8 </item>
		<item> s9 </item>
		<item> sA </item>
		<item> sB </item>
		<item> sC </item>
		<item> sD </item>
		<item> sE </item>
		<item> sF </item>
	</list>
	
    <list name="directives">
		<item> constant </item>
		<item> namereg </item>
		<item> address </item>
    </list>


    <contexts>
		<!-- The main context -->
		<context  name="Normal" attribute="Normal Text" lineEndContext="#stay">
			<keyword attribute="Instructions" context="Opcode" String="instructions"/>
			<keyword attribute="Directives" context="Opcode" String="directives"/>
			<DetectChar attribute="Comment" context="Comment" char=";" />
      </context>
	  
      <context name="Comment" attribute="Comment" lineEndContext="#pop" />
	  
	  <context name="Opcode" attribute="Opcode" lineEndContext="#pop">
		  <keyword attribute="InstructionAttr" context="#stay" String="instruction_attr"/>
		  <DetectChar attribute="Comment" context="Comment" char=";" />
	  </context>
    </contexts>

    <itemDatas>
		<itemData name="Normal Text"      defStyleNum="dsNormal"/>
		<itemData name="Directives"       defStyleNum="dsOthers"/>
		<itemData name="Instructions"     defStyleNum="dsKeyword"/>
		<itemData name="InstructionAttr"  defStyleNum="dsNormal" color="#000080" selColor="#000080" bold="0" italic="1"/>
		<itemData name="Comment"          defStyleNum="dsComment" />
    </itemDatas>
  </highlighting>

  <general>
    <comments>
      <comment name="singleLine" start=";" />
    </comments>
    <keywords casesensitive="0" weakDeliminator="_.$" />
  </general>
</language>