mirror of
https://expo.survex.com/repositories/troggle/.git
synced 2024-11-30 13:51:53 +00:00
499 lines
15 KiB
Plaintext
499 lines
15 KiB
Plaintext
|
<?xml version="1.0" encoding="UTF-8"?>
|
||
|
<!--
|
||
|
Authors: Philip Withnall
|
||
|
Copyright © 2018 Philip Withnall <philip@tecnocode.co.uk>
|
||
|
|
||
|
GtkSourceView is free software; you can redistribute it and/or
|
||
|
modify it under the terms of the GNU Lesser General Public
|
||
|
License as published by the Free Software Foundation; either
|
||
|
version 2.1 of the License, or (at your option) any later version.
|
||
|
|
||
|
GtkSourceView 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
|
||
|
Lesser General Public License for more details.
|
||
|
|
||
|
You should have received a copy of the GNU Lesser General Public License
|
||
|
along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||
|
|
||
|
Reference: https://survex.com/docs/manual/datafile.htm
|
||
|
-->
|
||
|
<language id="survex" name="Survex" version="2.0" _section="Source">
|
||
|
<metadata>
|
||
|
<property name="mimetypes">text/x-survex</property>
|
||
|
<property name="globs">*.svx</property>
|
||
|
<property name="line-comment-start">;</property>
|
||
|
</metadata>
|
||
|
|
||
|
<styles>
|
||
|
<style id="comment" name="Comment" map-to="def:comment"/>
|
||
|
<style id="error" name="Error" map-to="def:error"/>
|
||
|
<style id="literal" name="Literal" map-to="def:string"/>
|
||
|
<style id="command" name="Command" map-to="def:statement"/>
|
||
|
<style id="parameter" name="Parameter" map-to="def:type"/>
|
||
|
<style id="identifier" name="Identifier" map-to="def:identifier"/>
|
||
|
<style id="number" name="Number" map-to="def:decimal"/>
|
||
|
</styles>
|
||
|
|
||
|
<default-regex-options case-sensitive="false"/>
|
||
|
|
||
|
<definitions>
|
||
|
|
||
|
<define-regex id="survey-name">[a-zA-Z0-9_\-\.]+</define-regex>
|
||
|
<define-regex id="station-name">[a-zA-Z0-9_\-\.]+</define-regex>
|
||
|
<define-regex id="date">[0-9]+(?:\.[0-9]+(?:\.[0-9+])?)?(?:\-[0-9]+(?:\.[0-9]+(?:\.[0-9+])?)?)?</define-regex>
|
||
|
<define-regex id="number" extended="true">
|
||
|
[-+]?[0-9]+\.[0-9]*|
|
||
|
[-+]?[0-9]+|
|
||
|
[-+]?[0-9]*\.[0-9]+
|
||
|
</define-regex>
|
||
|
<define-regex id="string" extended="true">
|
||
|
(?:[^\s"]+)|
|
||
|
(?:"[^"]*")
|
||
|
</define-regex>
|
||
|
|
||
|
<define-regex id="data-style" extended="true">
|
||
|
default|
|
||
|
normal|
|
||
|
diving|
|
||
|
cartesian|
|
||
|
topofil|
|
||
|
cylpolar|
|
||
|
nosurvey|
|
||
|
passage
|
||
|
</define-regex>
|
||
|
|
||
|
<define-regex id="data-instruments" extended="true">
|
||
|
from|
|
||
|
to|
|
||
|
tape|
|
||
|
compass|
|
||
|
clino|
|
||
|
backcompass|
|
||
|
backclino|
|
||
|
station|
|
||
|
direction|
|
||
|
fromdepth|
|
||
|
todepth|
|
||
|
depthchange|
|
||
|
northing|
|
||
|
easting|
|
||
|
altitude|
|
||
|
newline|
|
||
|
left|
|
||
|
right|
|
||
|
up|
|
||
|
down|
|
||
|
ignoreall|
|
||
|
ignore|
|
||
|
length|
|
||
|
bearing|
|
||
|
gradient|
|
||
|
count
|
||
|
</define-regex>
|
||
|
|
||
|
<define-regex id="coordinate-system" extended="true">
|
||
|
custom|
|
||
|
epsg|
|
||
|
esri|
|
||
|
eur79z30|
|
||
|
ijtsk|
|
||
|
ijtsk03|
|
||
|
jtsk|
|
||
|
jtsk03|
|
||
|
long-lat|
|
||
|
osgb|
|
||
|
s-merc|
|
||
|
utm
|
||
|
</define-regex>
|
||
|
|
||
|
<!-- FIXME: Should this be the same list as data-instruments? -->
|
||
|
<define-regex id="quantity" extended="true">
|
||
|
tape|
|
||
|
length|
|
||
|
backtape|
|
||
|
backlength|
|
||
|
compass|
|
||
|
bearing|
|
||
|
backcompass|
|
||
|
backbearing|
|
||
|
clino|
|
||
|
gradient|
|
||
|
backclino|
|
||
|
backgradient|
|
||
|
counter|
|
||
|
count|
|
||
|
depth|
|
||
|
declination|
|
||
|
dx|
|
||
|
easting|
|
||
|
dy|
|
||
|
northing|
|
||
|
dz|
|
||
|
altitude|
|
||
|
left|
|
||
|
right|
|
||
|
up|
|
||
|
ceiling|
|
||
|
down|
|
||
|
floor|
|
||
|
level|
|
||
|
plumb|
|
||
|
position
|
||
|
</define-regex>
|
||
|
|
||
|
<!-- FIXME: Should this be the same list as data-instruments? -->
|
||
|
<define-regex id="calibrate-quantity" extended="true">
|
||
|
tape|
|
||
|
compass|
|
||
|
clino|
|
||
|
counter|
|
||
|
depth|
|
||
|
declination|
|
||
|
x|
|
||
|
y|
|
||
|
z
|
||
|
</define-regex>
|
||
|
|
||
|
<define-regex id="unit" extended="true">
|
||
|
default|
|
||
|
yards|
|
||
|
feet|
|
||
|
metric|
|
||
|
meters|
|
||
|
metres|
|
||
|
degs|
|
||
|
degrees|
|
||
|
grads|
|
||
|
mils|
|
||
|
minutes|
|
||
|
percentage|
|
||
|
percent
|
||
|
</define-regex>
|
||
|
|
||
|
<define-regex id="set-item" extended="true">
|
||
|
blank|
|
||
|
comment|
|
||
|
decimal|
|
||
|
eol|
|
||
|
keyword|
|
||
|
minus|
|
||
|
names|
|
||
|
omit|
|
||
|
plus|
|
||
|
root|
|
||
|
separator
|
||
|
</define-regex>
|
||
|
|
||
|
<context id="string" style-ref="literal" end-at-line-end="true">
|
||
|
<start>"</start>
|
||
|
<end>"</end>
|
||
|
</context>
|
||
|
|
||
|
<context id="numeric" style-ref="number">
|
||
|
<match>(\%{number})</match>
|
||
|
</context>
|
||
|
|
||
|
<context id="station-name" style-ref="number">
|
||
|
<match>(\%{station-name})</match>
|
||
|
</context>
|
||
|
|
||
|
<context id="line-comment" style-ref="comment" end-at-line-end="true">
|
||
|
<start>;</start>
|
||
|
<include>
|
||
|
<context ref="def:in-line-comment"/>
|
||
|
</include>
|
||
|
</context>
|
||
|
|
||
|
<context id="alias-command">
|
||
|
<match>^\s*(\*alias)\s+(station)\s+(\%{station-name})(?:\s+(\%{station-name}))?</match>
|
||
|
<include>
|
||
|
<context sub-pattern="1" style-ref="command"/>
|
||
|
<context sub-pattern="2" style-ref="parameter"/>
|
||
|
<context sub-pattern="3" style-ref="identifier"/>
|
||
|
</include>
|
||
|
</context>
|
||
|
|
||
|
<context id="begin-command">
|
||
|
<match>^\s*(\*begin)(?:\s+(\%{survey-name}))?</match>
|
||
|
<include>
|
||
|
<context sub-pattern="1" style-ref="command"/>
|
||
|
<context sub-pattern="2" style-ref="identifier"/>
|
||
|
</include>
|
||
|
</context>
|
||
|
|
||
|
<context id="calibrate-command">
|
||
|
<match>^\s*(\*calibrate)(?:(?:((?:\s+(?:\%{calibrate-quantity}))+)\s+(\%{number})(?:\s+(\%{unit}))?(?:\s+(\%{number}))?)|\s+(default))</match>
|
||
|
<include>
|
||
|
<context sub-pattern="1" style-ref="command"/>
|
||
|
<context sub-pattern="2" style-ref="parameter"/>
|
||
|
<context sub-pattern="3" style-ref="number"/>
|
||
|
<context sub-pattern="4" style-ref="parameter"/>
|
||
|
<context sub-pattern="5" style-ref="number"/>
|
||
|
<context sub-pattern="6" style-ref="parameter"/>
|
||
|
</include>
|
||
|
</context>
|
||
|
|
||
|
<context id="case-command">
|
||
|
<match>^\s*(\*case)\s+(preserve|toupper|tolower)</match>
|
||
|
<include>
|
||
|
<context sub-pattern="1" style-ref="command"/>
|
||
|
<context sub-pattern="2" style-ref="parameter"/>
|
||
|
</include>
|
||
|
</context>
|
||
|
|
||
|
<context id="copyright-command">
|
||
|
<match>^\s*(\*copyright)\s+(\%{date})\s+(.+)</match>
|
||
|
<include>
|
||
|
<context sub-pattern="1" style-ref="command"/>
|
||
|
<context sub-pattern="2" style-ref="number"/>
|
||
|
</include>
|
||
|
</context>
|
||
|
|
||
|
<context id="cs-command">
|
||
|
<match>^\s*(\*cs)(?:\s+(out))?\s+(\%{coordinate-system})</match>
|
||
|
<include>
|
||
|
<context sub-pattern="1" style-ref="command"/>
|
||
|
<context sub-pattern="2" style-ref="parameter"/>
|
||
|
<context sub-pattern="3" style-ref="parameter"/>
|
||
|
</include>
|
||
|
</context>
|
||
|
|
||
|
<context id="data-command">
|
||
|
<match>^\s*(\*data)\s+(\%{data-style})((?:\s+(?:\%{data-instruments}))*)</match>
|
||
|
<include>
|
||
|
<context sub-pattern="1" style-ref="command"/>
|
||
|
<context sub-pattern="2" style-ref="parameter"/>
|
||
|
<context sub-pattern="3" style-ref="parameter"/>
|
||
|
</include>
|
||
|
</context>
|
||
|
|
||
|
<context id="date-command">
|
||
|
<match>^\s*(\*date)\s+(\%{date})</match>
|
||
|
<include>
|
||
|
<context sub-pattern="1" style-ref="command"/>
|
||
|
<context sub-pattern="2" style-ref="number"/>
|
||
|
</include>
|
||
|
</context>
|
||
|
|
||
|
<context id="declination-command">
|
||
|
<match>^\s*(\*declination)\s+(?:(auto)|(?:(\%{number})\s+(\%{unit})))</match>
|
||
|
<include>
|
||
|
<context sub-pattern="1" style-ref="command"/>
|
||
|
<context sub-pattern="2" style-ref="parameter"/>
|
||
|
<context sub-pattern="3" style-ref="number"/>
|
||
|
<context sub-pattern="4" style-ref="parameter"/>
|
||
|
</include>
|
||
|
</context>
|
||
|
|
||
|
<context id="default-command">
|
||
|
<match>^\s*(\*default)\s+(all|calibrate|data|units)</match>
|
||
|
<include>
|
||
|
<context sub-pattern="1" style-ref="command"/>
|
||
|
<context sub-pattern="2" style-ref="parameter"/>
|
||
|
</include>
|
||
|
</context>
|
||
|
|
||
|
<context id="end-command">
|
||
|
<match>^\s*(\*end)(?:\s+(\%{survey-name}))?</match>
|
||
|
<include>
|
||
|
<context sub-pattern="1" style-ref="command"/>
|
||
|
<context sub-pattern="2" style-ref="identifier"/>
|
||
|
</include>
|
||
|
</context>
|
||
|
|
||
|
<context id="entrance-command">
|
||
|
<match>^\s*(\*entrance)\s+(\%{station-name})</match>
|
||
|
<include>
|
||
|
<context sub-pattern="1" style-ref="command"/>
|
||
|
<context sub-pattern="2" style-ref="identifier"/>
|
||
|
</include>
|
||
|
</context>
|
||
|
|
||
|
<context id="equate-command">
|
||
|
<match>^\s*(\*equate)\s+(\%{station-name})((?:\s+(?:\%{station-name}))+)</match>
|
||
|
<include>
|
||
|
<context sub-pattern="1" style-ref="command"/>
|
||
|
<context sub-pattern="2" style-ref="identifier"/>
|
||
|
<context sub-pattern="3" style-ref="identifier"/>
|
||
|
</include>
|
||
|
</context>
|
||
|
|
||
|
<context id="export-command">
|
||
|
<match>^\s*(\*export)((?:\s+(?:\%{station-name}))+)</match>
|
||
|
<include>
|
||
|
<context sub-pattern="1" style-ref="command"/>
|
||
|
<context sub-pattern="2" style-ref="identifier"/>
|
||
|
</include>
|
||
|
</context>
|
||
|
|
||
|
<context id="fix-command">
|
||
|
<match>^\s*(\*fix)\s+(\%{station-name})(\s+reference)?</match>
|
||
|
<include>
|
||
|
<context sub-pattern="1" style-ref="command"/>
|
||
|
<context sub-pattern="2" style-ref="identifier"/>
|
||
|
<context sub-pattern="3" style-ref="parameter"/>
|
||
|
</include>
|
||
|
</context>
|
||
|
|
||
|
<context id="flags-command">
|
||
|
<match>^\s*(\*flags)((?:(?:\s+not)?\s+(?:duplicate|splay|surface))+)</match>
|
||
|
<include>
|
||
|
<context sub-pattern="1" style-ref="command"/>
|
||
|
<context sub-pattern="2" style-ref="parameter"/>
|
||
|
</include>
|
||
|
</context>
|
||
|
|
||
|
<context id="include-command">
|
||
|
<match>^\s*(\*include)\s+(\%{string})</match>
|
||
|
<include>
|
||
|
<context sub-pattern="1" style-ref="command"/>
|
||
|
<context sub-pattern="2" style-ref="literal"/>
|
||
|
</include>
|
||
|
</context>
|
||
|
|
||
|
<context id="infer-command">
|
||
|
<match>^\s*(\*infer)\s+(plumbs|equates|exports)\s+(on|off)</match>
|
||
|
<include>
|
||
|
<context sub-pattern="1" style-ref="command"/>
|
||
|
<context sub-pattern="2" style-ref="parameter"/>
|
||
|
<context sub-pattern="3" style-ref="parameter"/>
|
||
|
</include>
|
||
|
</context>
|
||
|
|
||
|
<context id="instrument-command">
|
||
|
<match>^\s*(\*instrument)\s+([a-z]+)\s+(\%{string})</match>
|
||
|
<include>
|
||
|
<context sub-pattern="1" style-ref="command"/>
|
||
|
<context sub-pattern="2" style-ref="identifier"/>
|
||
|
<context sub-pattern="3" style-ref="literal"/>
|
||
|
</include>
|
||
|
</context>
|
||
|
|
||
|
<context id="prefix-command">
|
||
|
<match>^\s*(\*prefix)\s+(\%{survey-name})</match>
|
||
|
<include>
|
||
|
<context sub-pattern="1" style-ref="command"/>
|
||
|
<context sub-pattern="2" style-ref="identifier"/>
|
||
|
</include>
|
||
|
</context>
|
||
|
|
||
|
<context id="ref-command">
|
||
|
<match>^\s*(\*ref)\s+(\%{string})</match>
|
||
|
<include>
|
||
|
<context sub-pattern="1" style-ref="command"/>
|
||
|
<context sub-pattern="2" style-ref="literal"/>
|
||
|
</include>
|
||
|
</context>
|
||
|
|
||
|
<context id="require-command">
|
||
|
<match>^\s*(\*require)\s+(\%{string})</match>
|
||
|
<include>
|
||
|
<context sub-pattern="1" style-ref="command"/>
|
||
|
<context sub-pattern="2" style-ref="literal"/>
|
||
|
</include>
|
||
|
</context>
|
||
|
|
||
|
<context id="sd-command">
|
||
|
<match>^\s*(\*sd)((?:\s+(?:\%{quantity}))+)\s+(\%{number})\s+(\%{unit})</match>
|
||
|
<include>
|
||
|
<context sub-pattern="1" style-ref="command"/>
|
||
|
<context sub-pattern="2" style-ref="parameter"/>
|
||
|
<context sub-pattern="3" style-ref="number"/>
|
||
|
<context sub-pattern="4" style-ref="parameter"/>
|
||
|
</include>
|
||
|
</context>
|
||
|
|
||
|
<context id="set-command">
|
||
|
<match>^\s*(\*set)\s+(\%{set-item})\s+(.+)</match>
|
||
|
<include>
|
||
|
<context sub-pattern="1" style-ref="command"/>
|
||
|
<context sub-pattern="2" style-ref="parameter"/>
|
||
|
<context sub-pattern="3" style-ref="literal"/>
|
||
|
</include>
|
||
|
</context>
|
||
|
|
||
|
<context id="solve-command">
|
||
|
<match>^\s*(\*solve)</match>
|
||
|
<include>
|
||
|
<context sub-pattern="1" style-ref="command"/>
|
||
|
</include>
|
||
|
</context>
|
||
|
|
||
|
<context id="team-command">
|
||
|
<match>^\s*(\*team)\s+(\%{string})((?:\s+(?:[a-z]+))+)</match>
|
||
|
<include>
|
||
|
<context sub-pattern="1" style-ref="command"/>
|
||
|
<context sub-pattern="2" style-ref="literal"/>
|
||
|
<context sub-pattern="3" style-ref="identifier"/>
|
||
|
</include>
|
||
|
</context>
|
||
|
|
||
|
<context id="title-command">
|
||
|
<match>^\s*(\*title)\s+(\%{string})</match>
|
||
|
<include>
|
||
|
<context sub-pattern="1" style-ref="command"/>
|
||
|
<context sub-pattern="2" style-ref="literal"/>
|
||
|
</include>
|
||
|
</context>
|
||
|
|
||
|
<context id="truncate-command">
|
||
|
<match>^\s*(\*truncate)\s+(?:(\%{number})|(off))</match>
|
||
|
<include>
|
||
|
<context sub-pattern="1" style-ref="command"/>
|
||
|
<context sub-pattern="2" style-ref="number"/>
|
||
|
<context sub-pattern="3" style-ref="parameter"/>
|
||
|
</include>
|
||
|
</context>
|
||
|
|
||
|
<context id="units-command">
|
||
|
<match>^\s*(\*units)((?:\s+(?:\%{quantity}))+)(?:\s+(\%{number}))?\s+(\%{unit})</match>
|
||
|
<include>
|
||
|
<context sub-pattern="1" style-ref="command"/>
|
||
|
<context sub-pattern="2" style-ref="parameter"/>
|
||
|
<context sub-pattern="3" style-ref="number"/>
|
||
|
<context sub-pattern="4" style-ref="parameter"/>
|
||
|
</include>
|
||
|
</context>
|
||
|
|
||
|
<context id="survex">
|
||
|
<include>
|
||
|
<context ref="string"/>
|
||
|
<context ref="numeric"/>
|
||
|
<context ref="station-name"/>
|
||
|
<context ref="line-comment"/>
|
||
|
<context ref="alias-command"/>
|
||
|
<context ref="begin-command"/>
|
||
|
<context ref="calibrate-command"/>
|
||
|
<context ref="case-command"/>
|
||
|
<context ref="copyright-command"/>
|
||
|
<context ref="cs-command"/>
|
||
|
<context ref="data-command"/>
|
||
|
<context ref="date-command"/>
|
||
|
<context ref="declination-command"/>
|
||
|
<context ref="default-command"/>
|
||
|
<context ref="end-command"/>
|
||
|
<context ref="entrance-command"/>
|
||
|
<context ref="equate-command"/>
|
||
|
<context ref="export-command"/>
|
||
|
<context ref="fix-command"/>
|
||
|
<context ref="flags-command"/>
|
||
|
<context ref="include-command"/>
|
||
|
<context ref="infer-command"/>
|
||
|
<context ref="instrument-command"/>
|
||
|
<context ref="prefix-command"/>
|
||
|
<context ref="ref-command"/>
|
||
|
<context ref="require-command"/>
|
||
|
<context ref="sd-command"/>
|
||
|
<context ref="set-command"/>
|
||
|
<context ref="solve-command"/>
|
||
|
<context ref="team-command"/>
|
||
|
<context ref="title-command"/>
|
||
|
<context ref="truncate-command"/>
|
||
|
<context ref="units-command"/>
|
||
|
</include>
|
||
|
</context>
|
||
|
|
||
|
</definitions>
|
||
|
</language>
|