mirror of
https://github.com/Funkoala14/knowledgebase_law.git
synced 2025-06-09 02:08:16 +08:00
30 lines
1.1 KiB
JavaScript
30 lines
1.1 KiB
JavaScript
'use strict'
|
|
|
|
module.exports = openqasm
|
|
openqasm.displayName = 'openqasm'
|
|
openqasm.aliases = ['qasm']
|
|
function openqasm(Prism) {
|
|
// 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
|
|
}
|