diff options
Diffstat (limited to 'misc/syntax/b.syntax')
-rw-r--r-- | misc/syntax/b.syntax | 382 |
1 files changed, 382 insertions, 0 deletions
diff --git a/misc/syntax/b.syntax b/misc/syntax/b.syntax new file mode 100644 index 0000000..7cd91a0 --- /dev/null +++ b/misc/syntax/b.syntax @@ -0,0 +1,382 @@ +# B language keywords +# by Gyorgy Rotter +# +# For the proper syntax highlight the order of the keywords are +# important. This is why the related keywords are not listed in a block. +# To create semantic relationship between the keywords I used groups. +# Some keywords are in a group (the name of the group is +# indicated in a commented line above the keyword definition) +# +# With the one-liner for example we could replace +# the color of the keywords which are the members of the +# "Sequences" group from "yellow" to "red"... +# +# echo Sequences yellow red | xargs -l bash -c 'sed -z "s/\(# $0\n[^\n]*\)$1/\1$2/g" b.syntax' +# ^ ^ ^ +# | | | +# | | -- new_color +# | -- actual_color +# -- groupname +# +# +# Usable groups: +# Relations, Sequences, Logical, Arithmetic, Sets, Substitutions +# +# Usable colors: +# described in the Syntax file +# + +context default + keyword whole ABSTRACT_CONSTANTS yellow + keyword whole ABSTRACT_VARIABLES yellow + keyword whole CONCRETE_CONSTANTS yellow + keyword whole CONCRETE_VARIABLES yellow + keyword whole LOCAL_OPERATIONS yellow + keyword whole IMPLEMENTATION yellow + keyword whole INITIALISATION yellow + keyword whole CONSTRAINTS yellow + keyword whole DEFINITIONS yellow + keyword whole ASSERTIONS yellow + keyword whole OPERATIONS yellow + keyword whole PROPERTIES yellow + keyword whole REFINEMENT yellow + keyword whole CONSTANTS yellow + keyword whole INVARIANT yellow + keyword whole sequences yellow + keyword whole VARIABLES yellow + keyword whole Cardinal yellow + + # Relations + keyword whole closure1 white + + keyword whole INCLUDES yellow + + # Arithmetic + keyword whole NATURAL1 yellow + + keyword whole PROMOTES yellow + keyword whole Boolean yellow + keyword whole EXTENDS yellow + keyword whole IMPORTS yellow + + # Arithmetic + keyword whole INTEGER yellow + + keyword whole iterate yellow + keyword whole MACHINE yellow + + # Arithmetic + keyword whole NATURAL yellow + + keyword whole postfix yellow + keyword whole REFINES yellow + keyword whole subtree yellow + keyword whole VARIANT yellow + keyword whole ASSERT yellow + keyword whole CHOICE yellow + + # Relations + keyword whole closure white + + keyword whole EITHER yellow + keyword whole father yellow + keyword whole MAXINT yellow + keyword whole MININT yellow + keyword whole mirror yellow + keyword whole modulo yellow + keyword whole prefix yellow + keyword whole SELECT yellow + keyword whole STRING yellow + keyword whole struct yellow + keyword whole VALUES yellow + keyword whole arity yellow + keyword whole BEGIN yellow + keyword whole btree yellow + keyword whole const yellow + keyword whole ELSIF yellow + keyword whole FALSE yellow + keyword whole first yellow + keyword whole front yellow + keyword whole infix yellow + + # Sets + keyword whole INTER yellow + + keyword whole inter yellow + keyword whole iseq1 yellow + keyword whole right yellow + + # Arithmetic + keyword whole SIGMA yellow + + keyword whole sizet yellow + + # Sets + keyword whole UNION yellow + + keyword whole union yellow + keyword whole WHERE yellow + keyword whole WHILE yellow + keyword whole bool yellow + keyword whole BOOL yellow + keyword whole card yellow + keyword whole CASE yellow + keyword whole conc yellow + keyword whole ELSE yellow + + # Sets + keyword whole FIN1 yellow + + keyword whole iseq yellow + keyword whole last yellow + keyword whole left yellow + keyword whole NAT1 yellow + + # Sets + keyword whole POW1 yellow + + keyword whole perm yellow + keyword whole pred yellow + keyword whole prj1 yellow + keyword whole prj2 yellow + keyword whole rank yellow + keyword whole SEES yellow + keyword whole seq1 yellow + keyword whole SETS yellow + keyword whole size yellow + keyword whole skip yellow + keyword whole sons yellow + keyword whole succ yellow + keyword whole tail yellow + keyword whole THEN yellow + keyword whole tree yellow + keyword whole TRUE yellow + keyword whole USES yellow + keyword whole WHEN yellow + keyword whole ANY yellow + keyword whole bin yellow + keyword whole dom yellow + keyword whole END yellow + + # Sets + keyword whole FIN yellow + + keyword whole fnc yellow + keyword whole INT yellow + keyword whole LET yellow + keyword whole max yellow + keyword whole min yellow + keyword whole mod yellow + keyword whole NAT yellow + + # Logical + keyword whole not cyan + + # Sets + keyword whole POW yellow + + keyword whole PRE yellow + keyword whole ran yellow + keyword whole rec yellow + keyword whole rel yellow + keyword whole rev yellow + keyword whole seq yellow + keyword whole Set yellow + keyword whole son yellow + keyword whole top yellow + keyword whole VAR yellow + keyword whole BE yellow + keyword whole DO yellow + keyword whole id yellow + keyword whole IF yellow + keyword whole IN yellow + keyword whole OF yellow + keyword whole OR yellow + + # Logical + keyword whole or cyan + + # Arithmetic + keyword whole PI yellow + +# prevents - keyword from interfering with comment + keyword /\* green + keyword \*/ green + keyword // green + + + keyword <-- yellow + keyword := yellow + + + # Relations + keyword \+->> white + + # Relations + keyword -->> white + + # Sets + keyword /<<: yellow + + # Sequences + keyword /|\\ magenta + + # Relations + keyword >->> white + + # Relations + keyword >\+> white + + # Arithmetic + keyword \*\* yellow + + # Relations + keyword \+-> white + + # Sequences + keyword \\|/ magenta + + # Relations + keyword --> white + + # Sets + keyword /<: yellow + + # Sets + keyword /\\ yellow + + # Relations + keyword <-> white + + # Sets + keyword <<: yellow + + # Relations + keyword <<| white + + # Logical + keyword <=> cyan + + # Relations + keyword <\+ white + + # Relations + keyword >-> white + + # Sets + keyword \\/ yellow + + # Relations + keyword |-> white + + # Relations + keyword |>> white + + keyword != yellow + + # Sequences + keyword -> magenta + + # Sets + keyword /: yellow + + # Logical + keyword /= cyan + + # Substitutions + keyword :: yellow + + # Sequences + keyword <- magenta + + # Sets + keyword <: yellow + + # Arithmetic + keyword <= yellow + + # Relations + keyword <| white + + keyword == yellow + + # Logical + keyword => cyan + + # Relations + keyword >< white + + # Arithmetic + keyword >= yellow + + # Arithmetic + keyword \* yellow + + # Arithmetic + keyword \+ yellow + + # Sets + keyword {} yellow + + # Relations + keyword |> white + + # Logical + keyword ! cyan + + # Logical + keyword # cyan + + # Relations + keyword % white + + # Logical + keyword & cyan + + keyword ( yellow + keyword ) yellow + keyword , yellow + + # Arithmetic + keyword - yellow + + # Arithmetic + keyword / yellow + + # Sets + keyword : yellow + + keyword ; yellow + + # Arithmetic + keyword < yellow + + # Logical + keyword = cyan + + # Arithmetic + keyword > yellow + + keyword ? yellow + keyword [ yellow + keyword ] yellow + + # Sequences + keyword ^ magenta + + keyword { yellow + keyword } yellow + + keyword | yellow + + # Relations + keyword ~ white + + +context exclusive /\* \*/ green + spellcheck + +context exclusive // \n green + spellcheck + +context " " brightgreen |