Summary Files Commits Branches @commit @diff @stats
diff options
context:
space:
mode:
Commit440d2fac77f2293bd40bb4b3f330eb7e86b7b7bf (patch)
Author
 Syndamia <kamen@syndamia.com>
2023-04-18 17:08:18 +0300
Committer
 Syndamia <kamen@syndamia.com>
2023-04-18 17:08:18 +0300
Filesfe5a44a20e30d4164cbd020ee97fe62e1d5991c7
syndamia.com-440d2fac77f2293bd40bb4b3f330eb7e86b7b7bf.tar
syndamia.com-440d2fac77f2293bd40bb4b3f330eb7e86b7b7bf.tar.gz
syndamia.com-440d2fac77f2293bd40bb4b3f330eb7e86b7b7bf.zip
Parenta919c5bb04ac0ab55a78b66fa76a0eccbadb142e (diff)
[Syntax-highlighting] Created a (common) C syntax highlighting, added yacc and lex highlighting
1 files changed, 67 insertions, 31 deletions
-rw-r--r--awk-edits/Syntax-highlighting.awk98
diff --git a/awk-edits/Syntax-highlighting.awk b/awk-edits/Syntax-highlighting.awk
index 6948212..e3a9be2 100644
--- a/awk-edits/Syntax-highlighting.awk
+++ b/awk-edits/Syntax-highlighting.awk
@@ -80,33 +80,13 @@ syntaxhighlighting == 2 {
gsub(/[\(\)\|]/, "<span class=\"SH-kwd2\">&</span>");
}
-#
-# -- C# --
-#
-# Supports "csharp"
-
-/class="language-csharp"/ {
- syntaxhighlighting = 3;
-}
-
-syntaxhighlighting == 3 {
- gsub(/new ([[:alnum:]]|[-_])+[\(\.]/, "<span class=\"SH-cls\">&</span>");
- gsub(/([[:alnum:]]|[-_])+(&#60;[[:alnum:]]+&#62;)?\(/, "<span class=\"SH-fnc\">&</span>");
- gsub(/(int|void|double)/, "<span class=\"SH-typ\">&</span>");
- gsub(/(public|protected|private|override|new|&#60;[[:alnum:]]+&#62;)/, "<span class=\"SH-kwd\">&</span>");
- gsub(/([[:blank:]]|\()*([[:upper:]]|[-_])+([[:blank:]]|\)|,|;)+/, "<span class=\"SH-cst\">&</span>");
- gsub(/&#47;&#47;.*/, "<span class=\"SH-com\">&</span>");
- gsub(/(=&#62;)/, "<span class=\"SH-kwd2\">&</span>");
- gsub(/[\(,\.]/, "<span class=\"SH-none\">&</span>");
-}
-
#
# -- Bash
#
# Supports "bash"
/class="language-bash"/ {
- syntaxhighlighting = 4;
+ syntaxhighlighting = 3;
# The first code block line could look something like
# <pre><code class="language-bash">class="langage-bash"
# So, if we want to do something with the word class or strings,
@@ -116,7 +96,7 @@ syntaxhighlighting == 3 {
$0 = substr($0, tagend + 1);
}
-syntaxhighlighting == 4 {
+syntaxhighlighting == 3 {
gsub(/("[^"]*"|'[^']*')/, "<span class=\"SH-str\">&</span>");
gsub(/\$(\(|\(\(|{).+(\)|\)\)|})/, "<span class=\"SH-kwd3\">&</span>");
gsub(/\$[^[:blank:]]+/, "<span class=\"SH-kwd3\">&</span>");
@@ -130,23 +110,79 @@ syntaxhighlighting == 4 {
}
#
+# -- C --
+#
+# Supports "c" and is used in C-like programming languages
+
+/class="language-c"/ {
+ syntaxhighlighting = 100;
+}
+
+syntaxhighlighting >= 100 {
+ gsub(/([[:alnum:]]|[-_])+(&#60;[[:alnum:]]+&#62;)?\(/, "<span class=\"SH-fnc\">&</span>");
+ gsub(/(&#47;&#47;.*|&#47;*.*&#47;)/, "<span class=\"SH-com\">&</span>");
+ gsub(/[\(,\.]/, "<span class=\"SH-none\">&</span>");
+ gsub(/(public|protected|private|override|new|if|else|while|for|return|struct|typedef|extern|const)[[:blank:]]/, "<span class=\"SH-kwd\">&</span>");
+ gsub(/(&#38;&#38;|\|\||==|!=)/, "<span class=\"SH-kwd2\">&</span>");
+ gsub(/#(include|if|ifndef|endif|define)/, "<span class=\"SH-kwd3\">&</span>");
+ gsub(/(true|false)[[:blank:]]/, "<span class=\"SH-cst\">&</span>");
+ gsub(/(int|void|double|bool|char)[[:blank:]]/, "<span class=\"SH-typ\">&</span>");
+ $0 = gesub("(\"[^\"]*\"|'[^']*')", "<[^>]*>", "<span class=\"SH-str\">&</span>");
+}
+
+#
# -- C++ --
#
# Supports "cpp"
/class="language-cpp"/ {
- syntaxhighlighting = 5;
+ syntaxhighlighting = 101;
}
-syntaxhighlighting == 5 {
- gsub(/([[:alnum:]]|[-_])+(&#60;[[:alnum:]]+&#62;)?\(/, "<span class=\"SH-fnc\">&</span>");
- gsub(/(int|void|double|bool)/, "<span class=\"SH-typ\">&</span>");
- gsub(/(public|protected|private|override|new|if|else|while|for|return)/, "<span class=\"SH-kwd\">&</span>");
- gsub(/(&#38;&#38;|\|\||==|!=)/, "<span class=\"SH-kwd2\">&</span>");
+syntaxhighlighting == 101 {
gsub(/([[:blank:]]|\()*[[:upper:]]([[:upper:]]|[-_])*([[:blank:]]|\)|,|;)+/, "<span class=\"SH-cst\">&</span>");
- gsub(/(true|false)/, "<span class=\"SH-cst\">&</span>");
- gsub(/&#47;&#47;.*/, "<span class=\"SH-com\">&</span>");
- gsub(/[\(,\.]/, "<span class=\"SH-none\">&</span>");
+}
+
+#
+# -- C# --
+#
+# Supports "csharp"
+
+/class="language-csharp"/ {
+ syntaxhighlighting = 102;
+}
+
+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>");
+}
+
+#
+# -- lex --
+#
+# Supports "lex"
+
+/class="language-lex"/ {
+ syntaxhighlighting = 103;
+}
+
+syntaxhighlighting == 103 {
+ gsub(/%[^[:blank:]]+/, "<span class=\"SH-kwd\">&</span>");
+}
+
+#
+# -- yacc --
+#
+# Supports "yacc"
+
+/class="language-yacc"/ {
+ syntaxhighlighting = 104;
+}
+
+syntaxhighlighting == 104 {
+ gsub(/%[^[:blank:]]+/, "<span class=\"SH-kwd\">&</span>");
}
tagend != 0 {