summaryrefslogtreecommitdiffstats
path: root/public/prism/prism-openqasm.js
diff options
context:
space:
mode:
Diffstat (limited to 'public/prism/prism-openqasm.js')
-rw-r--r--public/prism/prism-openqasm.js26
1 files changed, 26 insertions, 0 deletions
diff --git a/public/prism/prism-openqasm.js b/public/prism/prism-openqasm.js
new file mode 100644
index 0000000..bb868d1
--- /dev/null
+++ b/public/prism/prism-openqasm.js
@@ -0,0 +1,26 @@
+// https://qiskit.github.io/openqasm/grammar/index.html
+
+Prism.languages.openqasm = {
+ comment: /\/\*[\s\S]*?\*\/|\/\/.*/,
+ string: {
+ pattern: /"[^"\r\n\t]*"|'[^'\r\n\t]*'/,
+ greedy: true,
+ },
+
+ keyword:
+ /\b(?:CX|OPENQASM|U|barrier|boxas|boxto|break|const|continue|ctrl|def|defcal|defcalgrammar|delay|else|end|for|gate|gphase|if|in|include|inv|kernel|lengthof|let|measure|pow|reset|return|rotary|stretchinf|while)\b|#pragma\b/,
+ 'class-name':
+ /\b(?:angle|bit|bool|creg|fixed|float|int|length|qreg|qubit|stretch|uint)\b/,
+ function: /\b(?:cos|exp|ln|popcount|rotl|rotr|sin|sqrt|tan)\b(?=\s*\()/,
+
+ constant: /\b(?:euler|pi|tau)\b|ฯ€|๐œ|โ„‡/,
+ number: {
+ pattern:
+ /(^|[^.\w$])(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?(?:dt|ns|us|ยตs|ms|s)?/i,
+ lookbehind: true,
+ },
+ operator: /->|>>=?|<<=?|&&|\|\||\+\+|--|[!=<>&|~^+\-*/%]=?|@/,
+ punctuation: /[(){}\[\];,:.]/,
+};
+
+Prism.languages.qasm = Prism.languages.openqasm;