Manual pages: mcmcdiffmceditmcview

root/misc/syntax/turtle.syntax

/* [previous][next][first][last][top][bottom][index][help]  */
#
# Turtle syntax highlighting
# for MC Editor/CoolEdit
#
# Copyright 2020, Jonas Smedegaard <dr@jones.dk>
#
# This program is free software:
# you can redistribute it and/or modify it
# under the terms of the GNU General Public License
# as published by the Free Software Foundation,
# either version 3 of the License,
# or (at your option) any later version.
#
# 2020-04-12  Jonas Smedegaard <dr@jones.dk>
#  * Initial public release.
#
# Reference:
#   https://www.w3.org/TeamSubmission/turtle/
 
context default lightgray
    spellcheck
 
# declarations
    keyword whole @base magenta
    keyword whole @prefix magenta
 
    keyword whole a yellow
 
    keyword ^^ brightmagenta
 
# Collection
    keyword ( brightmagenta
    keyword ) brightmagenta
 
# Shorthand prefix
    keyword wholeleft \{abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\}\[\abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-\]: cyan
    keyword wholeleft : cyan
 
# Anonymous node
    keyword wholeleft _: cyan
    keyword [ cyan
    keyword ] cyan
 
# Decimal integers
    keyword whole \{0123456789\}\[0123456789\] yellow
    keyword whole \{-+\}\{0123456789\}\[0123456789\] yellow
 
# Decimal floating point arbitrary precision number
    keyword whole \{0123456789\}.\[0123456789\] yellow
    keyword whole .\{0123456789\}\[0123456789\] yellow
    keyword whole \{-+\}\{0123456789\}.\[0123456789\] yellow
    keyword whole \{-+\}.\{0123456789\}\[0123456789\] yellow
 
# Decimal floating point double/fixed precision number
    keyword whole \{0123456789\}.\[0123456789\]\{eE\}\{0123456789\}\[0123456789\] yellow
    keyword whole \{0123456789\}.\[0123456789\]\{-+\}\{eE\}\{0123456789\}\[0123456789\] yellow
    keyword whole .\{0123456789\}\[0123456789\]\{eE\}\{0123456789\}\[0123456789\] yellow
    keyword whole .\{0123456789\}\[0123456789\]\{-+\}\{eE\}\{0123456789\}\[0123456789\] yellow
    keyword whole \{-+\}\{0123456789\}.\[0123456789\]\{eE\}\{0123456789\}\[0123456789\] yellow
    keyword whole \{-+\}\{0123456789\}.\[0123456789\]\{-+\}\{eE\}\{0123456789\}\[0123456789\] yellow
    keyword whole \{-+\}.\{0123456789\}\[0123456789\]\{eE\}\{0123456789\}\[0123456789\] yellow
    keyword whole \{-+\}.\{0123456789\}\[0123456789\]\{-+\}\{eE\}\{0123456789\}\[0123456789\] yellow
 
# Boolean
    keyword whole true yellow
    keyword whole false yellow
 
# Language
    keyword wholeright @\{abcdefghijklmnopqrstuvwxyz\}\[abcdefghijklmnopqrstuvwxyz0123456789-\]\[abcdefghijklmnopqrstuvwxyz0123456789\] brightmagenta
    keyword wholeright @\{abcdefghijklmnopqrstuvwxyz\}\[abcdefghijklmnopqrstuvwxyz0123456789\] brightmagenta
 
# Punctuation
    keyword , white
    keyword ; white
#    keyword . black white
    keyword . white brightmagenta
 
# URL
#    keyword whole <*> brightred
context < > brightred
 
# TODO: enable when context ending at newline doesn't ruin next context
# syntax violation
#    keyword  +\n black red
 
# String escape
    keyword \\u\{0123456789abcdef\}\{0123456789abcdef\}\{0123456789abcdef\}\{0123456789abcdef\} brightgreen
    keyword \\U\{0123456789abcdef\}\{0123456789abcdef\}\{0123456789abcdef\}\{0123456789abcdef\}\{0123456789abcdef\}\{0123456789abcdef\}\{0123456789abcdef\}\{0123456789abcdef\} brightgreen
    keyword \\\{tnr>\\} brightgreen
 
# Single-line literals
context exclusive " " green
    spellcheck
 
# TODO: enable when context ending at newline doesn't ruin next context
# syntax violation
#    keyword +\n black red
 
# String escape
    keyword \\u\{0123456789abcdef\}\{0123456789abcdef\}\{0123456789abcdef\}\{0123456789abcdef\} brightgreen
    keyword \\U\{0123456789abcdef\}\{0123456789abcdef\}\{0123456789abcdef\}\{0123456789abcdef\}\{0123456789abcdef\}\{0123456789abcdef\}\{0123456789abcdef\}\{0123456789abcdef\} brightgreen
    keyword \\\{tnr"\\} brightgreen
 
# Multi-line literals
context """ """ green
    spellcheck
 
# String escape
    keyword \\u\{0123456789abcdef\}\{0123456789abcdef\}\{0123456789abcdef\}\{0123456789abcdef\} brightgreen
    keyword \\U\{0123456789abcdef\}\{0123456789abcdef\}\{0123456789abcdef\}\{0123456789abcdef\}\{0123456789abcdef\}\{0123456789abcdef\}\{0123456789abcdef\}\{0123456789abcdef\} brightgreen
    keyword \\\{tnr"\\} brightgreen
 
# Comment
context linestart # \n brown
    spellcheck
 
# Ideally we would have defined comments with "context linestart \[\s\]# ...",
# but contexts can't start with a character class. So we define comments twice.
context linestart \s\[\s\]# \n brown
    spellcheck

/* [previous][next][first][last][top][bottom][index][help]  */