diff options
| Commit | 440d2fac77f2293bd40bb4b3f330eb7e86b7b7bf (patch) | |
|---|---|---|
| Author | 2023-04-18 17:08:18 +0300 | |
| Committer | 2023-04-18 17:08:18 +0300 | |
| Files | fe5a44a20e30d4164cbd020ee97fe62e1d5991c7 | |
| syndamia.com-440d2fac77f2293bd40bb4b3f330eb7e86b7b7bf.tar syndamia.com-440d2fac77f2293bd40bb4b3f330eb7e86b7b7bf.tar.gz syndamia.com-440d2fac77f2293bd40bb4b3f330eb7e86b7b7bf.zip | ||
| Parent | a919c5bb04ac0ab55a78b66fa76a0eccbadb142e (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.awk | 98 |
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:]]|[-_])+(<[[:alnum:]]+>)?\(/, "<span class=\"SH-fnc\">&</span>"); - gsub(/(int|void|double)/, "<span class=\"SH-typ\">&</span>"); - gsub(/(public|protected|private|override|new|<[[:alnum:]]+>)/, "<span class=\"SH-kwd\">&</span>"); - gsub(/([[:blank:]]|\()*([[:upper:]]|[-_])+([[:blank:]]|\)|,|;)+/, "<span class=\"SH-cst\">&</span>"); - gsub(///.*/, "<span class=\"SH-com\">&</span>"); - gsub(/(=>)/, "<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:]]|[-_])+(<[[:alnum:]]+>)?\(/, "<span class=\"SH-fnc\">&</span>"); + gsub(/(//.*|/*.*/)/, "<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(/(&&|\|\||==|!=)/, "<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:]]|[-_])+(<[[:alnum:]]+>)?\(/, "<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(/(&&|\|\||==|!=)/, "<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(///.*/, "<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(/(<[[:alnum:]]+>)/, "<span class=\"SH-kwd\">&</span>"); + gsub(/([[:blank:]]|\()*([[:upper:]]|[-_])+([[:blank:]]|\)|,|;)+/, "<span class=\"SH-cst\">&</span>"); + gsub(/(=>)/, "<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 { |