# AWK syntax by
# Olegarch  <olegarch@mail.ru>
# Andres Farfan, <nafraf@linuxmail.org>
# Ilia Maslakov <il.smind gmail com>
#
# (c) 2003, 2004, 2009
#  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.
#
#  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, see <https://www.gnu.org/licenses/>.

context default

    keyword whole linestart #!\[\s\]/bin/\[msg\]awk yellow magenta
    keyword whole linestart #!\[\s\]/usr/bin/\[msg\]awk yellow magenta
# Keywords
    keyword whole AMNOISE white
    keyword whole BEGIN white
    keyword whole END white
    keyword whole func white
    keyword whole function white
    keyword whole nextfile white

    keyword whole return white/26
    keyword whole print white/26
    keyword whole printf white/26
    keyword whole if white/26
    keyword whole else white/26
    keyword whole while white/26
    keyword whole for white/26
    keyword whole in white/26
    keyword whole do white/26
    keyword whole break white/26
    keyword whole continue white/26
    keyword whole next white/26
    keyword whole exit white/26
    keyword whole close white/26
    keyword whole system white/26
    keyword whole getline white/26
# Builtin functions:
    keyword whole atan2        white black
    keyword whole cos          white black
    keyword whole exp          white black
    keyword whole int          white black
    keyword whole log          white black
    keyword whole rand         white black
    keyword whole sin          white black
    keyword whole sqrt         white black
    keyword whole srand        white black
    keyword whole gsub         white black
    keyword whole index        white black
    keyword whole length       white black
    keyword whole match        white black
    keyword whole split        white black
    keyword whole sprintf      white black
    keyword whole sub          white black
    keyword whole substr       white black
    keyword whole asort        white black
    keyword whole asorti       white black

    keyword whole xor white
    keyword whole and white
    keyword whole or white

# Gawk builtin functions:
    keyword whole fflush       white black
    keyword whole gensub       white black
    keyword whole tolower      white black
    keyword whole toupper      white black
    keyword whole systime      white black
    keyword whole strftime     white black
    keyword whole strtonum white
    keyword whole bindtextdomain white
    keyword whole dcgettext white
    keyword whole dcngettext white
    keyword whole compl white
    keyword whole delete white
    keyword whole extension white
    keyword whole mktime white
    keyword whole lshift white
    keyword whole rshift white

# Builtin variables:
    keyword whole ARGIND brightblue
    keyword whole BINMODE brightblue
    keyword whole CONVFMT brightblue
    keyword whole ENVIRON brightblue
    keyword whole LINT brightblue
    keyword whole TEXTDOMAIN brightblue
    keyword whole ARGC brightblue
    keyword whole ARGV brightblue
    keyword whole FILENAME brightblue
    keyword whole FNR brightblue
    keyword whole FS brightblue
    keyword whole NF brightblue
    keyword whole NR brightblue
    keyword whole OFMT brightblue
    keyword whole OFS brightblue
    keyword whole ORS brightblue
    keyword whole RLENGTH brightblue
    keyword whole RS brightblue
    keyword whole RSTART brightblue
    keyword whole SUBSEP brightblue
# Gawk builtin variables:
    keyword whole ARGIND brightblue
    keyword whole ERRNO brightblue
    keyword whole RT brightblue
    keyword whole IGNORECASE brightblue
    keyword whole FIELDWIDTHS brightblue

    keyword '\s' brightgreen/16
    keyword '+' brightgreen/16
    keyword > yellow/24
    keyword < yellow/24
    keyword \+ yellow/24
    keyword - yellow/24
    keyword \* yellow/24
    keyword % yellow/24
    keyword = yellow/24
    keyword != yellow/24
    keyword == yellow/24
    keyword { white/25
    keyword } white/25
    keyword ( white/25
    keyword ) white/25
    keyword [*] magenta
    keyword , white/25
    keyword : white/25
    keyword ; lightgray/19
    keyword $\[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\] brightred/18
# Begin/End:
    keyword whole BEGIN red
    keyword whole END red
# Function keyword:
    keyword whole function brightmagenta
# Hex constant:
    keyword 0\{xX\}\[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\] magenta/6
# Tab:    \t
#    keyword linestart \t lightgray/13 blue/6

# Sed:
    keyword linestart /^ red
    keyword linestart /^# red
context /^#*/ red

# Comments:
context linestart # \n brown
context linestart $ \n brown

# String:
context " " green/6
    keyword \\" brightgreen/16
    keyword \\\n brightgreen/16
    keyword %% brightgreen/16
    keyword %\[#0\s-\+,\]\[0123456789\]\[.\]\[0123456789\]\[L\]\{eEfgGoxX\} brightgreen/16
    keyword %\[0\s-\+,\]\[0123456789\]\[.\]\[0123456789\]\[hl\]\{diu\} brightgreen/16
    keyword %\[hl\]n brightgreen/16
    keyword %\[.\]\[0123456789\]s brightgreen/16
    keyword %[*] brightgreen/16
    keyword %c brightgreen/16
    keyword \\\{0123\}\{01234567\}\{01234567\} brightgreen/16
    keyword \\\\ brightgreen/16
    keyword \\' brightgreen/16
    keyword \\\{abtnvfr\} brightgreen/16
