Summary Files Commits Branches @commit @diff @stats
path: root / awk-edits / Syntax-highlighting.awk
diff options
context:
space:
mode:
Commite5be7ac510d900ee81a55d4c71eec228872d5457 (patch)
Author
 Syndamia <kamen@syndamia.com>
2023-04-29 15:06:42 +0300
Committer
 Syndamia <kamen@syndamia.com>
2023-04-29 15:06:42 +0300
Filesf8f2727496c66bbaee591c7b775e9215652f144e /awk-edits/Syntax-highlighting.awk
syndamia.com-e5be7ac510d900ee81a55d4c71eec228872d5457.tar
syndamia.com-e5be7ac510d900ee81a55d4c71eec228872d5457.tar.gz
syndamia.com-e5be7ac510d900ee81a55d4c71eec228872d5457.zip
Parente3655a70a6b2ccaabb0a8a531f0c5d7aa3de0adf (diff)
[Syntax-highlighting] Ported lex and yacc, tweaked C
1 files changed, 18 insertions, 13 deletions
-rw-r--r--awk-edits/Syntax-highlighting.awk31
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:]]|[-_])+[\(\.]/, "<span class=\"SH-cls\">&</span>");
- gsub(/(&#60;[[:alnum:]]+&#62;)/, "<span class=\"SH-kwd\">&</span>");
- gsub(/([[:blank:]]|\()*([[:upper:]]|[-_])+([[:blank:]]|\)|,|;)+/, "<span class=\"SH-cst\">&</span>");
- gsub(/(=&#62;)/, "<span class=\"SH-kwd2\">&</span>");
+ $0 = hil(@/(^|[^[:alnum:]])/,
+ @/(new|public|protected|private|override)/,
+ @/([^[:alnum:]]|$)/,
+ "keyword");
+ hi(@/&#60;[-_[:alpha:]]+&#62;/, "typedef");
+ $0 = hie(@/[_[:upper:]][_[:upper:]][_[:upper:]][_[:upper:]]+/, @/<[^>]*>/, "const");
}
#
@@ -198,7 +200,7 @@ syntaxhighlighting == 102 {
}
syntaxhighlighting == 103 {
- gsub(/%[^[:blank:]]+/, "<span class=\"SH-kwd\">&</span>");
+ hi(@/%[^[:blank:]]+/, "storageclass");
}
#
@@ -211,7 +213,7 @@ syntaxhighlighting == 103 {
}
syntaxhighlighting == 104 {
- gsub(/%[^[:blank:]]+/, "<span class=\"SH-kwd\">&</span>");
+ hi(@/%[^[:blank:]]+/, "storageclass");
}
#
@@ -225,7 +227,7 @@ syntaxhighlighting == 104 {
syntaxhighlighting >= 100 {
$0 = hie(@/"[^"]*"/, "<[^>]*>", "string");
- hi(@/(&#47;&#47;.*$|&#47;\*.*$|^.*\*&#47;)/, "comment");
+ hi(@/(&#47;&#47;.*$|&#47;\*.*$|^[^\*]*\*&#47;)/, "comment");
$0 = hil(@/[^[:alnum:]#\$]/,
@/[[:digit:]]+/,
@/[^[:alnum:]]/,
@@ -242,18 +244,21 @@ syntaxhighlighting >= 100 {
@/[-_[:alnum:]]+[[:blank:]]*/,
@/\(/,
"function");
- hi(@/(&#61;&#61;|!&#61;|&#60;|&#62;|&#60;&#61;|&#62;&#61;|&#38;&#38;|\|\||!)/, "conditional");
- $0 = hil(@/(^|[^[:alnum:]])/,
+ hi(@/(&#61;&#61;|!&#61;|&#60;&#61;|&#62;&#61;|&#38;&#38;|\|\||!)/, "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(@/&#39;[\\]?[ -~]&#39;/, "char");