qasm-ts 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (365) hide show
  1. package/.github/workflows/draft-pdf.yml +24 -0
  2. package/CONTRIBUTING.md +3 -0
  3. package/LICENSE +201 -0
  4. package/dist/errors.js +9 -0
  5. package/dist/lexer.js +74 -0
  6. package/dist/main.js +82 -7
  7. package/dist/parser.js +71 -0
  8. package/dist/qasm2/ast.js +33 -0
  9. package/dist/qasm2/lexer.js +54 -1
  10. package/dist/qasm2/parser.js +51 -1
  11. package/dist/qasm2/token.js +30 -0
  12. package/dist/qasm3/lexer.js +59 -1
  13. package/dist/qasm3/parser.js +55 -2
  14. package/dist/qasm3/token.js +93 -10
  15. package/dist/version.js +17 -1
  16. package/docs/assets/hierarchy.js +1 -0
  17. package/docs/custom.css +3 -0
  18. package/docs/docs-readme.md +208 -0
  19. package/docs/index.html +17 -55
  20. package/docs/typedoc/assets/custom.css +3 -0
  21. package/docs/typedoc/assets/hierarchy.js +1 -0
  22. package/docs/{assets → typedoc/assets}/highlight.css +20 -20
  23. package/docs/{assets → typedoc/assets}/icons.js +1 -1
  24. package/docs/{assets → typedoc/assets}/icons.svg +1 -1
  25. package/docs/typedoc/assets/main.js +60 -0
  26. package/docs/typedoc/assets/navigation.js +1 -0
  27. package/docs/typedoc/assets/search.js +1 -0
  28. package/docs/typedoc/assets/style.css +1633 -0
  29. package/docs/typedoc/classes/Error_Handling.BadArgumentError.html +12 -0
  30. package/docs/typedoc/classes/Error_Handling.BadBarrierError.html +12 -0
  31. package/docs/typedoc/classes/Error_Handling.BadClassicalTypeError.html +12 -0
  32. package/docs/typedoc/classes/Error_Handling.BadConditionalError.html +12 -0
  33. package/docs/typedoc/classes/Error_Handling.BadCregError.html +12 -0
  34. package/docs/typedoc/classes/Error_Handling.BadEqualsError.html +12 -0
  35. package/docs/typedoc/classes/Error_Handling.BadExpressionError.html +12 -0
  36. package/docs/typedoc/classes/Error_Handling.BadGateError.html +12 -0
  37. package/docs/typedoc/classes/Error_Handling.BadIncludeError.html +12 -0
  38. package/docs/typedoc/classes/Error_Handling.BadLoopError.html +12 -0
  39. package/docs/typedoc/classes/Error_Handling.BadMeasurementError.html +12 -0
  40. package/docs/typedoc/classes/Error_Handling.BadParameterError.html +12 -0
  41. package/docs/typedoc/classes/Error_Handling.BadQregError.html +12 -0
  42. package/docs/typedoc/classes/Error_Handling.BadQuantumInstructionError.html +12 -0
  43. package/docs/typedoc/classes/Error_Handling.BadStringLiteralError.html +12 -0
  44. package/docs/typedoc/classes/Error_Handling.BadSubroutineError.html +12 -0
  45. package/docs/typedoc/classes/Error_Handling.MissingBraceError.html +12 -0
  46. package/docs/typedoc/classes/Error_Handling.MissingSemicolonError.html +12 -0
  47. package/docs/typedoc/classes/Error_Handling.UnsupportedOpenQASMVersionError.html +12 -0
  48. package/docs/typedoc/classes/Version_Management.OpenQASMVersion.html +16 -0
  49. package/docs/typedoc/classes/qasm2_ast.ApplyGate.html +6 -0
  50. package/docs/typedoc/classes/qasm2_ast.AstNode.html +3 -0
  51. package/docs/typedoc/classes/qasm2_ast.Barrier.html +5 -0
  52. package/docs/typedoc/classes/qasm2_ast.CReg.html +5 -0
  53. package/docs/typedoc/classes/qasm2_ast.Cos.html +3 -0
  54. package/docs/typedoc/classes/qasm2_ast.Divide.html +3 -0
  55. package/docs/typedoc/classes/qasm2_ast.Exp.html +3 -0
  56. package/docs/typedoc/classes/qasm2_ast.Gate.html +7 -0
  57. package/docs/typedoc/classes/qasm2_ast.Id.html +4 -0
  58. package/docs/typedoc/classes/qasm2_ast.If.html +6 -0
  59. package/docs/typedoc/classes/qasm2_ast.Include.html +4 -0
  60. package/docs/typedoc/classes/qasm2_ast.Ln.html +3 -0
  61. package/docs/typedoc/classes/qasm2_ast.Measure.html +7 -0
  62. package/docs/typedoc/classes/qasm2_ast.Minus.html +3 -0
  63. package/docs/typedoc/classes/qasm2_ast.NNInteger.html +4 -0
  64. package/docs/typedoc/classes/qasm2_ast.Opaque.html +6 -0
  65. package/docs/typedoc/classes/qasm2_ast.Pi.html +3 -0
  66. package/docs/typedoc/classes/qasm2_ast.Plus.html +3 -0
  67. package/docs/typedoc/classes/qasm2_ast.Power.html +3 -0
  68. package/docs/typedoc/classes/qasm2_ast.QReg.html +5 -0
  69. package/docs/typedoc/classes/qasm2_ast.Real.html +4 -0
  70. package/docs/typedoc/classes/qasm2_ast.Sin.html +3 -0
  71. package/docs/typedoc/classes/qasm2_ast.Sqrt.html +3 -0
  72. package/docs/typedoc/classes/qasm2_ast.Tan.html +3 -0
  73. package/docs/typedoc/classes/qasm2_ast.Times.html +3 -0
  74. package/docs/typedoc/classes/qasm2_ast.Variable.html +4 -0
  75. package/docs/typedoc/classes/qasm2_ast.Version.html +4 -0
  76. package/docs/typedoc/classes/qasm2_lexer.default.html +57 -0
  77. package/docs/typedoc/classes/qasm2_parser.default.html +93 -0
  78. package/docs/typedoc/classes/qasm3_ast.AliasStatement.html +5 -0
  79. package/docs/typedoc/classes/qasm3_ast.AngleType.html +4 -0
  80. package/docs/typedoc/classes/qasm3_ast.Arithmetic.html +6 -0
  81. package/docs/typedoc/classes/qasm3_ast.ArrayAccess.html +5 -0
  82. package/docs/typedoc/classes/qasm3_ast.ArrayDeclaration.html +7 -0
  83. package/docs/typedoc/classes/qasm3_ast.ArrayInitializer.html +4 -0
  84. package/docs/typedoc/classes/qasm3_ast.ArrayReference.html +5 -0
  85. package/docs/typedoc/classes/qasm3_ast.AssignmentStatement.html +5 -0
  86. package/docs/typedoc/classes/qasm3_ast.AstNode.html +3 -0
  87. package/docs/typedoc/classes/qasm3_ast.Binary.html +6 -0
  88. package/docs/typedoc/classes/qasm3_ast.BitType.html +4 -0
  89. package/docs/typedoc/classes/qasm3_ast.BitstringLiteral.html +4 -0
  90. package/docs/typedoc/classes/qasm3_ast.BoolType.html +3 -0
  91. package/docs/typedoc/classes/qasm3_ast.BooleanLiteral.html +4 -0
  92. package/docs/typedoc/classes/qasm3_ast.BoxDefinition.html +7 -0
  93. package/docs/typedoc/classes/qasm3_ast.BranchingStatement.html +8 -0
  94. package/docs/typedoc/classes/qasm3_ast.BreakStatement.html +3 -0
  95. package/docs/typedoc/classes/qasm3_ast.CalibrationGrammarDeclaration.html +6 -0
  96. package/docs/typedoc/classes/qasm3_ast.CaseStatement.html +5 -0
  97. package/docs/typedoc/classes/qasm3_ast.Cast.html +5 -0
  98. package/docs/typedoc/classes/qasm3_ast.ClassicalDeclaration.html +7 -0
  99. package/docs/typedoc/classes/qasm3_ast.ClassicalType.html +3 -0
  100. package/docs/typedoc/classes/qasm3_ast.ComplexType.html +6 -0
  101. package/docs/typedoc/classes/qasm3_ast.ContinueStatement.html +3 -0
  102. package/docs/typedoc/classes/qasm3_ast.DefaultStatement.html +4 -0
  103. package/docs/typedoc/classes/qasm3_ast.DurationLiteral.html +5 -0
  104. package/docs/typedoc/classes/qasm3_ast.DurationOf.html +4 -0
  105. package/docs/typedoc/classes/qasm3_ast.DurationType.html +3 -0
  106. package/docs/typedoc/classes/qasm3_ast.Euler.html +3 -0
  107. package/docs/typedoc/classes/qasm3_ast.Expression.html +3 -0
  108. package/docs/typedoc/classes/qasm3_ast.ExternSignature.html +8 -0
  109. package/docs/typedoc/classes/qasm3_ast.FloatLiteral.html +4 -0
  110. package/docs/typedoc/classes/qasm3_ast.FloatType.html +6 -0
  111. package/docs/typedoc/classes/qasm3_ast.ForLoopStatement.html +12 -0
  112. package/docs/typedoc/classes/qasm3_ast.HardwareQubit.html +5 -0
  113. package/docs/typedoc/classes/qasm3_ast.IODeclaration.html +5 -0
  114. package/docs/typedoc/classes/qasm3_ast.Identifier.html +4 -0
  115. package/docs/typedoc/classes/qasm3_ast.ImaginaryLiteral.html +4 -0
  116. package/docs/typedoc/classes/qasm3_ast.Include.html +6 -0
  117. package/docs/typedoc/classes/qasm3_ast.IndexSet.html +5 -0
  118. package/docs/typedoc/classes/qasm3_ast.IntType.html +4 -0
  119. package/docs/typedoc/classes/qasm3_ast.IntegerLiteral.html +4 -0
  120. package/docs/typedoc/classes/qasm3_ast.MathFunction.html +5 -0
  121. package/docs/typedoc/classes/qasm3_ast.NumericLiteral.html +4 -0
  122. package/docs/typedoc/classes/qasm3_ast.Parameters.html +4 -0
  123. package/docs/typedoc/classes/qasm3_ast.Pi.html +3 -0
  124. package/docs/typedoc/classes/qasm3_ast.ProgramBlock.html +7 -0
  125. package/docs/typedoc/classes/qasm3_ast.QuantumBarrier.html +6 -0
  126. package/docs/typedoc/classes/qasm3_ast.QuantumBlock.html +6 -0
  127. package/docs/typedoc/classes/qasm3_ast.QuantumDeclaration.html +8 -0
  128. package/docs/typedoc/classes/qasm3_ast.QuantumDelay.html +5 -0
  129. package/docs/typedoc/classes/qasm3_ast.QuantumGateCall.html +9 -0
  130. package/docs/typedoc/classes/qasm3_ast.QuantumGateDefinition.html +9 -0
  131. package/docs/typedoc/classes/qasm3_ast.QuantumGateModifier.html +5 -0
  132. package/docs/typedoc/classes/qasm3_ast.QuantumMeasurement.html +6 -0
  133. package/docs/typedoc/classes/qasm3_ast.QuantumMeasurementAssignment.html +8 -0
  134. package/docs/typedoc/classes/qasm3_ast.QuantumReset.html +4 -0
  135. package/docs/typedoc/classes/qasm3_ast.Range.html +6 -0
  136. package/docs/typedoc/classes/qasm3_ast.ReturnStatement.html +4 -0
  137. package/docs/typedoc/classes/qasm3_ast.SizeOf.html +5 -0
  138. package/docs/typedoc/classes/qasm3_ast.Statement.html +12 -0
  139. package/docs/typedoc/classes/qasm3_ast.StretchType.html +3 -0
  140. package/docs/typedoc/classes/qasm3_ast.SubroutineBlock.html +6 -0
  141. package/docs/typedoc/classes/qasm3_ast.SubroutineCall.html +5 -0
  142. package/docs/typedoc/classes/qasm3_ast.SubroutineDefinition.html +10 -0
  143. package/docs/typedoc/classes/qasm3_ast.SubscriptedIdentifier.html +5 -0
  144. package/docs/typedoc/classes/qasm3_ast.SwitchStatement.html +6 -0
  145. package/docs/typedoc/classes/qasm3_ast.Tau.html +3 -0
  146. package/docs/typedoc/classes/qasm3_ast.TrigFunction.html +5 -0
  147. package/docs/typedoc/classes/qasm3_ast.UIntType.html +4 -0
  148. package/docs/typedoc/classes/qasm3_ast.Unary.html +5 -0
  149. package/docs/typedoc/classes/qasm3_ast.Version.html +6 -0
  150. package/docs/typedoc/classes/qasm3_ast.WhileLoopStatement.html +6 -0
  151. package/docs/typedoc/classes/qasm3_lexer.default.html +71 -0
  152. package/docs/typedoc/classes/qasm3_parser.default.html +237 -0
  153. package/docs/typedoc/enums/Version_Management.OpenQASMMajorVersion.html +4 -0
  154. package/docs/typedoc/enums/qasm2_token.Token.html +42 -0
  155. package/docs/typedoc/enums/qasm3_ast.ArithmeticOp.html +9 -0
  156. package/docs/typedoc/enums/qasm3_ast.ArrayReferenceModifier.html +4 -0
  157. package/docs/typedoc/enums/qasm3_ast.BinaryOp.html +15 -0
  158. package/docs/typedoc/enums/qasm3_ast.DurationUnit.html +7 -0
  159. package/docs/typedoc/enums/qasm3_ast.IOModifier.html +4 -0
  160. package/docs/typedoc/enums/qasm3_ast.MathFunctionTypes.html +12 -0
  161. package/docs/typedoc/enums/qasm3_ast.QuantumGateModifierName.html +6 -0
  162. package/docs/typedoc/enums/qasm3_ast.TrigFunctionTypes.html +8 -0
  163. package/docs/typedoc/enums/qasm3_ast.UnaryOp.html +5 -0
  164. package/docs/typedoc/enums/qasm3_token.Token.html +113 -0
  165. package/docs/typedoc/functions/Lexing.lex.html +24 -0
  166. package/docs/typedoc/functions/Main_Functions.parseFile.html +13 -0
  167. package/docs/typedoc/functions/Main_Functions.parseString.html +19 -0
  168. package/docs/typedoc/functions/Parsing.parse.html +15 -0
  169. package/docs/typedoc/functions/qasm2_token.inverseLookup.html +3 -0
  170. package/docs/typedoc/functions/qasm2_token.lookup.html +4 -0
  171. package/docs/typedoc/functions/qasm2_token.notParam.html +3 -0
  172. package/docs/typedoc/functions/qasm3_token.inverseLookup.html +9 -0
  173. package/docs/typedoc/functions/qasm3_token.lookup.html +10 -0
  174. package/docs/typedoc/functions/qasm3_token.notParam.html +11 -0
  175. package/docs/typedoc/hierarchy.html +1 -0
  176. package/docs/typedoc/index.html +76 -0
  177. package/docs/typedoc/modules/Error_Handling.html +5 -0
  178. package/docs/typedoc/modules/Lexing.html +20 -0
  179. package/docs/typedoc/modules/Main_Functions.html +2 -0
  180. package/docs/typedoc/modules/Parsing.html +24 -0
  181. package/docs/typedoc/modules/Version_Management.html +8 -0
  182. package/docs/typedoc/modules/qasm2_ast.html +22 -0
  183. package/docs/typedoc/modules/qasm2_lexer.html +24 -0
  184. package/docs/typedoc/modules/qasm2_parser.html +21 -0
  185. package/docs/typedoc/modules/qasm2_token.html +15 -0
  186. package/docs/typedoc/modules/qasm3_ast.html +26 -0
  187. package/docs/typedoc/modules/qasm3_lexer.html +25 -0
  188. package/docs/typedoc/modules/qasm3_parser.html +25 -0
  189. package/docs/typedoc/modules/qasm3_token.html +15 -0
  190. package/docs/typedoc/modules.html +1 -0
  191. package/docs/typedoc/types/Error_Handling.ReturnErrorConstructor.html +2 -0
  192. package/docs/typedoc.json +47 -0
  193. package/package.json +6 -2
  194. package/paper/jats/paper.jats +464 -0
  195. package/paper/main.bib +191 -0
  196. package/paper/paper.md +166 -0
  197. package/paper/paper.pdf +0 -0
  198. package/readme.md +63 -9
  199. package/docs/assets/main.js +0 -60
  200. package/docs/assets/navigation.js +0 -1
  201. package/docs/assets/search.js +0 -1
  202. package/docs/assets/style.css +0 -1493
  203. package/docs/classes/errors.BadArgumentError.html +0 -12
  204. package/docs/classes/errors.BadBarrierError.html +0 -12
  205. package/docs/classes/errors.BadClassicalTypeError.html +0 -12
  206. package/docs/classes/errors.BadConditionalError.html +0 -12
  207. package/docs/classes/errors.BadCregError.html +0 -12
  208. package/docs/classes/errors.BadEqualsError.html +0 -12
  209. package/docs/classes/errors.BadExpressionError.html +0 -12
  210. package/docs/classes/errors.BadGateError.html +0 -12
  211. package/docs/classes/errors.BadIncludeError.html +0 -12
  212. package/docs/classes/errors.BadLoopError.html +0 -12
  213. package/docs/classes/errors.BadMeasurementError.html +0 -12
  214. package/docs/classes/errors.BadParameterError.html +0 -12
  215. package/docs/classes/errors.BadQregError.html +0 -12
  216. package/docs/classes/errors.BadQuantumInstructionError.html +0 -12
  217. package/docs/classes/errors.BadStringLiteralError.html +0 -12
  218. package/docs/classes/errors.BadSubroutineError.html +0 -12
  219. package/docs/classes/errors.MissingBraceError.html +0 -12
  220. package/docs/classes/errors.MissingSemicolonError.html +0 -12
  221. package/docs/classes/errors.UnsupportedOpenQASMVersionError.html +0 -12
  222. package/docs/classes/qasm2_ast.ApplyGate.html +0 -6
  223. package/docs/classes/qasm2_ast.AstNode.html +0 -3
  224. package/docs/classes/qasm2_ast.Barrier.html +0 -5
  225. package/docs/classes/qasm2_ast.CReg.html +0 -5
  226. package/docs/classes/qasm2_ast.Cos.html +0 -3
  227. package/docs/classes/qasm2_ast.Divide.html +0 -3
  228. package/docs/classes/qasm2_ast.Exp.html +0 -3
  229. package/docs/classes/qasm2_ast.Gate.html +0 -7
  230. package/docs/classes/qasm2_ast.Id.html +0 -4
  231. package/docs/classes/qasm2_ast.If.html +0 -6
  232. package/docs/classes/qasm2_ast.Include.html +0 -4
  233. package/docs/classes/qasm2_ast.Ln.html +0 -3
  234. package/docs/classes/qasm2_ast.Measure.html +0 -7
  235. package/docs/classes/qasm2_ast.Minus.html +0 -3
  236. package/docs/classes/qasm2_ast.NNInteger.html +0 -4
  237. package/docs/classes/qasm2_ast.Opaque.html +0 -6
  238. package/docs/classes/qasm2_ast.Pi.html +0 -3
  239. package/docs/classes/qasm2_ast.Plus.html +0 -3
  240. package/docs/classes/qasm2_ast.Power.html +0 -3
  241. package/docs/classes/qasm2_ast.QReg.html +0 -5
  242. package/docs/classes/qasm2_ast.Real.html +0 -4
  243. package/docs/classes/qasm2_ast.Sin.html +0 -3
  244. package/docs/classes/qasm2_ast.Sqrt.html +0 -3
  245. package/docs/classes/qasm2_ast.Tan.html +0 -3
  246. package/docs/classes/qasm2_ast.Times.html +0 -3
  247. package/docs/classes/qasm2_ast.Variable.html +0 -4
  248. package/docs/classes/qasm2_ast.Version.html +0 -4
  249. package/docs/classes/qasm2_lexer.default.html +0 -50
  250. package/docs/classes/qasm2_parser.default.html +0 -87
  251. package/docs/classes/qasm3_ast.AliasStatement.html +0 -5
  252. package/docs/classes/qasm3_ast.AngleType.html +0 -4
  253. package/docs/classes/qasm3_ast.Arithmetic.html +0 -6
  254. package/docs/classes/qasm3_ast.ArrayAccess.html +0 -5
  255. package/docs/classes/qasm3_ast.ArrayDeclaration.html +0 -7
  256. package/docs/classes/qasm3_ast.ArrayInitializer.html +0 -4
  257. package/docs/classes/qasm3_ast.ArrayReference.html +0 -5
  258. package/docs/classes/qasm3_ast.AssignmentStatement.html +0 -5
  259. package/docs/classes/qasm3_ast.AstNode.html +0 -3
  260. package/docs/classes/qasm3_ast.Binary.html +0 -6
  261. package/docs/classes/qasm3_ast.BitType.html +0 -4
  262. package/docs/classes/qasm3_ast.BitstringLiteral.html +0 -4
  263. package/docs/classes/qasm3_ast.BoolType.html +0 -3
  264. package/docs/classes/qasm3_ast.BooleanLiteral.html +0 -4
  265. package/docs/classes/qasm3_ast.BoxDefinition.html +0 -7
  266. package/docs/classes/qasm3_ast.BranchingStatement.html +0 -8
  267. package/docs/classes/qasm3_ast.BreakStatement.html +0 -3
  268. package/docs/classes/qasm3_ast.CalibrationGrammarDeclaration.html +0 -6
  269. package/docs/classes/qasm3_ast.CaseStatement.html +0 -5
  270. package/docs/classes/qasm3_ast.Cast.html +0 -5
  271. package/docs/classes/qasm3_ast.ClassicalDeclaration.html +0 -7
  272. package/docs/classes/qasm3_ast.ClassicalType.html +0 -3
  273. package/docs/classes/qasm3_ast.ComplexType.html +0 -6
  274. package/docs/classes/qasm3_ast.ContinueStatement.html +0 -3
  275. package/docs/classes/qasm3_ast.DefaultStatement.html +0 -4
  276. package/docs/classes/qasm3_ast.DurationLiteral.html +0 -5
  277. package/docs/classes/qasm3_ast.DurationOf.html +0 -4
  278. package/docs/classes/qasm3_ast.DurationType.html +0 -3
  279. package/docs/classes/qasm3_ast.Euler.html +0 -3
  280. package/docs/classes/qasm3_ast.Expression.html +0 -3
  281. package/docs/classes/qasm3_ast.ExternSignature.html +0 -8
  282. package/docs/classes/qasm3_ast.FloatLiteral.html +0 -4
  283. package/docs/classes/qasm3_ast.FloatType.html +0 -6
  284. package/docs/classes/qasm3_ast.ForLoopStatement.html +0 -12
  285. package/docs/classes/qasm3_ast.HardwareQubit.html +0 -5
  286. package/docs/classes/qasm3_ast.IODeclaration.html +0 -5
  287. package/docs/classes/qasm3_ast.Identifier.html +0 -4
  288. package/docs/classes/qasm3_ast.ImaginaryLiteral.html +0 -4
  289. package/docs/classes/qasm3_ast.Include.html +0 -6
  290. package/docs/classes/qasm3_ast.IndexSet.html +0 -5
  291. package/docs/classes/qasm3_ast.IntType.html +0 -4
  292. package/docs/classes/qasm3_ast.IntegerLiteral.html +0 -4
  293. package/docs/classes/qasm3_ast.MathFunction.html +0 -5
  294. package/docs/classes/qasm3_ast.NumericLiteral.html +0 -4
  295. package/docs/classes/qasm3_ast.Parameters.html +0 -4
  296. package/docs/classes/qasm3_ast.Pi.html +0 -3
  297. package/docs/classes/qasm3_ast.ProgramBlock.html +0 -7
  298. package/docs/classes/qasm3_ast.QuantumBarrier.html +0 -6
  299. package/docs/classes/qasm3_ast.QuantumBlock.html +0 -6
  300. package/docs/classes/qasm3_ast.QuantumDeclaration.html +0 -8
  301. package/docs/classes/qasm3_ast.QuantumDelay.html +0 -5
  302. package/docs/classes/qasm3_ast.QuantumGateCall.html +0 -9
  303. package/docs/classes/qasm3_ast.QuantumGateDefinition.html +0 -9
  304. package/docs/classes/qasm3_ast.QuantumGateModifier.html +0 -5
  305. package/docs/classes/qasm3_ast.QuantumMeasurement.html +0 -6
  306. package/docs/classes/qasm3_ast.QuantumMeasurementAssignment.html +0 -8
  307. package/docs/classes/qasm3_ast.QuantumReset.html +0 -4
  308. package/docs/classes/qasm3_ast.Range.html +0 -6
  309. package/docs/classes/qasm3_ast.ReturnStatement.html +0 -4
  310. package/docs/classes/qasm3_ast.SizeOf.html +0 -5
  311. package/docs/classes/qasm3_ast.Statement.html +0 -12
  312. package/docs/classes/qasm3_ast.StretchType.html +0 -3
  313. package/docs/classes/qasm3_ast.SubroutineBlock.html +0 -6
  314. package/docs/classes/qasm3_ast.SubroutineCall.html +0 -5
  315. package/docs/classes/qasm3_ast.SubroutineDefinition.html +0 -10
  316. package/docs/classes/qasm3_ast.SubscriptedIdentifier.html +0 -5
  317. package/docs/classes/qasm3_ast.SwitchStatement.html +0 -6
  318. package/docs/classes/qasm3_ast.Tau.html +0 -3
  319. package/docs/classes/qasm3_ast.TrigFunction.html +0 -5
  320. package/docs/classes/qasm3_ast.UIntType.html +0 -4
  321. package/docs/classes/qasm3_ast.Unary.html +0 -5
  322. package/docs/classes/qasm3_ast.Version.html +0 -6
  323. package/docs/classes/qasm3_ast.WhileLoopStatement.html +0 -6
  324. package/docs/classes/qasm3_lexer.default.html +0 -60
  325. package/docs/classes/qasm3_parser.default.html +0 -227
  326. package/docs/classes/version.OpenQASMVersion.html +0 -16
  327. package/docs/enums/qasm2_token.Token.html +0 -39
  328. package/docs/enums/qasm3_ast.ArithmeticOp.html +0 -9
  329. package/docs/enums/qasm3_ast.ArrayReferenceModifier.html +0 -4
  330. package/docs/enums/qasm3_ast.BinaryOp.html +0 -15
  331. package/docs/enums/qasm3_ast.DurationUnit.html +0 -7
  332. package/docs/enums/qasm3_ast.IOModifier.html +0 -4
  333. package/docs/enums/qasm3_ast.MathFunctionTypes.html +0 -12
  334. package/docs/enums/qasm3_ast.QuantumGateModifierName.html +0 -6
  335. package/docs/enums/qasm3_ast.TrigFunctionTypes.html +0 -8
  336. package/docs/enums/qasm3_ast.UnaryOp.html +0 -5
  337. package/docs/enums/qasm3_token.Token.html +0 -101
  338. package/docs/enums/version.OpenQASMMajorVersion.html +0 -4
  339. package/docs/functions/lexer.lex.html +0 -1
  340. package/docs/functions/main.parseFile.html +0 -4
  341. package/docs/functions/main.parseString.html +0 -4
  342. package/docs/functions/parser.parse.html +0 -1
  343. package/docs/functions/qasm2_token.inverseLookup.html +0 -3
  344. package/docs/functions/qasm2_token.lookup.html +0 -4
  345. package/docs/functions/qasm2_token.notParam.html +0 -3
  346. package/docs/functions/qasm3_token.inverseLookup.html +0 -3
  347. package/docs/functions/qasm3_token.lookup.html +0 -4
  348. package/docs/functions/qasm3_token.notParam.html +0 -3
  349. package/docs/hierarchy.html +0 -1
  350. package/docs/modules/errors.html +0 -21
  351. package/docs/modules/lexer.html +0 -2
  352. package/docs/modules/main.html +0 -3
  353. package/docs/modules/parser.html +0 -2
  354. package/docs/modules/qasm2_ast.html +0 -28
  355. package/docs/modules/qasm2_lexer.html +0 -2
  356. package/docs/modules/qasm2_parser.html +0 -2
  357. package/docs/modules/qasm2_token.html +0 -5
  358. package/docs/modules/qasm3_ast.html +0 -83
  359. package/docs/modules/qasm3_lexer.html +0 -2
  360. package/docs/modules/qasm3_parser.html +0 -2
  361. package/docs/modules/qasm3_token.html +0 -5
  362. package/docs/modules/version.html +0 -3
  363. package/docs/modules.html +0 -14
  364. package/docs/types/errors.ReturnErrorConstructor.html +0 -2
  365. /package/docs/{.nojekyll → typedoc/.nojekyll} +0 -0
@@ -0,0 +1,76 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="./"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>qasm-ts - v2.0.0</title><meta name="description" content="Documentation for qasm-ts"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><link rel="stylesheet" href="assets/custom.css"/><script defer src="assets/main.js"></script><script async src="assets/icons.js" id="tsd-icons-script"></script><script async src="assets/search.js" id="tsd-search-script"></script><script async src="assets/navigation.js" id="tsd-nav-script"></script><script async src="assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="index.html" class="title">qasm-ts - v2.0.0</a><div id="tsd-toolbar-links"><a href="https://github.com/comp-phys-marc/qasm-ts">GitHub</a><a href="https://www.npmjs.com/package/qasm-ts">NPM</a></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><h1>qasm-ts - v2.0.0</h1></div><div class="tsd-panel tsd-typography"><h1 id="qasm-typescript-documentation" class="tsd-anchor-link">QASM TypeScript Documentation<a href="#qasm-typescript-documentation" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h1><p>OpenQASM, the low-level programming language for quantum circuit specification, implemented in TypeScript.</p>
2
+ <p>QASM-TS 2.0 is an implementation of a compiler frontend for OpenQASM 2.0 and 3.0. It includes a lexer and a parser of the OpenQASM language. The source is parsed into an Intermediate Representation (IR): an Abstract Syntax Tree (AST) that captures program structure including control flow and data flow.</p>
3
+ <p>The package is aimed at enabling implementations of verification and validation software (such as semantic and static analyzers), compilers and more. These tools may be instrumental in the formalization of hybrid quantum-classical computing.</p>
4
+ <p>Language documentation is provided by IBM <a href="https://openqasm.com">here</a>.</p>
5
+ <h2 id="quick-start" class="tsd-anchor-link">Quick Start<a href="#quick-start" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><h3 id="installation" class="tsd-anchor-link">Installation<a href="#installation" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><pre><code class="bash"><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">install</span><span class="hl-1"> </span><span class="hl-2">qasm-ts</span>
6
+ </code><button type="button">Copy</button></pre>
7
+
8
+ <h3 id="basic-usage" class="tsd-anchor-link">Basic Usage<a href="#basic-usage" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Parse from an OpenQASM string snippet:</p>
9
+ <pre><code class="typescript"><span class="hl-3">import</span><span class="hl-1"> { </span><span class="hl-4">parseString</span><span class="hl-1"> } </span><span class="hl-3">from</span><span class="hl-1"> </span><span class="hl-2">&quot;qasm-ts&quot;</span><span class="hl-1">;</span><br/><br/><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-6">qasmCode</span><span class="hl-1"> = </span><span class="hl-2">`</span><br/><span class="hl-2">OPENQASM 3.0;</span><br/><span class="hl-2">include &quot;stdgates.inc&quot;;</span><br/><span class="hl-2">qubit[2] q;</span><br/><span class="hl-2">h q[0];</span><br/><span class="hl-2">cx q[0], q[1];</span><br/><span class="hl-2">`</span><span class="hl-1">;</span><br/><br/><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-6">ast</span><span class="hl-1"> = </span><span class="hl-0">parseString</span><span class="hl-1">(</span><span class="hl-4">qasmCode</span><span class="hl-1">);</span>
10
+ </code><button type="button">Copy</button></pre>
11
+
12
+ <p>Parse from an OpenQASM file:</p>
13
+ <pre><code class="typescript"><span class="hl-3">import</span><span class="hl-1"> { </span><span class="hl-4">parseFile</span><span class="hl-1"> } </span><span class="hl-3">from</span><span class="hl-1"> </span><span class="hl-2">&quot;qasm-ts&quot;</span><span class="hl-1">;</span><br/><br/><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-6">ast</span><span class="hl-1"> = </span><span class="hl-0">parseFile</span><span class="hl-1">(</span><span class="hl-2">&quot;./my-circuit.qasm&quot;</span><span class="hl-1">);</span><br/><br/><span class="hl-7">// Specify OpenQASM version explicitly</span><br/><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-6">ast2</span><span class="hl-1"> = </span><span class="hl-0">parseFile</span><span class="hl-1">(</span><span class="hl-2">&quot;./legacy-circuit.qasm&quot;</span><span class="hl-1">, </span><span class="hl-8">2</span><span class="hl-1">); </span><span class="hl-7">// OpenQASM 2.0</span><br/><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-6">ast3</span><span class="hl-1"> = </span><span class="hl-0">parseFile</span><span class="hl-1">(</span><span class="hl-2">&quot;./modern-circuit.qasm&quot;</span><span class="hl-1">, </span><span class="hl-8">3</span><span class="hl-1">); </span><span class="hl-7">// OpenQASM 3.0</span>
14
+ </code><button type="button">Copy</button></pre>
15
+
16
+ <h3 id="working-with-the-ast" class="tsd-anchor-link">Working with the AST<a href="#working-with-the-ast" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><pre><code class="typescript"><span class="hl-7">// Get verbose output with class names</span><br/><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-6">verboseAst</span><span class="hl-1"> = </span><span class="hl-0">parseString</span><span class="hl-1">(</span><span class="hl-4">qasmCode</span><span class="hl-1">, </span><span class="hl-8">3</span><span class="hl-1">, </span><span class="hl-5">true</span><span class="hl-1">);</span><br/><br/><span class="hl-7">// Get stringified JSON output</span><br/><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-6">jsonAst</span><span class="hl-1"> = </span><span class="hl-0">parseString</span><span class="hl-1">(</span><span class="hl-4">qasmCode</span><span class="hl-1">, </span><span class="hl-8">3</span><span class="hl-1">, </span><span class="hl-5">false</span><span class="hl-1">, </span><span class="hl-5">true</span><span class="hl-1">);</span><br/><br/><span class="hl-7">// Both verbose and stringified</span><br/><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-6">verboseJsonAst</span><span class="hl-1"> = </span><span class="hl-0">parseString</span><span class="hl-1">(</span><span class="hl-4">qasmCode</span><span class="hl-1">, </span><span class="hl-8">3</span><span class="hl-1">, </span><span class="hl-5">true</span><span class="hl-1">, </span><span class="hl-5">true</span><span class="hl-1">);</span>
17
+ </code><button type="button">Copy</button></pre>
18
+
19
+ <h2 id="example-io" class="tsd-anchor-link">Example I/O<a href="#example-io" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><h3 id="input-alignmentqasm-source" class="tsd-anchor-link">Input: <code>alignment.qasm</code> (<a href="https://github.com/openqasm/openqasm/blob/main/examples/alignment.qasm">source</a>)<a href="#input-alignmentqasm-source" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><pre><code><span class="hl-4">include</span><span class="hl-1"> </span><span class="hl-2">&quot;stdgates.inc&quot;</span><span class="hl-1">;</span><br/><br/><span class="hl-4">stretch</span><span class="hl-1"> </span><span class="hl-4">g</span><span class="hl-1">;</span><br/><br/><span class="hl-4">qubit</span><span class="hl-1">[</span><span class="hl-8">3</span><span class="hl-1">] </span><span class="hl-4">q</span><span class="hl-1">;</span><br/><span class="hl-4">barrier</span><span class="hl-1"> </span><span class="hl-4">q</span><span class="hl-1">;</span><br/><span class="hl-4">cx</span><span class="hl-1"> </span><span class="hl-4">q</span><span class="hl-1">[</span><span class="hl-8">0</span><span class="hl-1">], </span><span class="hl-4">q</span><span class="hl-1">[</span><span class="hl-8">1</span><span class="hl-1">];</span><br/><span class="hl-4">delay</span><span class="hl-1">[</span><span class="hl-4">g</span><span class="hl-1">] </span><span class="hl-4">q</span><span class="hl-1">[</span><span class="hl-8">2</span><span class="hl-1">];</span><br/><span class="hl-0">U</span><span class="hl-1">(</span><span class="hl-4">pi</span><span class="hl-1">/</span><span class="hl-8">4</span><span class="hl-1">, </span><span class="hl-8">0</span><span class="hl-1">, </span><span class="hl-4">pi</span><span class="hl-1">/</span><span class="hl-8">2</span><span class="hl-1">) </span><span class="hl-4">q</span><span class="hl-1">[</span><span class="hl-8">2</span><span class="hl-1">];</span><br/><span class="hl-4">delay</span><span class="hl-1">[</span><span class="hl-8">2</span><span class="hl-1">*</span><span class="hl-4">g</span><span class="hl-1">] </span><span class="hl-4">q</span><span class="hl-1">[</span><span class="hl-8">2</span><span class="hl-1">];</span><br/><span class="hl-4">barrier</span><span class="hl-1"> </span><span class="hl-4">q</span><span class="hl-1">;</span><br/>
20
+ </code><button>Copy</button></pre>
21
+
22
+ <h3 id="output-abstract-syntax-tree" class="tsd-anchor-link">Output: Abstract Syntax Tree<a href="#output-abstract-syntax-tree" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><pre><code><span class="hl-1">[</span><br/><span class="hl-1"> </span><span class="hl-4">Include</span><span class="hl-1"> { </span><span class="hl-4">filename:</span><span class="hl-1"> </span><span class="hl-2">&#39;&quot;stdgates.inc&quot;&#39;</span><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-4">ClassicalDeclaration</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-4">classicalType:</span><span class="hl-1"> </span><span class="hl-4">StretchType</span><span class="hl-1"> {},</span><br/><span class="hl-1"> </span><span class="hl-4">identifier:</span><span class="hl-1"> </span><span class="hl-4">Identifier</span><span class="hl-1"> { </span><span class="hl-4">name:</span><span class="hl-1"> </span><span class="hl-2">&#39;g&#39;</span><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-4">initializer:</span><span class="hl-1"> </span><span class="hl-5">null</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">isConst:</span><span class="hl-1"> </span><span class="hl-5">false</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-4">QuantumDeclaration</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-4">identifier:</span><span class="hl-1"> </span><span class="hl-4">Identifier</span><span class="hl-1"> { </span><span class="hl-4">name:</span><span class="hl-1"> </span><span class="hl-2">&#39;q&#39;</span><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-4">size:</span><span class="hl-1"> </span><span class="hl-4">IntegerLiteral</span><span class="hl-1"> { </span><span class="hl-4">value:</span><span class="hl-1"> </span><span class="hl-8">3</span><span class="hl-1"> }</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-4">QuantumBarrier</span><span class="hl-1"> { </span><span class="hl-4">qubits:</span><span class="hl-1"> [ [</span><span class="hl-4">Identifier</span><span class="hl-1">] ] },</span><br/><span class="hl-1"> </span><span class="hl-4">QuantumGateCall</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-4">quantumGateName:</span><span class="hl-1"> </span><span class="hl-4">Identifier</span><span class="hl-1"> { </span><span class="hl-4">name:</span><span class="hl-1"> </span><span class="hl-2">&#39;cx&#39;</span><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-4">qubits:</span><span class="hl-1"> [ [</span><span class="hl-4">SubscriptedIdentifier</span><span class="hl-1">], [</span><span class="hl-4">SubscriptedIdentifier</span><span class="hl-1">] ],</span><br/><span class="hl-1"> </span><span class="hl-4">parameters:</span><span class="hl-1"> </span><span class="hl-5">null</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">modifiers:</span><span class="hl-1"> []</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-4">QuantumDelay</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-4">duration:</span><span class="hl-1"> </span><span class="hl-4">Identifier</span><span class="hl-1"> { </span><span class="hl-4">name:</span><span class="hl-1"> </span><span class="hl-2">&#39;g&#39;</span><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-4">qubits:</span><span class="hl-1"> [ [</span><span class="hl-4">SubscriptedIdentifier</span><span class="hl-1">] ]</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-4">QuantumGateCall</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-4">quantumGateName:</span><span class="hl-1"> </span><span class="hl-4">Identifier</span><span class="hl-1"> { </span><span class="hl-4">name:</span><span class="hl-1"> </span><span class="hl-2">&#39;U&#39;</span><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-4">qubits:</span><span class="hl-1"> [ [</span><span class="hl-4">SubscriptedIdentifier</span><span class="hl-1">] ],</span><br/><span class="hl-1"> </span><span class="hl-4">parameters:</span><span class="hl-1"> </span><span class="hl-4">Parameters</span><span class="hl-1"> { </span><span class="hl-4">args:</span><span class="hl-1"> [</span><span class="hl-4">Array</span><span class="hl-1">] },</span><br/><span class="hl-1"> </span><span class="hl-4">modifiers:</span><span class="hl-1"> []</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-4">QuantumDelay</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-4">duration:</span><span class="hl-1"> </span><span class="hl-4">Arithmetic</span><span class="hl-1"> { </span><span class="hl-4">op:</span><span class="hl-1"> </span><span class="hl-2">&#39;*&#39;</span><span class="hl-1">, </span><span class="hl-4">left:</span><span class="hl-1"> [</span><span class="hl-4">IntegerLiteral</span><span class="hl-1">], </span><span class="hl-4">right:</span><span class="hl-1"> [</span><span class="hl-4">Identifier</span><span class="hl-1">] },</span><br/><span class="hl-1"> </span><span class="hl-4">qubits:</span><span class="hl-1"> [ [</span><span class="hl-4">SubscriptedIdentifier</span><span class="hl-1">] ]</span><br/><span class="hl-1"> },</span><br/><span class="hl-1"> </span><span class="hl-4">QuantumBarrier</span><span class="hl-1"> { </span><span class="hl-4">qubits:</span><span class="hl-1"> [ [</span><span class="hl-4">Identifier</span><span class="hl-1">] ] }</span><br/><span class="hl-1">]</span>
23
+ </code><button>Copy</button></pre>
24
+
25
+ <h2 id="api-documentation-navigation" class="tsd-anchor-link">API Documentation Navigation<a href="#api-documentation-navigation" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><h3 id="core-functions" class="tsd-anchor-link">Core Functions<a href="#core-functions" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Start here for the main parsing functions:</p>
26
+ <ul>
27
+ <li><strong><a href="functions/Main_Functions.parseString.html">parseString</a></strong> - Parse OpenQASM code from a string</li>
28
+ <li><strong><a href="functions/Main_Functions.parseFile.html">parseFile</a></strong> - Parse OpenQASM code from a file</li>
29
+ </ul>
30
+ <h3 id="tokenization" class="tsd-anchor-link">Tokenization<a href="#tokenization" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Understand the tokenization process and available token types:</p>
31
+ <ul>
32
+ <li><strong><a href="modules/qasm3_token.html">OpenQASM 3.0 Tokens</a></strong> - Modern OpenQASM token set</li>
33
+ <li><strong><a href="modules/qasm2_token.html">OpenQASM 2.0 Tokens</a></strong> - Legacy OpenQASM token set</li>
34
+ </ul>
35
+ <h3 id="lexing" class="tsd-anchor-link">Lexing<a href="#lexing" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Understand the Lexer:</p>
36
+ <ul>
37
+ <li><strong><a href="modules/qasm3_lexer.html">OpenQASM 3.0 Lexer</a></strong> - Modern OpenQASM lexer</li>
38
+ <li><strong><a href="modules/qasm2_lexer.html">OpenQASM 2.0 Lexer</a></strong> - Legacy OpenQASM lexer</li>
39
+ </ul>
40
+ <h3 id="ast-structure" class="tsd-anchor-link">AST Structure<a href="#ast-structure" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Understand the abstract syntax tree nodes:</p>
41
+ <ul>
42
+ <li><strong><a href="modules/qasm3_ast.html">OpenQASM 3.0 AST Nodes</a></strong> - Modern OpenQASM syntax tree</li>
43
+ <li><strong><a href="modules/qasm2_ast.html">OpenQASM 2.0 AST Nodes</a></strong> - Legacy OpenQASM syntax tree</li>
44
+ </ul>
45
+ <h3 id="parsing" class="tsd-anchor-link">Parsing<a href="#parsing" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Understand the Parser:</p>
46
+ <ul>
47
+ <li><strong><a href="modules/qasm3_parser.html">OpenQASM 3.0 Parser</a></strong> - Modern OpenQASM parser</li>
48
+ <li><strong><a href="modules/qasm2_parser.html">OpenQASM 2.0 Parser</a></strong> - Legacy OpenQASM parser</li>
49
+ </ul>
50
+ <h3 id="utilities-and-internals" class="tsd-anchor-link">Utilities and Internals<a href="#utilities-and-internals" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><ul>
51
+ <li><strong><a href="modules/Error_Handling.html">Error Handling</a></strong> - All error types and their usage</li>
52
+ <li><strong><a href="modules/Version_Management.html">Version Management</a></strong> - Version detection and handling</li>
53
+ </ul>
54
+ <p>Navigate using the sidebar or search functionality to find specific functions and classes.</p>
55
+ <h2 id="new-in-version-200" class="tsd-anchor-link">New In Version 2.0.0<a href="#new-in-version-200" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><ul>
56
+ <li>Support for the OpenQASM 3.0 spec while retaining OpenQASM 2.0 backwards compatibility.</li>
57
+ </ul>
58
+ <h2 id="source-code" class="tsd-anchor-link">Source Code<a href="#source-code" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><p>Feel free to clone, fork, comment or contribute on <a href="https://github.com/comp-phys-marc/qasm-ts">GitHub</a>!</p>
59
+ <h2 id="references" class="tsd-anchor-link">References<a href="#references" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><p>The original OpenQASM authors:</p>
60
+ <ul>
61
+ <li>Andrew W. Cross, Lev S. Bishop, John A. Smolin, Jay M. Gambetta &quot;Open Quantum Assembly Language&quot; <a href="https://web.archive.org/web/20210121114036/https://arxiv.org/abs/1707.03429">arXiv:1707.03429</a></li>
62
+ <li>Andrew W. Cross, Ali Javadi-Abhari, Thomas Alexander, Niel de Beaudrap, Lev S. Bishop, Steven Heidel, Colm A. Ryan, Prasahnt Sivarajah, John Smolin, Jay M. Gambetta, Blake R. Johnson &quot;OpenQASM 3: A broader and deeper quantum assembly language&quot; <a href="https://arxiv.org/abs/2104.14722">arXiv:2104.14722</a></li>
63
+ </ul>
64
+ <p>Another strongly typed implementation from which this project took some inspiration:</p>
65
+ <ul>
66
+ <li><a href="https://github.com/libtangle/qasm-rust">Adam Kelly's Rust QASM Parser</a></li>
67
+ </ul>
68
+ <h2 id="license" class="tsd-anchor-link">License<a href="#license" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><p>Copyright 2019 Marcus Edwards</p>
69
+ <p>Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may not use this file except in compliance with the License. You may obtain a copy of the License at:</p>
70
+ <p><code>http://www.apache.org/licenses/LICENSE-2.0</code></p>
71
+ <p>Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.</p>
72
+ <h2 id="how-to-cite" class="tsd-anchor-link">How to Cite<a href="#how-to-cite" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><p>If you are using QASM-TS for research we appreciate any citations. Please read and cite our pre-print at <a href="https://arxiv.org/abs/2412.12578">https://arxiv.org/abs/2412.12578</a>.</p>
73
+ <pre><code><span class="hl-1">@</span><span class="hl-4">misc</span><span class="hl-1">{</span><span class="hl-4">kim2024enablingverificationformalizationhybrid</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">title</span><span class="hl-1">={Enabling the Verification and Formalization of Hybrid Quantum-Classical Computing with OpenQASM </span><span class="hl-8">3.0</span><span class="hl-4"> compatible QASM-TS </span><span class="hl-8">2.0</span><span class="hl-1">}, </span><br/><span class="hl-1"> </span><span class="hl-4">author</span><span class="hl-1">={Sean Kim and Marcus </span><span class="hl-4">Edwards</span><span class="hl-1">},</span><br/><span class="hl-1"> </span><span class="hl-4">year</span><span class="hl-1">={</span><span class="hl-8">2024</span><span class="hl-1">},</span><br/><span class="hl-1"> </span><span class="hl-4">eprint</span><span class="hl-1">={</span><span class="hl-8">2412.12578</span><span class="hl-1">},</span><br/><span class="hl-1"> </span><span class="hl-4">archivePrefix</span><span class="hl-1">={</span><span class="hl-4">arXiv</span><span class="hl-1">},</span><br/><span class="hl-1"> </span><span class="hl-4">primaryClass</span><span class="hl-1">={cs.</span><span class="hl-4">PL</span><span class="hl-1">},</span><br/><span class="hl-1"> </span><span class="hl-4">url</span><span class="hl-1">={</span><span class="hl-4">https:</span><span class="hl-7">//arxiv.org/abs/2412.12578}, </span><br/><span class="hl-1">}</span>
74
+ </code><button>Copy</button></pre>
75
+
76
+ </div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#qasm-typescript-documentation"><span>QASM <wbr/>Type<wbr/>Script <wbr/>Documentation</span></a><ul><li><a href="#quick-start"><span>Quick <wbr/>Start</span></a></li><li><ul><li><a href="#installation"><span>Installation</span></a></li><li><a href="#basic-usage"><span>Basic <wbr/>Usage</span></a></li><li><a href="#working-with-the-ast"><span>Working with the <wbr/>AST</span></a></li></ul></li><li><a href="#example-io"><span>Example <wbr/>I/<wbr/>O</span></a></li><li><ul><li><a href="#input-alignmentqasm-source"><span>Input: alignment.qasm (source)</span></a></li><li><a href="#output-abstract-syntax-tree"><span>Output: <wbr/>Abstract <wbr/>Syntax <wbr/>Tree</span></a></li></ul></li><li><a href="#api-documentation-navigation"><span>API <wbr/>Documentation <wbr/>Navigation</span></a></li><li><ul><li><a href="#core-functions"><span>Core <wbr/>Functions</span></a></li><li><a href="#tokenization"><span>Tokenization</span></a></li><li><a href="#lexing"><span>Lexing</span></a></li><li><a href="#ast-structure"><span>AST <wbr/>Structure</span></a></li><li><a href="#parsing"><span>Parsing</span></a></li><li><a href="#utilities-and-internals"><span>Utilities and <wbr/>Internals</span></a></li></ul></li><li><a href="#new-in-version-200"><span>New <wbr/>In <wbr/>Version 2.0.0</span></a></li><li><a href="#source-code"><span>Source <wbr/>Code</span></a></li><li><a href="#references"><span>References</span></a></li><li><a href="#license"><span>License</span></a></li><li><a href="#how-to-cite"><span>How to <wbr/>Cite</span></a></li></ul></div></details></div><div class="site-menu"><nav id="tsd-sidebar-links" class="tsd-navigation"><a href="https://github.com/comp-phys-marc/qasm-ts" class="tsd-nav-link">GitHub</a><a href="https://www.npmjs.com/package/qasm-ts" class="tsd-nav-link">NPM</a></nav><nav class="tsd-navigation"><a href="modules.html">qasm-ts - v2.0.0</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer></footer><div class="overlay"></div></body></html>
@@ -0,0 +1,5 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Error Handling | qasm-ts - v2.0.0</title><meta name="description" content="Documentation for qasm-ts"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><link rel="stylesheet" href="../assets/custom.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">qasm-ts - v2.0.0</a><div id="tsd-toolbar-links"><a href="https://github.com/comp-phys-marc/qasm-ts">GitHub</a><a href="https://www.npmjs.com/package/qasm-ts">NPM</a></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">Error Handling</a></li></ul><h1>Module Error Handling</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><p>Error classes for QASM parsing and validation</p>
2
+ <p>This module provides specific error types for different parsing failures,
3
+ enabling precise error handling and debugging. Each error includes contextual
4
+ information about where the error occurred in the source code.</p>
5
+ </div></section><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Classes"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Classes</h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="badargumenterror"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/Error_Handling.BadArgumentError.html">BadArgumentError</a><a href="#badargumenterror" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="badbarriererror"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/Error_Handling.BadBarrierError.html">BadBarrierError</a><a href="#badbarriererror" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="badclassicaltypeerror"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/Error_Handling.BadClassicalTypeError.html">BadClassicalTypeError</a><a href="#badclassicaltypeerror" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="badconditionalerror"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/Error_Handling.BadConditionalError.html">BadConditionalError</a><a href="#badconditionalerror" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="badcregerror"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/Error_Handling.BadCregError.html">BadCregError</a><a href="#badcregerror" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="badequalserror"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/Error_Handling.BadEqualsError.html">BadEqualsError</a><a href="#badequalserror" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="badexpressionerror"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/Error_Handling.BadExpressionError.html">BadExpressionError</a><a href="#badexpressionerror" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="badgateerror"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/Error_Handling.BadGateError.html">BadGateError</a><a href="#badgateerror" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="badincludeerror"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/Error_Handling.BadIncludeError.html">BadIncludeError</a><a href="#badincludeerror" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="badlooperror"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/Error_Handling.BadLoopError.html">BadLoopError</a><a href="#badlooperror" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="badmeasurementerror"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/Error_Handling.BadMeasurementError.html">BadMeasurementError</a><a href="#badmeasurementerror" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="badparametererror"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/Error_Handling.BadParameterError.html">BadParameterError</a><a href="#badparametererror" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="badqregerror"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/Error_Handling.BadQregError.html">BadQregError</a><a href="#badqregerror" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="badquantuminstructionerror"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/Error_Handling.BadQuantumInstructionError.html">BadQuantumInstructionError</a><a href="#badquantuminstructionerror" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="badstringliteralerror"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/Error_Handling.BadStringLiteralError.html">BadStringLiteralError</a><a href="#badstringliteralerror" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="badsubroutineerror"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/Error_Handling.BadSubroutineError.html">BadSubroutineError</a><a href="#badsubroutineerror" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="missingbraceerror"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/Error_Handling.MissingBraceError.html">MissingBraceError</a><a href="#missingbraceerror" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="missingsemicolonerror"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/Error_Handling.MissingSemicolonError.html">MissingSemicolonError</a><a href="#missingsemicolonerror" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="unsupportedopenqasmversionerror"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/Error_Handling.UnsupportedOpenQASMVersionError.html">UnsupportedOpenQASMVersionError</a><a href="#unsupportedopenqasmversionerror" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Type Aliases"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Type Aliases</h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="returnerrorconstructor"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Type Alias"><use href="../assets/icons.svg#icon-2097152"></use></svg><a href="../types/Error_Handling.ReturnErrorConstructor.html">ReturnErrorConstructor</a><a href="#returnerrorconstructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Classes"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Classes</summary><div><a href="#badargumenterror"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Bad<wbr/>Argument<wbr/>Error</span></a><a href="#badbarriererror"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Bad<wbr/>Barrier<wbr/>Error</span></a><a href="#badclassicaltypeerror"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Bad<wbr/>Classical<wbr/>Type<wbr/>Error</span></a><a href="#badconditionalerror"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Bad<wbr/>Conditional<wbr/>Error</span></a><a href="#badcregerror"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Bad<wbr/>Creg<wbr/>Error</span></a><a href="#badequalserror"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Bad<wbr/>Equals<wbr/>Error</span></a><a href="#badexpressionerror"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Bad<wbr/>Expression<wbr/>Error</span></a><a href="#badgateerror"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Bad<wbr/>Gate<wbr/>Error</span></a><a href="#badincludeerror"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Bad<wbr/>Include<wbr/>Error</span></a><a href="#badlooperror"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Bad<wbr/>Loop<wbr/>Error</span></a><a href="#badmeasurementerror"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Bad<wbr/>Measurement<wbr/>Error</span></a><a href="#badparametererror"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Bad<wbr/>Parameter<wbr/>Error</span></a><a href="#badqregerror"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Bad<wbr/>Qreg<wbr/>Error</span></a><a href="#badquantuminstructionerror"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Bad<wbr/>Quantum<wbr/>Instruction<wbr/>Error</span></a><a href="#badstringliteralerror"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Bad<wbr/>String<wbr/>Literal<wbr/>Error</span></a><a href="#badsubroutineerror"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Bad<wbr/>Subroutine<wbr/>Error</span></a><a href="#missingbraceerror"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Missing<wbr/>Brace<wbr/>Error</span></a><a href="#missingsemicolonerror"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Missing<wbr/>Semicolon<wbr/>Error</span></a><a href="#unsupportedopenqasmversionerror"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Unsupported<wbr/>Open<wbr/>QASM<wbr/>Version<wbr/>Error</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Type Aliases"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Type Aliases</summary><div><a href="#returnerrorconstructor"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Type Alias"><use href="../assets/icons.svg#icon-2097152"></use></svg><span>Return<wbr/>Error<wbr/>Constructor</span></a></div></details></div></details></div><div class="site-menu"><nav id="tsd-sidebar-links" class="tsd-navigation"><a href="https://github.com/comp-phys-marc/qasm-ts" class="tsd-nav-link">GitHub</a><a href="https://www.npmjs.com/package/qasm-ts" class="tsd-nav-link">NPM</a></nav><nav class="tsd-navigation"><a href="../modules.html">qasm-ts - v2.0.0</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer></footer><div class="overlay"></div></body></html>
@@ -0,0 +1,20 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Lexing | qasm-ts - v2.0.0</title><meta name="description" content="Documentation for qasm-ts"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><link rel="stylesheet" href="../assets/custom.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">qasm-ts - v2.0.0</a><div id="tsd-toolbar-links"><a href="https://github.com/comp-phys-marc/qasm-ts">GitHub</a><a href="https://www.npmjs.com/package/qasm-ts">NPM</a></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">Lexing</a></li></ul><h1>Module Lexing</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><p>Main lexer interface for tokenizing QASM code</p>
2
+ <p>The lexer is responsible for breaking down QASM source code into tokens
3
+ that can be consumed by the parser. It supports both OpenQASM 2.0 and 3.0
4
+ syntax, with version-specific lexers handling the differences in token types
5
+ and syntax rules.</p>
6
+ <p>The specific Lexer implementations can be found at:</p>
7
+ <ul>
8
+ <li><a href="../classes/qasm3_lexer.default.html" class="tsd-kind-class">Qasm3Lexer</a></li>
9
+ <li><a href="../classes/qasm2_lexer.default.html" class="tsd-kind-class">Qasm2Lexer</a></li>
10
+ </ul>
11
+ </div><div class="tsd-comment tsd-typography"><div class="tsd-tag-example"><h4 class="tsd-anchor-link" id="example-token-flow">Example: Token Flow<a href="#example-token-flow" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code><span class="hl-4">Source</span><span class="hl-1"> </span><span class="hl-4">Code</span><span class="hl-1"> → </span><span class="hl-4">Lexer</span><span class="hl-1"> → </span><span class="hl-4">Tokens</span><span class="hl-1"> → </span><span class="hl-4">Parser</span><span class="hl-1"> → </span><span class="hl-6">AST</span><br/><span class="hl-2">&quot;h q[0];&quot;</span><span class="hl-1"> → [</span><span class="hl-4">Id</span><span class="hl-1">, </span><span class="hl-4">Id</span><span class="hl-1">, </span><span class="hl-4">LSParen</span><span class="hl-1">, </span><span class="hl-4">NNInteger</span><span class="hl-1">, </span><span class="hl-4">RSParen</span><span class="hl-1">, </span><span class="hl-4">Semicolon</span><span class="hl-1">]</span>
12
+ </code><button>Copy</button></pre>
13
+
14
+ <ul>
15
+ <li></li>
16
+ </ul>
17
+ </div><div class="tsd-tag-example"><h4 class="tsd-anchor-link" id="example-basic-lexing-workflow">Example: Basic lexing workflow<a href="#example-basic-lexing-workflow" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="typescript"><span class="hl-3">import</span><span class="hl-1"> { </span><span class="hl-4">lex</span><span class="hl-1"> } </span><span class="hl-3">from</span><span class="hl-1"> </span><span class="hl-2">&#39;./lexer&#39;</span><span class="hl-1">;</span><br/><br/><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-6">qasmCode</span><span class="hl-1"> = </span><span class="hl-2">&#39;OPENQASM 3.0; qubit q; h q;&#39;</span><span class="hl-1">;</span><br/><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-6">tokens</span><span class="hl-1"> = </span><span class="hl-0">lex</span><span class="hl-1">(</span><span class="hl-4">qasmCode</span><span class="hl-1">);</span><br/><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-4">tokens</span><span class="hl-1">);</span><br/><span class="hl-7">// [</span><br/><span class="hl-7">// [Token.OpenQASM, undefined],</span><br/><span class="hl-7">// [Token.Id, &#39;qubit&#39;],</span><br/><span class="hl-7">// [Token.Id, &#39;q&#39;],</span><br/><span class="hl-7">// [Token.Semicolon, undefined],</span><br/><span class="hl-7">// [Token.Id, &#39;h&#39;],</span><br/><span class="hl-7">// [Token.Id, &#39;q&#39;],</span><br/><span class="hl-7">// [Token.Semicolon, undefined]</span><br/><span class="hl-7">// ]</span>
18
+ </code><button type="button">Copy</button></pre>
19
+
20
+ </div></div></section><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Lexing"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Lexing</h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="lex"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><a href="../functions/Lexing.lex.html">lex</a><a href="#lex" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Lexing"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Lexing</summary><div><a href="#lex"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><span>lex</span></a></div></details></div></details></div><div class="site-menu"><nav id="tsd-sidebar-links" class="tsd-navigation"><a href="https://github.com/comp-phys-marc/qasm-ts" class="tsd-nav-link">GitHub</a><a href="https://www.npmjs.com/package/qasm-ts" class="tsd-nav-link">NPM</a></nav><nav class="tsd-navigation"><a href="../modules.html">qasm-ts - v2.0.0</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer></footer><div class="overlay"></div></body></html>
@@ -0,0 +1,2 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Main Functions | qasm-ts - v2.0.0</title><meta name="description" content="Documentation for qasm-ts"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><link rel="stylesheet" href="../assets/custom.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">qasm-ts - v2.0.0</a><div id="tsd-toolbar-links"><a href="https://github.com/comp-phys-marc/qasm-ts">GitHub</a><a href="https://www.npmjs.com/package/qasm-ts">NPM</a></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">Main Functions</a></li></ul><h1>Module Main Functions</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><p>Main parsing functions for qasm-ts - the primary entry points for parsing OpenQASM code</p>
2
+ </div></section><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Main Functions"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Main Functions</h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="parsefile"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><a href="../functions/Main_Functions.parseFile.html">parseFile</a><a href="#parsefile" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="parsestring"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><a href="../functions/Main_Functions.parseString.html">parseString</a><a href="#parsestring" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Main Functions"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Main Functions</summary><div><a href="#parsefile"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><span>parse<wbr/>File</span></a><a href="#parsestring"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><span>parse<wbr/>String</span></a></div></details></div></details></div><div class="site-menu"><nav id="tsd-sidebar-links" class="tsd-navigation"><a href="https://github.com/comp-phys-marc/qasm-ts" class="tsd-nav-link">GitHub</a><a href="https://www.npmjs.com/package/qasm-ts" class="tsd-nav-link">NPM</a></nav><nav class="tsd-navigation"><a href="../modules.html">qasm-ts - v2.0.0</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer></footer><div class="overlay"></div></body></html>
@@ -0,0 +1,24 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Parsing | qasm-ts - v2.0.0</title><meta name="description" content="Documentation for qasm-ts"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><link rel="stylesheet" href="../assets/custom.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">qasm-ts - v2.0.0</a><div id="tsd-toolbar-links"><a href="https://github.com/comp-phys-marc/qasm-ts">GitHub</a><a href="https://www.npmjs.com/package/qasm-ts">NPM</a></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">Parsing</a></li></ul><h1>Module Parsing</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><p>Main parser interface for generating AST from tokens</p>
2
+ <p>The parser is responsible for transforming a stream of tokens into an Abstract
3
+ Syntax Tree (AST) that represents the structure of the OpenQASM program. It acts
4
+ as a dispatcher, selecting the appropriate version-specific parser based on the
5
+ OpenQASM version being used.</p>
6
+ <p>The parsing process follows these steps:</p>
7
+ <ol>
8
+ <li>Receive tokenized input from the lexer</li>
9
+ <li>Determine OpenQASM version (2.0 or 3.0)</li>
10
+ <li>Select appropriate parser implementation</li>
11
+ <li>Generate version-specific AST nodes</li>
12
+ </ol>
13
+ <p>The specific Parser implementations can be found at:</p>
14
+ <ul>
15
+ <li><a href="../classes/qasm3_parser.default.html" class="tsd-kind-class">Qasm3Parser</a></li>
16
+ <li><a href="../classes/qasm2_parser.default.html" class="tsd-kind-class">Qasm2Parser</a></li>
17
+ </ul>
18
+ </div><div class="tsd-comment tsd-typography"><div class="tsd-tag-example"><h4 class="tsd-anchor-link" id="example-basic-parsing-workflow">Example: Basic parsing workflow<a href="#example-basic-parsing-workflow" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="typescript"><span class="hl-3">import</span><span class="hl-1"> { </span><span class="hl-4">lex</span><span class="hl-1"> } </span><span class="hl-3">from</span><span class="hl-1"> </span><span class="hl-2">&#39;./lexer&#39;</span><span class="hl-1">;</span><br/><span class="hl-3">import</span><span class="hl-1"> { </span><span class="hl-4">parse</span><span class="hl-1"> } </span><span class="hl-3">from</span><span class="hl-1"> </span><span class="hl-2">&#39;./parser&#39;</span><span class="hl-1">;</span><br/><br/><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-6">qasmCode</span><span class="hl-1"> = </span><span class="hl-2">&#39;OPENQASM 3.0; h q[0];&#39;</span><span class="hl-1">;</span><br/><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-6">tokens</span><span class="hl-1"> = </span><span class="hl-0">lex</span><span class="hl-1">(</span><span class="hl-4">qasmCode</span><span class="hl-1">, </span><span class="hl-5">undefined</span><span class="hl-1">, </span><span class="hl-8">3</span><span class="hl-1">);</span><br/><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-6">ast</span><span class="hl-1"> = </span><span class="hl-0">parse</span><span class="hl-1">(</span><span class="hl-4">tokens</span><span class="hl-1">, </span><span class="hl-8">3</span><span class="hl-1">);</span><br/><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-4">ast</span><span class="hl-1">); </span><span class="hl-7">// Array of AST nodes</span>
19
+ </code><button type="button">Copy</button></pre>
20
+
21
+ </div><div class="tsd-tag-example"><h4 class="tsd-anchor-link" id="example-version-specific-parsing">Example: Version-specific parsing<a href="#example-version-specific-parsing" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="typescript"><span class="hl-7">// Parse as OpenQASM 2.0</span><br/><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-6">ast2</span><span class="hl-1"> = </span><span class="hl-0">parse</span><span class="hl-1">(</span><span class="hl-4">tokens</span><span class="hl-1">, </span><span class="hl-8">2</span><span class="hl-1">);</span><br/><br/><span class="hl-7">// Parse as OpenQASM 3.0</span><br/><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-6">ast3</span><span class="hl-1"> = </span><span class="hl-0">parse</span><span class="hl-1">(</span><span class="hl-4">tokens</span><span class="hl-1">, </span><span class="hl-8">3</span><span class="hl-1">);</span><br/><br/><span class="hl-7">// Use OpenQASMVersion object</span><br/><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-6">version</span><span class="hl-1"> = </span><span class="hl-5">new</span><span class="hl-1"> </span><span class="hl-0">OpenQASMVersion</span><span class="hl-1">(</span><span class="hl-8">3</span><span class="hl-1">, </span><span class="hl-8">0</span><span class="hl-1">);</span><br/><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-6">ast</span><span class="hl-1"> = </span><span class="hl-0">parse</span><span class="hl-1">(</span><span class="hl-4">tokens</span><span class="hl-1">, </span><span class="hl-4">version</span><span class="hl-1">);</span>
22
+ </code><button type="button">Copy</button></pre>
23
+
24
+ </div></div></section><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Parsing"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Parsing</h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="parse"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><a href="../functions/Parsing.parse.html">parse</a><a href="#parse" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Parsing"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Parsing</summary><div><a href="#parse"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Function"><use href="../assets/icons.svg#icon-64"></use></svg><span>parse</span></a></div></details></div></details></div><div class="site-menu"><nav id="tsd-sidebar-links" class="tsd-navigation"><a href="https://github.com/comp-phys-marc/qasm-ts" class="tsd-nav-link">GitHub</a><a href="https://www.npmjs.com/package/qasm-ts" class="tsd-nav-link">NPM</a></nav><nav class="tsd-navigation"><a href="../modules.html">qasm-ts - v2.0.0</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer></footer><div class="overlay"></div></body></html>
@@ -0,0 +1,8 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Version Management | qasm-ts - v2.0.0</title><meta name="description" content="Documentation for qasm-ts"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><link rel="stylesheet" href="../assets/custom.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">qasm-ts - v2.0.0</a><div id="tsd-toolbar-links"><a href="https://github.com/comp-phys-marc/qasm-ts">GitHub</a><a href="https://www.npmjs.com/package/qasm-ts">NPM</a></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">Version Management</a></li></ul><h1>Module Version Management</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><p>OpenQASM version detection and management utilities</p>
2
+ <p>Handles version detection from QASM source code and provides utilities
3
+ for working with different OpenQASM versions. Supports automatic version
4
+ detection from OPENQASM statements and manual version specification.</p>
5
+ </div><div class="tsd-comment tsd-typography"><div class="tsd-tag-example"><h4 class="tsd-anchor-link" id="example-version-detection">Example: Version detection<a href="#example-version-detection" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="typescript"><span class="hl-5">const</span><span class="hl-1"> </span><span class="hl-6">version</span><span class="hl-1"> = </span><span class="hl-5">new</span><span class="hl-1"> </span><span class="hl-0">OpenQASMVersion</span><span class="hl-1">(</span><span class="hl-8">3</span><span class="hl-1">, </span><span class="hl-8">0</span><span class="hl-1">);</span><br/><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-4">version</span><span class="hl-1">.</span><span class="hl-0">toString</span><span class="hl-1">()); </span><span class="hl-7">// &quot;3.0&quot;</span><br/><span class="hl-4">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-4">version</span><span class="hl-1">.</span><span class="hl-0">isVersion3</span><span class="hl-1">()); </span><span class="hl-7">// true</span>
6
+ </code><button type="button">Copy</button></pre>
7
+
8
+ </div></div></section><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Classes"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Classes</h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="openqasmversion"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/Version_Management.OpenQASMVersion.html">OpenQASMVersion</a><a href="#openqasmversion" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Enumerations"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Enumerations</h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="openqasmmajorversion"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration"><use href="../assets/icons.svg#icon-8"></use></svg><a href="../enums/Version_Management.OpenQASMMajorVersion.html">OpenQASMMajorVersion</a><a href="#openqasmmajorversion" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Classes"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Classes</summary><div><a href="#openqasmversion"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Open<wbr/>QASM<wbr/>Version</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Enumerations"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Enumerations</summary><div><a href="#openqasmmajorversion"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Enumeration"><use href="../assets/icons.svg#icon-8"></use></svg><span>Open<wbr/>QASM<wbr/>Major<wbr/>Version</span></a></div></details></div></details></div><div class="site-menu"><nav id="tsd-sidebar-links" class="tsd-navigation"><a href="https://github.com/comp-phys-marc/qasm-ts" class="tsd-nav-link">GitHub</a><a href="https://www.npmjs.com/package/qasm-ts" class="tsd-nav-link">NPM</a></nav><nav class="tsd-navigation"><a href="../modules.html">qasm-ts - v2.0.0</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer></footer><div class="overlay"></div></body></html>
@@ -0,0 +1,22 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>qasm2/ast | qasm-ts - v2.0.0</title><meta name="description" content="Documentation for qasm-ts"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><link rel="stylesheet" href="../assets/custom.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">qasm-ts - v2.0.0</a><div id="tsd-toolbar-links"><a href="https://github.com/comp-phys-marc/qasm-ts">GitHub</a><a href="https://www.npmjs.com/package/qasm-ts">NPM</a></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">qasm2/ast</a></li></ul><h1>Module qasm2/ast</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><p>OpenQASM 2.0 Abstract Syntax Tree Node Definitions</p>
2
+ <p>This module defines the AST node classes for OpenQASM 2.0, which provides
3
+ a simpler and more limited set of constructs compared to OpenQASM 3.0.</p>
4
+ <p>OpenQASM 2.0 focuses on:</p>
5
+ <ul>
6
+ <li>Basic quantum register (<code>qreg</code>) and classical register (<code>creg</code>) declarations</li>
7
+ <li>Gate definitions and applications</li>
8
+ <li>Measurement operations</li>
9
+ <li>Simple conditional statements</li>
10
+ <li>Basic arithmetic expressions</li>
11
+ </ul>
12
+ <p>Key limitations compared to 3.0:</p>
13
+ <ul>
14
+ <li>No advanced classical types (only registers)</li>
15
+ <li>No control flow structures (loops, complex conditionals)</li>
16
+ <li>No function definitions or subroutines</li>
17
+ <li>Limited expression capabilities</li>
18
+ </ul>
19
+ </div><div class="tsd-comment tsd-typography"><div class="tsd-tag-example"><h4 class="tsd-anchor-link" id="example-basic-openqasm-20-constructs">Example: Basic OpenQASM 2.0 constructs<a href="#example-basic-openqasm-20-constructs" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="typescript"><span class="hl-7">// Quantum register: qreg q[2];</span><br/><span class="hl-5">new</span><span class="hl-1"> </span><span class="hl-0">QReg</span><span class="hl-1">(</span><span class="hl-2">&#39;q&#39;</span><span class="hl-1">, </span><span class="hl-8">2</span><span class="hl-1">)</span><br/><br/><span class="hl-7">// Gate application: h q[0];</span><br/><span class="hl-5">new</span><span class="hl-1"> </span><span class="hl-0">ApplyGate</span><span class="hl-1">(</span><span class="hl-2">&#39;h&#39;</span><span class="hl-1">, [[</span><span class="hl-2">&#39;q&#39;</span><span class="hl-1">, </span><span class="hl-8">0</span><span class="hl-1">]], [])</span><br/><br/><span class="hl-7">// Measurement: measure q[0] -&gt; c[0];</span><br/><span class="hl-5">new</span><span class="hl-1"> </span><span class="hl-0">Measure</span><span class="hl-1">(</span><span class="hl-2">&#39;q&#39;</span><span class="hl-1">, </span><span class="hl-2">&#39;c&#39;</span><span class="hl-1">, </span><span class="hl-8">0</span><span class="hl-1">, </span><span class="hl-8">0</span><span class="hl-1">)</span>
20
+ </code><button type="button">Copy</button></pre>
21
+
22
+ </div></div></section><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Classes"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Classes</h2></summary><dl class="tsd-member-summaries"><dt class="tsd-member-summary" id="applygate"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/qasm2_ast.ApplyGate.html">ApplyGate</a><a href="#applygate" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="astnode"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/qasm2_ast.AstNode.html">AstNode</a><a href="#astnode" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="barrier"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/qasm2_ast.Barrier.html">Barrier</a><a href="#barrier" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="cos"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/qasm2_ast.Cos.html">Cos</a><a href="#cos" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="creg"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/qasm2_ast.CReg.html">CReg</a><a href="#creg" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="divide"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/qasm2_ast.Divide.html">Divide</a><a href="#divide" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="exp"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/qasm2_ast.Exp.html">Exp</a><a href="#exp" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="gate"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/qasm2_ast.Gate.html">Gate</a><a href="#gate" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="id"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/qasm2_ast.Id.html">Id</a><a href="#id" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="if"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/qasm2_ast.If.html">If</a><a href="#if" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="include"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/qasm2_ast.Include.html">Include</a><a href="#include" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="ln"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/qasm2_ast.Ln.html">Ln</a><a href="#ln" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="measure"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/qasm2_ast.Measure.html">Measure</a><a href="#measure" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="minus"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/qasm2_ast.Minus.html">Minus</a><a href="#minus" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="nninteger"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/qasm2_ast.NNInteger.html">NNInteger</a><a href="#nninteger" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="opaque"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/qasm2_ast.Opaque.html">Opaque</a><a href="#opaque" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="pi"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/qasm2_ast.Pi.html">Pi</a><a href="#pi" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="plus"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/qasm2_ast.Plus.html">Plus</a><a href="#plus" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="power"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/qasm2_ast.Power.html">Power</a><a href="#power" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="qreg"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/qasm2_ast.QReg.html">QReg</a><a href="#qreg" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="real"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/qasm2_ast.Real.html">Real</a><a href="#real" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="sin"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/qasm2_ast.Sin.html">Sin</a><a href="#sin" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="sqrt"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/qasm2_ast.Sqrt.html">Sqrt</a><a href="#sqrt" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="tan"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/qasm2_ast.Tan.html">Tan</a><a href="#tan" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="times"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/qasm2_ast.Times.html">Times</a><a href="#times" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="variable"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/qasm2_ast.Variable.html">Variable</a><a href="#variable" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd><dt class="tsd-member-summary" id="version"><span class="tsd-member-summary-name"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><a href="../classes/qasm2_ast.Version.html">Version</a><a href="#version" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></span></dt><dd class="tsd-member-summary"></dd></dl></details></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Classes"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Classes</summary><div><a href="#applygate"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Apply<wbr/>Gate</span></a><a href="#astnode"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Ast<wbr/>Node</span></a><a href="#barrier"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Barrier</span></a><a href="#cos"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Cos</span></a><a href="#creg"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>C<wbr/>Reg</span></a><a href="#divide"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Divide</span></a><a href="#exp"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Exp</span></a><a href="#gate"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Gate</span></a><a href="#id"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Id</span></a><a href="#if"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>If</span></a><a href="#include"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Include</span></a><a href="#ln"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Ln</span></a><a href="#measure"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Measure</span></a><a href="#minus"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Minus</span></a><a href="#nninteger"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>NN<wbr/>Integer</span></a><a href="#opaque"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Opaque</span></a><a href="#pi"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Pi</span></a><a href="#plus"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Plus</span></a><a href="#power"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Power</span></a><a href="#qreg"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Q<wbr/>Reg</span></a><a href="#real"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Real</span></a><a href="#sin"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Sin</span></a><a href="#sqrt"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Sqrt</span></a><a href="#tan"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Tan</span></a><a href="#times"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Times</span></a><a href="#variable"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Variable</span></a><a href="#version"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="../assets/icons.svg#icon-128"></use></svg><span>Version</span></a></div></details></div></details></div><div class="site-menu"><nav id="tsd-sidebar-links" class="tsd-navigation"><a href="https://github.com/comp-phys-marc/qasm-ts" class="tsd-nav-link">GitHub</a><a href="https://www.npmjs.com/package/qasm-ts" class="tsd-nav-link">NPM</a></nav><nav class="tsd-navigation"><a href="../modules.html">qasm-ts - v2.0.0</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer></footer><div class="overlay"></div></body></html>