aboutsummaryrefslogtreecommitdiffstats
path: root/public/prism/prism-antlr4.js
diff options
context:
space:
mode:
authorArmand Philippot <git@armandphilippot.com>2021-12-30 19:47:21 +0100
committerArmand Philippot <git@armandphilippot.com>2021-12-30 19:47:21 +0100
commita98b5ea6fe8e8cc98a55e0fd793e6e8660ea31c1 (patch)
tree542810ab5aef99150db228bb54fd58303dcb31c7 /public/prism/prism-antlr4.js
parentab355897a12b7bda1089a44de326d41455a0f7a3 (diff)
chore: add prismjs for syntax highlighting
Diffstat (limited to 'public/prism/prism-antlr4.js')
-rw-r--r--public/prism/prism-antlr4.js68
1 files changed, 68 insertions, 0 deletions
diff --git a/public/prism/prism-antlr4.js b/public/prism/prism-antlr4.js
new file mode 100644
index 0000000..f7fcc78
--- /dev/null
+++ b/public/prism/prism-antlr4.js
@@ -0,0 +1,68 @@
+Prism.languages.antlr4 = {
+ comment: /\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,
+ string: {
+ pattern: /'(?:\\.|[^\\'\r\n])*'/,
+ greedy: true,
+ },
+ 'character-class': {
+ pattern: /\[(?:\\.|[^\\\]\r\n])*\]/,
+ greedy: true,
+ alias: 'regex',
+ inside: {
+ range: {
+ pattern: /([^[]|(?:^|[^\\])(?:\\\\)*\\\[)-(?!\])/,
+ lookbehind: true,
+ alias: 'punctuation',
+ },
+ escape:
+ /\\(?:u(?:[a-fA-F\d]{4}|\{[a-fA-F\d]+\})|[pP]\{[=\w-]+\}|[^\r\nupP])/,
+ punctuation: /[\[\]]/,
+ },
+ },
+ action: {
+ pattern: /\{(?:[^{}]|\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\})*\}/,
+ greedy: true,
+ inside: {
+ content: {
+ // this might be C, C++, Python, Java, C#, or any other language ANTLR4 compiles to
+ pattern: /(\{)[\s\S]+(?=\})/,
+ lookbehind: true,
+ },
+ punctuation: /[{}]/,
+ },
+ },
+ command: {
+ pattern:
+ /(->\s*(?!\s))(?:\s*(?:,\s*)?\b[a-z]\w*(?:\s*\([^()\r\n]*\))?)+(?=\s*;)/i,
+ lookbehind: true,
+ inside: {
+ function: /\b\w+(?=\s*(?:[,(]|$))/,
+ punctuation: /[,()]/,
+ },
+ },
+ annotation: {
+ pattern: /@\w+(?:::\w+)*/,
+ alias: 'keyword',
+ },
+ label: {
+ pattern: /#[ \t]*\w+/,
+ alias: 'punctuation',
+ },
+ keyword:
+ /\b(?:catch|channels|finally|fragment|grammar|import|lexer|locals|mode|options|parser|returns|throws|tokens)\b/,
+ definition: [
+ {
+ pattern: /\b[a-z]\w*(?=\s*:)/,
+ alias: ['rule', 'class-name'],
+ },
+ {
+ pattern: /\b[A-Z]\w*(?=\s*:)/,
+ alias: ['token', 'constant'],
+ },
+ ],
+ constant: /\b[A-Z][A-Z_]*\b/,
+ operator: /\.\.|->|[|~]|[*+?]\??/,
+ punctuation: /[;:()=]/,
+};
+
+Prism.languages.g4 = Prism.languages.antlr4;