You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
212 lines
8.8 KiB
212 lines
8.8 KiB
7 years ago
|
<?xml version="1.0" encoding="UTF-8"?>
|
||
|
<!DOCTYPE language SYSTEM "language.dtd">
|
||
|
<!--
|
||
|
|
||
|
G-code syntax highlighting for KatePart
|
||
|
|
||
|
Copy this file to : ~/.tde/share/apps/katepart/syntax/
|
||
|
|
||
|
Copyright © 2016 by Fernand Veilleux (fernveilleux@gmail.com)
|
||
|
All rights reserved.
|
||
|
|
||
|
This library is free software; you can redistribute it and/or
|
||
|
modify it under the terms of the GNU Library General Public
|
||
|
License as published by the Free Software Foundation; either
|
||
|
version 2 of the License, or (at your option) any later version.
|
||
|
|
||
|
This library 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
|
||
|
Library General Public License for more details.
|
||
|
|
||
|
You should have received a copy of the GNU Library General Public
|
||
|
License along with this library; if not, write to the
|
||
|
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||
|
Boston, MA 02110-1301, USA.
|
||
|
|
||
|
-->
|
||
|
<language name="G-Code"
|
||
|
version="1.00-1"
|
||
|
kateversion="3.8"
|
||
|
section="Other"
|
||
|
extensions="*.ngc"
|
||
|
mimetype="text/ngc"
|
||
|
author="Fernand Veilleux (fernveilleux@gmail.com)"
|
||
|
license="LGPL">
|
||
|
|
||
|
<highlighting>
|
||
|
<list name="operators">
|
||
|
<item>and</item>
|
||
|
<item>or</item>
|
||
|
<item>xor</item>
|
||
|
<item>eq</item>
|
||
|
<item>ne</item>
|
||
|
<item>gt</item>
|
||
|
<item>ge</item>
|
||
|
<item>lt</item>
|
||
|
<item>le</item>
|
||
|
<item>mod</item>
|
||
|
</list>
|
||
|
|
||
|
<list name="functions">
|
||
|
<item>atan</item>
|
||
|
<item>abs</item>
|
||
|
<item>acos</item>
|
||
|
<item>asin</item>
|
||
|
<item>cos</item>
|
||
|
<item>exp</item>
|
||
|
<item>exists</item>
|
||
|
<item>fix</item>
|
||
|
<item>fup</item>
|
||
|
<item>ln</item>
|
||
|
<item>round</item>
|
||
|
<item>sin</item>
|
||
|
<item>sqrt</item>
|
||
|
<item>tan</item>
|
||
|
</list>
|
||
|
|
||
|
<list name="o_sub">
|
||
|
<item>sub</item>
|
||
|
<item>endsub</item>
|
||
|
<item>call</item>
|
||
|
<item>return</item>
|
||
|
</list>
|
||
|
|
||
|
<list name="keyword">
|
||
|
<item>do</item>
|
||
|
<item>while</item>
|
||
|
<item>endwhile</item>
|
||
|
<item>repeat</item>
|
||
|
<item>endrepeat</item>
|
||
|
<item>break</item>
|
||
|
<item>continue</item>
|
||
|
<item>if</item>
|
||
|
<item>elseif</item>
|
||
|
<item>else</item>
|
||
|
<item>endif</item>
|
||
|
</list>
|
||
|
|
||
|
<contexts>
|
||
|
<context name="Alert" attribute="Alert" lineEndContext="#pop">
|
||
|
<RegExpr String="^[\s\t]*[nN][\s\t]*[\d]{1,5}" attribute="Line Number"/>
|
||
|
<DetectSpaces attribute="Normal Text"/>
|
||
|
<DetectChar char="%" attribute="M-word"/>
|
||
|
<DetectChar char="[" attribute="Brackets"/>
|
||
|
<DetectChar char="]" attribute="Brackets"/>
|
||
|
<DetectChar char="(" lookAhead="1" context="parenthese"/>
|
||
|
<DetectChar char="#" lookAhead="1" context="hash1"/>
|
||
|
<RegExpr String="[.][\d\s\t]*[.]" lookAhead="1" context="alert"/>
|
||
|
<RegExpr String="[.][\d\s\t]*" attribute="Number"/>
|
||
|
<RegExpr String="[\d][\d\s\t]*[.][\d\s\t]*[.]" lookAhead="1" context="alert"/>
|
||
|
<RegExpr String="[\d][\d\s\t]*[.]?[\d\s\t]*" attribute="Number"/>
|
||
|
<RegExpr String="[+\-*/=]" attribute="Operator"/>
|
||
|
<RegExpr String=";.*$" attribute="Comment"/>
|
||
|
<keyword String="functions" attribute="Function"/>
|
||
|
<keyword String="operators" attribute="Operator"/>
|
||
|
<keyword String="o_sub" attribute="Sub-program"/>
|
||
|
<keyword String="keyword" attribute="Keyword"/>
|
||
|
<RegExpr String="[oO][\s\t]*<[\s\t]*>" lookAhead="1" context="alert"/>
|
||
|
<RegExpr String="[oO][\s\t]*([\d]+|<[^>]*>)" attribute="O-word"/>
|
||
|
<RegExpr String="[abcu-z][\s\t]*[+\-\d#\[.]" insensitive="1" lookAhead="1" context="coords"/>
|
||
|
<RegExpr String="[abcu-z].*$" insensitive="1" attribute="Alert"/>
|
||
|
<RegExpr String="[deh-lpqr@^][\s\t]*[+\-\d#\[.]" insensitive="1" lookAhead="1" context="opts"/>
|
||
|
<RegExpr String="[deh-lpqr@^].*$" insensitive="1" attribute="Alert"/>
|
||
|
<RegExpr String="[gG][\s\t]*[\d]+[\s\t]*[.]?[\s\t]*[\d]*" attribute="G-word"/>
|
||
|
<RegExpr String="[gG][\s\t]*[\[#]" lookAhead="1" context="gword"/>
|
||
|
<RegExpr String="[tsTS][\s\t]*[+\d#\[]" lookAhead="1" context="tools"/>
|
||
|
<RegExpr String="[fF][\s\t]*[+\d#\[.]" lookAhead="1" context="feed"/>
|
||
|
<RegExpr String="[mM][\s\t]*[1][\s\t]*[\d][\s\t]*[\d]" attribute="M-word (user)"/>
|
||
|
<RegExpr String="[mM][\s\t]*([\d][\s\t]*[\d]?|[+#\[])" lookAhead="1" context="mword"/>
|
||
|
<RegExpr String=".*$" attribute="Alert"/>
|
||
|
</context>
|
||
|
|
||
|
<context name="feed" attribute="Alert" lineEndContext="#pop">
|
||
|
<RegExpr String="[fF]" attribute="Tool" context="#pop"/>
|
||
|
</context>
|
||
|
|
||
|
<context name="tools" attribute="Alert" lineEndContext="#pop">
|
||
|
<RegExpr String="[tsTS]" attribute="Tool" context="#pop"/>
|
||
|
</context>
|
||
|
|
||
|
<context name="gword" attribute="Alert" lineEndContext="#pop">
|
||
|
<RegExpr String="[gG]" attribute="G-word" context="#pop"/>
|
||
|
</context>
|
||
|
|
||
|
<context name="mword" attribute="Alert" lineEndContext="#pop">
|
||
|
<RegExpr String="[mM]" attribute="M-word" context="#pop"/>
|
||
|
</context>
|
||
|
|
||
|
<context name="coords" attribute="Alert" lineEndContext="#pop">
|
||
|
<RegExpr String="[abcu-z]" insensitive="1" attribute="Coordinate" context="#pop"/>
|
||
|
</context>
|
||
|
|
||
|
<context name="opts" attribute="Alert" lineEndContext="#pop">
|
||
|
<RegExpr String="[deh-lpqr@^]" insensitive="1" attribute="G-options" context="#pop"/>
|
||
|
</context>
|
||
|
|
||
|
<context name="parenthese" attribute="Alert" lineEndContext="#pop">
|
||
|
<RegExpr String="\([\s\t]*(PRINT|DEBUG|MSG|AXIS|(PROBE(CLOSE|OPEN))|(LOG(OPEN|CLOSE|APPEND|[\s]|[\,])))[^\)]*\)"
|
||
|
insensitive="1" attribute="Message" context="#pop"/>
|
||
|
<RegExpr String="\([^\)]*\)" attribute="Comment" context="#pop"/>
|
||
|
</context>
|
||
|
|
||
|
<context name="hash1" attribute="Alert" lineEndContext="#pop">
|
||
|
<RegExpr String="#[\s\t]*<[\s\t]*>" context="alert"/>
|
||
|
<RegExpr String="#[0\s\t]*(5000)" attribute="Param (global)" context="#pop"/>
|
||
|
<RegExpr String="#[0\s\t]*[1-4][0-9]{3}" attribute="Param (global)" context="#pop"/>
|
||
|
<RegExpr String="#[0\s\t]*[1-9][\d]{2}" attribute="Param (global)" context="#pop"/>
|
||
|
<RegExpr String="#[0\s\t]*[4-9][\d]{1}" attribute="Param (global)" context="#pop"/>
|
||
|
<RegExpr String="#[0\s\t]*[3][1-9]" attribute="Param (global)" context="#pop"/>
|
||
|
<RegExpr String="#[0\s\t]*(30)" attribute="Param (local)" context="#pop"/>
|
||
|
<RegExpr String="#[0\s\t]*[12][0-9]{1}" attribute="Param (local)" context="#pop"/>
|
||
|
<RegExpr String="#[0\s\t]*[1-9]{1}" attribute="Param (local)" context="#pop"/>
|
||
|
<RegExpr String="#[\s\t]*<[\s\t]*_[^>]*>" attribute="Param (global)" context="#pop"/>
|
||
|
<RegExpr String="#[\s\t]*<[^>]*>" attribute="Param (local)" context="#pop"/>
|
||
|
<RegExpr String="[#][\s\t]*[#][\s\t]*[#]+" lookAhead="1" context="alert"/>
|
||
|
<RegExpr String="#[\s\t]*#[\s\t]*[<\[]" lookAhead="1" context="hash2"/>
|
||
|
<RegExpr String="#[\s\t]*#" attribute="Param (local)" context="#pop"/>
|
||
|
<RegExpr String="#[\s\t]*\[" lookAhead="1" context="hash2"/>
|
||
|
</context>
|
||
|
|
||
|
<context name="hash2" attribute= "Alert" lineEndContext="#pop">
|
||
|
<RegExpr String="#" attribute="Param (local)" context="#pop#pop"/>
|
||
|
</context>
|
||
|
|
||
|
<context name="alert" attribute="Alert" lineEndContext="#pop">
|
||
|
</context>
|
||
|
</contexts>
|
||
|
|
||
|
<itemDatas>
|
||
|
<itemData name="Normal Text" defStyleNum="dsNormal"/>
|
||
|
<itemData name="Brackets" defStyleNum="dsNormal"/>
|
||
|
<itemData name="Comment" defStyleNum="dsComment"/>
|
||
|
<itemData name="Coordinate" defStyleNum="dsNormal" color="#A57800" bold="1" italic="0"/>
|
||
|
<itemData name="Function" defStyleNum="dsFunction" color="#800080" bold="1" italic="1"/>
|
||
|
<itemData name="G-options" defStyleNum="dsNormal" color="#800080" bold="1" italic="0"/>
|
||
|
<itemData name="G-word" defStyleNum="dsNormal" selColor="#FFFFFF" bold="1" italic="0"/>
|
||
|
<itemData name="Keyword" defStyleNum="dsNormal" bold="1" italic="1"/>
|
||
|
<itemData name="Line Number" defStyleNum="dsComment"/>
|
||
|
<itemData name="Message" defStyleNum="dsNormal" italic="1" />
|
||
|
<itemData name="M-word" defStyleNum="dsNormal" color="#A07400" bold="0" italic="0" />
|
||
|
<itemData name="M-word (user)" defStyleNum="dsNormal" color="#A07400" bold="1" italic="1"/>
|
||
|
<itemData name="Number" defStyleNum="dsDecVal" color="#A64C00" bold="1" italic="0"/>
|
||
|
<itemData name="Operator" defStyleNum="dsOperator" color="#000080" bold="1" italic="0"/>
|
||
|
<itemData name="O-word" defStyleNum="dsControlFlow" color="#BB7B40" bold="0" italic="0"/>
|
||
|
<itemData name="Param (global)" defStyleNum="dsVariable" color="#149E05" bold="0" italic="0"/>
|
||
|
<itemData name="Param (local)" defStyleNum="dsVariable" color="#0950AB" bold="0" italic="0"/>
|
||
|
<itemData name="Sub-program" defStyleNum="dsKeyword" color="#700070" bold="0" italic="0"/>
|
||
|
<itemData name="Tool" defStyleNum="dsNormal" color="#0000D6" bold="1" italic="0"/>
|
||
|
<itemData name="Alert" defStyleNum="dsError"/>
|
||
|
</itemDatas>
|
||
|
</highlighting>
|
||
|
|
||
|
<general>
|
||
|
<folding indentationsensitive="1"/>
|
||
|
<comments>
|
||
|
<comment name="singleLine" start=";"/>
|
||
|
</comments>
|
||
|
<keywords casesensitive="0"/>
|
||
|
</general>
|
||
|
</language>
|
||
|
|