A backslash should not be allowed inside a quoted string unless it is used to escape another character. This fixes https://savannah.gnu.org/bugs/?61389. Bug existed since each of these syntaxes was introduced. (Awk and Fortran do not know include files with names between angled brackets, so those regexes are dropped in the bargain.)
38 lines
1.3 KiB
Plaintext
38 lines
1.3 KiB
Plaintext
## Syntax highlighting for AWK scripts.
|
|
|
|
syntax awk "\.awk$"
|
|
header "^#!.*awk"
|
|
magic "awk script"
|
|
comment "#"
|
|
|
|
# Records.
|
|
color brightred "\$[0-9A-Za-z_!@#$*?-]+"
|
|
# Awk-set variables.
|
|
color red "\<(ARGC|ARGIND|ARGV|BINMODE|CONVFMT|ENVIRON|ERRNO|FIELDWIDTHS)\>"
|
|
color red "\<(FILENAME|FNR|FS|IGNORECASE|LINT|NF|NR|OFMT|OFS|ORS)\>"
|
|
color red "\<(PROCINFO|RS|RT|RSTART|RLENGTH|SUBSEP|TEXTDOMAIN)\>"
|
|
# Function declarations and special patterns.
|
|
color brightgreen "\<(function|extension|BEGIN|END)\>"
|
|
# Operators.
|
|
color green "\{|\}|\(|\)|\;|\[|\]|\\|<|>|!|=|&|\+|-|\*|%|/|\?:|\^|\|"
|
|
# Flow control.
|
|
color brightyellow "\<(for|if|while|do|else|in|delete|exit)\>"
|
|
color brightyellow "\<(break|continue|return)\>"
|
|
# I/O statements.
|
|
color brightgreen "\<(close|fflush|getline|next|nextfile|print|printf|system)\>"
|
|
# Standard functions.
|
|
color magenta "\<(atan2|cos|exp|int|log|rand|sin|sqrt|srand)\>"
|
|
color magenta "\<(asort|asorti|gensub|gsub|index|length|match)\>"
|
|
color magenta "\<(split|sprintf|strtonum|sub|substr|tolower|toupper)\>"
|
|
color magenta "\<(mktime|strftime|systime)\>"
|
|
color magenta "\<(and|compl|lshift|or|rshift|xor)\>"
|
|
color magenta "\<(bindtextdomain|dcgettext|dcngettext)\>"
|
|
|
|
# Strings.
|
|
color brightyellow ""(\\.|[^"\])*""
|
|
# Comments.
|
|
color brightblue "(^|[[:blank:]])#.*"
|
|
|
|
# Trailing whitespace.
|
|
color ,green "[[:space:]]+$"
|