From 0dc8cafa2f8c32d2ad9dd0da4edd5b23b9114dbf Mon Sep 17 00:00:00 2001 From: Syndamia Date: Fri, 28 Apr 2023 10:20:34 +0300 Subject: [Syntax-highlighting] Ported grammars and regexes to new colors --- awk-edits/Syntax-highlighting.awk | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) (limited to 'awk-edits/Syntax-highlighting.awk') diff --git a/awk-edits/Syntax-highlighting.awk b/awk-edits/Syntax-highlighting.awk index e3a9be2..0a0a0d4 100644 --- a/awk-edits/Syntax-highlighting.awk +++ b/awk-edits/Syntax-highlighting.awk @@ -17,6 +17,13 @@ BEGIN { syntaxhighlighting=0; } +function hi(pat, class) { + gsub(pat, "&"); +} +function hie(pat, epat, class) { + return gesub(pat, epat, "&"); +} + # # -- Grammars -- # @@ -58,10 +65,10 @@ syntaxhighlighting == 1 { } for (i = 1; i <= grammarNamesI; i++) { - $0 = gesub(grammarNames[i], "]*>[^<]*]*>", "&"); + $0 = hie(grammarNames[i], "]*>[^<]*]*>", "function"); } - gsub(/[[:blank:]]*[^-\\]->/, "&"); - gsub(/\|/, "&"); + hi("->", "statement"); + hi("\\|", "statement"); } # @@ -76,11 +83,11 @@ syntaxhighlighting == 0 && /class="language-regex"/ { syntaxhighlighting == 2 { syntaxhighlighting = 2; - gsub(/[\*]/, "&"); - gsub(/[\(\)\|]/, "&"); + hi("\\*", "repeat"); + hi("[\\(\\)\\|]", "statement"); } -# +# # -- Bash # # Supports "bash" @@ -97,11 +104,12 @@ syntaxhighlighting == 2 { } syntaxhighlighting == 3 { - gsub(/("[^"]*"|'[^']*')/, "&"); - gsub(/\$(\(|\(\(|{).+(\)|\)\)|})/, "&"); - gsub(/\$[^[:blank:]]+/, "&"); + hi("(\"[^\"]*\"|'[^']*')", "string"); + hi("\\$(\\(|\\(\\(|{).+(\\)|\\)\\)|})", "structure"); + hi("\\$[^[:blank:]]+", "structure"); gsub(/[[:blank:]]+-[-_[:alnum:]]+/, "&"); - gsub(/(^|[[:blank:]]+)(function|if|fi|then|case|esac|in|disown|==|!=|-eq|-ne|-gt|-ge|-lt|-le|;|\|\||&&)($|[[:blank:]])/, "&"); + hi("(^|[[:blank:]]+)(if|fi|then|case|esac|==|!=|-eq|-ne|-gt|-ge|-lt|-le|;|\\|\\||&&)($|[[:blank:]])", "conditional"); + hi("(^|[[:blank:]]+)(for|while|until|in|do|done)($|[[:blank:]])", "repeat"); gsub(/^[[:blank:]]*[[:alnum:]]+=/, "&"); gsub(/[-_[:alnum:]]+[[:blank:]]*\([^\)]*\)/, "&"); gsub(/[\{\}]/, "&"); -- cgit v1.3.1-23-gd82d From 62b4b87aa877119f22c600bdbae5197effd37ad7 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Fri, 28 Apr 2023 16:12:07 +0300 Subject: [Syntax-highlighting] Replaced some string regexes to strong regexp constants --- awk-edits/Syntax-highlighting.awk | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'awk-edits/Syntax-highlighting.awk') diff --git a/awk-edits/Syntax-highlighting.awk b/awk-edits/Syntax-highlighting.awk index 0a0a0d4..0c96eef 100644 --- a/awk-edits/Syntax-highlighting.awk +++ b/awk-edits/Syntax-highlighting.awk @@ -104,12 +104,12 @@ syntaxhighlighting == 2 { } syntaxhighlighting == 3 { - hi("(\"[^\"]*\"|'[^']*')", "string"); - hi("\\$(\\(|\\(\\(|{).+(\\)|\\)\\)|})", "structure"); - hi("\\$[^[:blank:]]+", "structure"); + hi(@/("[^"]*"|'[^']*')/, "string"); + hi(@/\$(\(|\(\(|{).+(\)|\)\)|})/, "structure"); + hi(@/\$[^[:blank:]]+/, "structure"); gsub(/[[:blank:]]+-[-_[:alnum:]]+/, "&"); - hi("(^|[[:blank:]]+)(if|fi|then|case|esac|==|!=|-eq|-ne|-gt|-ge|-lt|-le|;|\\|\\||&&)($|[[:blank:]])", "conditional"); - hi("(^|[[:blank:]]+)(for|while|until|in|do|done)($|[[:blank:]])", "repeat"); + hi(@/(^|[[:blank:]]+)(if|fi|then|case|esac|==|!=|-eq|-ne|-gt|-ge|-lt|-le|;|\|\||&&)($|[[:blank:]])/, "conditional"); + hi(@/(^|[[:blank:]]+)(for|while|until|in|do|done)($|[[:blank:]])/, "repeat"); gsub(/^[[:blank:]]*[[:alnum:]]+=/, "&"); gsub(/[-_[:alnum:]]+[[:blank:]]*\([^\)]*\)/, "&"); gsub(/[\{\}]/, "&"); -- cgit v1.3.1-23-gd82d From eff5393a6c45a02cd0c703c62fac52b6c7733307 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Fri, 28 Apr 2023 23:24:59 +0300 Subject: [Syntax-highlighting] Added UNFINISHED support for lookaround --- awk-edits/#strings.awk | 32 ++++++++++++++++++++++++++++++++ awk-edits/Syntax-highlighting.awk | 26 ++++++++++++++------------ 2 files changed, 46 insertions(+), 12 deletions(-) (limited to 'awk-edits/Syntax-highlighting.awk') diff --git a/awk-edits/#strings.awk b/awk-edits/#strings.awk index a34757e..cc469e8 100644 --- a/awk-edits/#strings.awk +++ b/awk-edits/#strings.awk @@ -43,3 +43,35 @@ function gesub(regexp, exregexp, replacement, target) { return result target; } + +# glsub(lbregexp, regexp, largexp, replacement [, empt, target]) +# Aka global sub with non-capturing look-around (lookbehind and lookahead) +function glsub(lbregexp, regexp, laregexp, replacement, empt, target) { + if (!length(target)) { + target = $0; + } + if (empt >= 2) { + RSTART = 1; + RLENGTH = 0; + empt -= 2; + } + + result = ""; + subst = ""; + while ((RSTART == 1 && RLENGTH == 0 && length(result) == 0) || match(target, lbregexp)) { + result = result substr(target, 1, RSTART + RLENGTH - 1); + target = substr(target, RSTART + RLENGTH); + match(target, regexp); + if (RSTART == 1) { + subst = substr(target, RSTART, RLENGTH); + target = substr(target, RSTART + RLENGTH); + match(target, laregexp); + if ((empt == 1 && length(target) == 0) || RSTART == 1) { + sub(/.*/, replacement, subst); + } + result = result subst; + } + } + + return result target; +} diff --git a/awk-edits/Syntax-highlighting.awk b/awk-edits/Syntax-highlighting.awk index 0c96eef..1655e8e 100644 --- a/awk-edits/Syntax-highlighting.awk +++ b/awk-edits/Syntax-highlighting.awk @@ -23,6 +23,9 @@ function hi(pat, class) { function hie(pat, epat, class) { return gesub(pat, epat, "&"); } +function hil(lbpat, pat, lrpat, empt, class) { + return glsub(lbpat, pat, lrpat, "&", empt); +} # # -- Grammars -- @@ -65,10 +68,10 @@ syntaxhighlighting == 1 { } for (i = 1; i <= grammarNamesI; i++) { - $0 = hie(grammarNames[i], "]*>[^<]*]*>", "function"); + $0 = hie(grammarNames[i], @/]*>[^<]*<\/[^>]*>/, "function"); } - hi("->", "statement"); - hi("\\|", "statement"); + hi(@/->/, "statement"); + hi(@/\|/, "statement"); } # @@ -83,8 +86,8 @@ syntaxhighlighting == 0 && /class="language-regex"/ { syntaxhighlighting == 2 { syntaxhighlighting = 2; - hi("\\*", "repeat"); - hi("[\\(\\)\\|]", "statement"); + hi(@/\*/, "repeat"); + hi(@/[\(\)\|]/, "statement"); } # @@ -107,14 +110,13 @@ syntaxhighlighting == 3 { hi(@/("[^"]*"|'[^']*')/, "string"); hi(@/\$(\(|\(\(|{).+(\)|\)\)|})/, "structure"); hi(@/\$[^[:blank:]]+/, "structure"); - gsub(/[[:blank:]]+-[-_[:alnum:]]+/, "&"); - hi(@/(^|[[:blank:]]+)(if|fi|then|case|esac|==|!=|-eq|-ne|-gt|-ge|-lt|-le|;|\|\||&&)($|[[:blank:]])/, "conditional"); + # gsub(/[[:blank:]]+-[-_[:alnum:]]+/, "&"); + $0 = hil(@/[^[:alnum:]]/, @/(if|fi|then|case|esac|==|!=|-eq|-ne|-gt|-ge|-lt|-le|;;|;|\|\||&&)/, @/[^[:alnum:]]/, 3, "conditional"); hi(@/(^|[[:blank:]]+)(for|while|until|in|do|done)($|[[:blank:]])/, "repeat"); - gsub(/^[[:blank:]]*[[:alnum:]]+=/, "&"); - gsub(/[-_[:alnum:]]+[[:blank:]]*\([^\)]*\)/, "&"); - gsub(/[\{\}]/, "&"); - gsub(/[[:blank:]]#.*$/, "&"); - gsub(/(\|)/, "&"); + $0 = hil(@/[[:blank:]]*/, @/[[:alnum:]]+/, @/=/, 0, "identifier"); + # $0 = hil("", @/[-_[:alnum:]]+[[:blank:]]*/, @/\([^\)]*\)/, 0, "function"); + hi(@/[\{\}]/, "function"); + # $0 = hil(@/[^\>]/, @/#.*$/, "", 0, "comment"); } # -- cgit v1.3.1-23-gd82d From 256745e04194ec60d3d3069909afdef85e060d35 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Sat, 29 Apr 2023 11:20:30 +0300 Subject: [Syntax-highlighting] Ported all of bash regexes --- awk-edits/Syntax-highlighting.awk | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) (limited to 'awk-edits/Syntax-highlighting.awk') diff --git a/awk-edits/Syntax-highlighting.awk b/awk-edits/Syntax-highlighting.awk index 1655e8e..caec9cf 100644 --- a/awk-edits/Syntax-highlighting.awk +++ b/awk-edits/Syntax-highlighting.awk @@ -23,8 +23,8 @@ function hi(pat, class) { function hie(pat, epat, class) { return gesub(pat, epat, "&"); } -function hil(lbpat, pat, lrpat, empt, class) { - return glsub(lbpat, pat, lrpat, "&", empt); +function hil(lbpat, pat, lrpat, class) { + return glsub(lbpat, pat, lrpat, "&"); } # @@ -107,16 +107,33 @@ syntaxhighlighting == 2 { } syntaxhighlighting == 3 { + $0 = gesub(@/=/, "<[^>]*>", "\\="); hi(@/("[^"]*"|'[^']*')/, "string"); + $0 = hil(@/[^\>&]/, + @/#.*$/, + "", + "comment"); + $0 = hil(@/[^[:alpha:]#]/, + @/[[:digit:]]+/, + @/([^[:alpha:];]|$)/, + "number"); hi(@/\$(\(|\(\(|{).+(\)|\)\)|})/, "structure"); hi(@/\$[^[:blank:]]+/, "structure"); - # gsub(/[[:blank:]]+-[-_[:alnum:]]+/, "&"); - $0 = hil(@/[^[:alnum:]]/, @/(if|fi|then|case|esac|==|!=|-eq|-ne|-gt|-ge|-lt|-le|;;|;|\|\||&&)/, @/[^[:alnum:]]/, 3, "conditional"); + $0 = hil(@/[[:blank:]]+/, @/-[-_[:alnum:]]+/, "", "operator"); + $0 = hil(@/(^|[^[:alnum:]])/, + @/(if|fi|then|case|esac|==|!=|-eq|-ne|-gt|-ge|-lt|-le|;;|;|\|\||&&)/, + @/([^[:alnum:]]|$)/, + "conditional"); hi(@/(^|[[:blank:]]+)(for|while|until|in|do|done)($|[[:blank:]])/, "repeat"); - $0 = hil(@/[[:blank:]]*/, @/[[:alnum:]]+/, @/=/, 0, "identifier"); - # $0 = hil("", @/[-_[:alnum:]]+[[:blank:]]*/, @/\([^\)]*\)/, 0, "function"); + $0 = hil(@/(^|[[:blank:]]+)/, + @/[[:alnum:]]+/, + @/(|\+|-)=/, + "identifier"); + $0 = hil("", + @/[-_[:alnum:]]+[[:blank:]]*/, + @/\([^\)]*\)/, + "function"); hi(@/[\{\}]/, "function"); - # $0 = hil(@/[^\>]/, @/#.*$/, "", 0, "comment"); } # -- cgit v1.3.1-23-gd82d From 1b3a0d2e11c8d317bb474e02cb2a8cd5534060a9 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Sat, 29 Apr 2023 11:41:30 +0300 Subject: [Syntax-highlighting/bash] Fixed floating point number and added a default highlighting for arbitrary commands --- awk-edits/Syntax-highlighting.awk | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'awk-edits/Syntax-highlighting.awk') diff --git a/awk-edits/Syntax-highlighting.awk b/awk-edits/Syntax-highlighting.awk index caec9cf..2cd63f3 100644 --- a/awk-edits/Syntax-highlighting.awk +++ b/awk-edits/Syntax-highlighting.awk @@ -113,12 +113,12 @@ syntaxhighlighting == 3 { @/#.*$/, "", "comment"); - $0 = hil(@/[^[:alpha:]#]/, - @/[[:digit:]]+/, + hi(@/\$(\(|\(\(|{).+(\)|\)\)|})/, "structure"); + hi(@/\$[[:alnum:]]+/, "structure"); + $0 = hil(@/[^[:alpha:]#\$]/, + @/[[:digit:]]+(|\.[[:digit:]]+)/, @/([^[:alpha:];]|$)/, "number"); - hi(@/\$(\(|\(\(|{).+(\)|\)\)|})/, "structure"); - hi(@/\$[^[:blank:]]+/, "structure"); $0 = hil(@/[[:blank:]]+/, @/-[-_[:alnum:]]+/, "", "operator"); $0 = hil(@/(^|[^[:alnum:]])/, @/(if|fi|then|case|esac|==|!=|-eq|-ne|-gt|-ge|-lt|-le|;;|;|\|\||&&)/, @@ -134,6 +134,7 @@ syntaxhighlighting == 3 { @/\([^\)]*\)/, "function"); hi(@/[\{\}]/, "function"); + hi(@/^[[:blank:]]*[[:alnum:]]+/, "statement"); } # -- cgit v1.3.1-23-gd82d From d56a29ed6dffe6ba047ddbb8b36c909357b2a8a8 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Sat, 29 Apr 2023 14:03:27 +0300 Subject: [Syntax-highlighting] Mostly implemented C and C++ --- awk-edits/Syntax-highlighting.awk | 101 ++++++++++++++++++++++++++++---------- 1 file changed, 76 insertions(+), 25 deletions(-) (limited to 'awk-edits/Syntax-highlighting.awk') diff --git a/awk-edits/Syntax-highlighting.awk b/awk-edits/Syntax-highlighting.awk index 2cd63f3..35fd1f3 100644 --- a/awk-edits/Syntax-highlighting.awk +++ b/awk-edits/Syntax-highlighting.awk @@ -27,6 +27,14 @@ function hil(lbpat, pat, lrpat, class) { return glsub(lbpat, pat, lrpat, "&"); } +# +# -- Global -- +# + +syntaxhighlighting > 0 || /class="language-/ { + $0 = gesub(@/=/, "<[^>]*>", "\\="); +} + # # -- Grammars -- # @@ -107,24 +115,30 @@ syntaxhighlighting == 2 { } syntaxhighlighting == 3 { - $0 = gesub(@/=/, "<[^>]*>", "\\="); - hi(@/("[^"]*"|'[^']*')/, "string"); + $0 = hie(@/"[^"]*"/, "<[^>]*>", "string"); $0 = hil(@/[^\>&]/, @/#.*$/, "", "comment"); hi(@/\$(\(|\(\(|{).+(\)|\)\)|})/, "structure"); hi(@/\$[[:alnum:]]+/, "structure"); - $0 = hil(@/[^[:alpha:]#\$]/, - @/[[:digit:]]+(|\.[[:digit:]]+)/, - @/([^[:alpha:];]|$)/, + $0 = hil(@/[^[:alnum:]#\$]/, + @/[[:digit:]]+/, + @/[^[:alnum:]]/, "number"); + $0 = hil(@/[^[:alnum:]#\$]/, + @/[[:digit:]]+\.[[:digit:]]+/, + @/[^[:alnum:]]/, + "float"); $0 = hil(@/[[:blank:]]+/, @/-[-_[:alnum:]]+/, "", "operator"); $0 = hil(@/(^|[^[:alnum:]])/, @/(if|fi|then|case|esac|==|!=|-eq|-ne|-gt|-ge|-lt|-le|;;|;|\|\||&&)/, @/([^[:alnum:]]|$)/, "conditional"); - hi(@/(^|[[:blank:]]+)(for|while|until|in|do|done)($|[[:blank:]])/, "repeat"); + $0 = hil(@/(^|[^[:alnum:]])/, + @/(for|while|until|in|do|done)/, + @/([^[:alnum:]]|$)/, + "repeat"); $0 = hil(@/(^|[[:blank:]]+)/, @/[[:alnum:]]+/, @/(|\+|-)=/, @@ -137,26 +151,10 @@ syntaxhighlighting == 3 { hi(@/^[[:blank:]]*[[:alnum:]]+/, "statement"); } + # -# -- C -- +# -- C-like programming languages -- # -# Supports "c" and is used in C-like programming languages - -/class="language-c"/ { - syntaxhighlighting = 100; -} - -syntaxhighlighting >= 100 { - gsub(/([[:alnum:]]|[-_])+(<[[:alnum:]]+>)?\(/, "&"); - gsub(/(//.*|/*.*/)/, "&"); - gsub(/[\(,\.]/, "&"); - gsub(/(public|protected|private|override|new|if|else|while|for|return|struct|typedef|extern|const)[[:blank:]]/, "&"); - gsub(/(&&|\|\||==|!=)/, "&"); - gsub(/#(include|if|ifndef|endif|define)/, "&"); - gsub(/(true|false)[[:blank:]]/, "&"); - gsub(/(int|void|double|bool|char)[[:blank:]]/, "&"); - $0 = gesub("(\"[^\"]*\"|'[^']*')", "<[^>]*>", "&"); -} # # -- C++ -- @@ -168,7 +166,10 @@ syntaxhighlighting >= 100 { } syntaxhighlighting == 101 { - gsub(/([[:blank:]]|\()*[[:upper:]]([[:upper:]]|[-_])*([[:blank:]]|\)|,|;)+/, "&"); + $0 = hil(@/(^|[^[:alnum:]])/, + @/(string)/, + @/([^[:alnum:]]|$)/, + "type"); } # @@ -213,6 +214,56 @@ syntaxhighlighting == 104 { gsub(/%[^[:blank:]]+/, "&"); } +# +# -- C -- +# +# Supports "c" and is used in C-like programming languages + +/class="language-c"/ { + syntaxhighlighting = 100; +} + +syntaxhighlighting >= 100 { + $0 = hie(@/"[^"]*"/, "<[^>]*>", "string"); + hi(@/(//.*$|/\*.*$|^.*\*/)/, "comment"); + $0 = hil(@/[^[:alnum:]#\$]/, + @/[[:digit:]]+/, + @/[^[:alnum:]]/, + "number"); + $0 = hil(@/[^[:alnum:]#\$]/, + @/[[:digit:]]+\.[[:digit:]]+/, + @/[^[:alnum:]]/, + "float"); + $0 = hil("", + @/[-_[:alnum:]]+/, + @/[[:blank:]]*(|\+|-|\*|/|%|<<|>>|&|\^|\|)=/, + "identifier"); + $0 = hil("", + @/[-_[:alnum:]]+[[:blank:]]*/, + @/\(/, + "function"); + hi(@/(==|!=|<|>|<=|>=|&&|\|\||!)/, "conditional"); + $0 = hil(@/(^|[^[:alnum:]])/, + @/(break|continue|do|for|goto|while)/, + @/([^[:alnum:]]|$)/, + "repeat"); + $0 = hil(@/(^|[^[:alnum:]])/, + @/(case|const|default|else|extern|if|return|sizeof|switch|typedef)/, + @/([^[:alnum:]]|$)/, + "keyword"); + hi(@/^[[:blank:]]*#[[:alpha:]]+/, "preproc"); + $0 = hil(@/(^|[^[:alnum:]])/, + @/(auto|char|double|float|int|long|short|signed|unsigned|bool)/, + @/([^[:alnum:]]|$)/, + "type"); + hi(@/'[\\]?[ -~]'/, "char"); + hi(@/(true|false)/, "bool"); + $0 = hil(@/(^|[^[:alnum:]])/, + @/(enum|struct|union)/, + @/([^[:alnum:]]|$)/, + "storageclass"); +} + tagend != 0 { $0 = prestart $0; tagend = 0; -- cgit v1.3.1-23-gd82d From e5be7ac510d900ee81a55d4c71eec228872d5457 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Sat, 29 Apr 2023 15:06:42 +0300 Subject: [Syntax-highlighting] Ported lex and yacc, tweaked C --- awk-edits/Syntax-highlighting.awk | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) (limited to 'awk-edits/Syntax-highlighting.awk') diff --git a/awk-edits/Syntax-highlighting.awk b/awk-edits/Syntax-highlighting.awk index 35fd1f3..0e5250e 100644 --- a/awk-edits/Syntax-highlighting.awk +++ b/awk-edits/Syntax-highlighting.awk @@ -182,10 +182,12 @@ syntaxhighlighting == 101 { } syntaxhighlighting == 102 { - gsub(/new ([[:alnum:]]|[-_])+[\(\.]/, "&"); - gsub(/(<[[:alnum:]]+>)/, "&"); - gsub(/([[:blank:]]|\()*([[:upper:]]|[-_])+([[:blank:]]|\)|,|;)+/, "&"); - gsub(/(=>)/, "&"); + $0 = hil(@/(^|[^[:alnum:]])/, + @/(new|public|protected|private|override)/, + @/([^[:alnum:]]|$)/, + "keyword"); + hi(@/<[-_[:alpha:]]+>/, "typedef"); + $0 = hie(@/[_[:upper:]][_[:upper:]][_[:upper:]][_[:upper:]]+/, @/<[^>]*>/, "const"); } # @@ -198,7 +200,7 @@ syntaxhighlighting == 102 { } syntaxhighlighting == 103 { - gsub(/%[^[:blank:]]+/, "&"); + hi(@/%[^[:blank:]]+/, "storageclass"); } # @@ -211,7 +213,7 @@ syntaxhighlighting == 103 { } syntaxhighlighting == 104 { - gsub(/%[^[:blank:]]+/, "&"); + hi(@/%[^[:blank:]]+/, "storageclass"); } # @@ -225,7 +227,7 @@ syntaxhighlighting == 104 { syntaxhighlighting >= 100 { $0 = hie(@/"[^"]*"/, "<[^>]*>", "string"); - hi(@/(//.*$|/\*.*$|^.*\*/)/, "comment"); + hi(@/(//.*$|/\*.*$|^[^\*]*\*/)/, "comment"); $0 = hil(@/[^[:alnum:]#\$]/, @/[[:digit:]]+/, @/[^[:alnum:]]/, @@ -242,18 +244,21 @@ syntaxhighlighting >= 100 { @/[-_[:alnum:]]+[[:blank:]]*/, @/\(/, "function"); - hi(@/(==|!=|<|>|<=|>=|&&|\|\||!)/, "conditional"); - $0 = hil(@/(^|[^[:alnum:]])/, + hi(@/(==|!=|<=|>=|&&|\|\||!)/, "conditional"); + $0 = hil(@/(^|[^-[:alnum:]])/, @/(break|continue|do|for|goto|while)/, @/([^[:alnum:]]|$)/, "repeat"); - $0 = hil(@/(^|[^[:alnum:]])/, + $0 = hil(@/(^|[^-[:alnum:]])/, @/(case|const|default|else|extern|if|return|sizeof|switch|typedef)/, @/([^[:alnum:]]|$)/, "keyword"); - hi(@/^[[:blank:]]*#[[:alpha:]]+/, "preproc"); - $0 = hil(@/(^|[^[:alnum:]])/, - @/(auto|char|double|float|int|long|short|signed|unsigned|bool)/, + $0 = hil(@/(^|<.*>)[[:blank:]]*/, + @/#[[:alpha:]]+/, + "", + "preproc"); + $0 = hil(@/(^|[^-[:alnum:]])/, + @/(auto|char|double|float|int|long|short|signed|unsigned|bool|void)/, @/([^[:alnum:]]|$)/, "type"); hi(@/'[\\]?[ -~]'/, "char"); -- cgit v1.3.1-23-gd82d