diff --git a/src/QsCompiler/BondSchemas/BondSchemas.csproj b/src/QsCompiler/BondSchemas/BondSchemas.csproj
index fba730d338..a38f031d6c 100644
--- a/src/QsCompiler/BondSchemas/BondSchemas.csproj
+++ b/src/QsCompiler/BondSchemas/BondSchemas.csproj
@@ -8,6 +8,10 @@
Microsoft.Quantum.BondSchemas
+
+
+
+
diff --git a/src/QsCompiler/BondSchemas/CompilerDataStructures.bond b/src/QsCompiler/BondSchemas/CompilerDataStructures.bond
index a7e69dd2a6..e078be7987 100644
--- a/src/QsCompiler/BondSchemas/CompilerDataStructures.bond
+++ b/src/QsCompiler/BondSchemas/CompilerDataStructures.bond
@@ -1,6 +1,9 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
+// This schema corresponds to the C# code at Generated/CompilerDataStructures.cs
+// N.B Whenever this schema changes, C# code must be generated again.
+
namespace Microsoft.Quantum.QsCompiler.BondSchemas;
// Data structures from DataTypes.fs
diff --git a/src/QsCompiler/BondSchemas/Generated/CompilerDataStructures.cs b/src/QsCompiler/BondSchemas/Generated/CompilerDataStructures.cs
new file mode 100644
index 0000000000..af43d722b2
--- /dev/null
+++ b/src/QsCompiler/BondSchemas/Generated/CompilerDataStructures.cs
@@ -0,0 +1,1791 @@
+
+//------------------------------------------------------------------------------
+// This code was generated by a tool.
+//
+// Tool : Bond Compiler 0.12.0.0
+// Input filename: CompilerDataStructures.bond
+// Output filename: CompilerDataStructures_types.cs
+//
+// Changes to this file may cause incorrect behavior and will be lost when
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+
+// suppress "Missing XML comment for publicly visible type or member"
+#pragma warning disable 1591
+
+
+#region ReSharper warnings
+// ReSharper disable PartialTypeWithSinglePart
+// ReSharper disable RedundantNameQualifier
+// ReSharper disable InconsistentNaming
+// ReSharper disable CheckNamespace
+// ReSharper disable UnusedParameter.Local
+// ReSharper disable RedundantUsingDirective
+#endregion
+
+namespace Microsoft.Quantum.QsCompiler.BondSchemas
+{
+ using System.Collections.Generic;
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class Position
+ {
+ [global::Bond.Id(5)]
+ public int Line { get; set; }
+
+ [global::Bond.Id(10)]
+ public int Column { get; set; }
+
+ public Position()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.Position", "Position")
+ { }
+
+ protected Position(string fullName, string name)
+ {
+
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class Range
+ {
+ [global::Bond.Id(5)]
+ public Position Start { get; set; }
+
+ [global::Bond.Id(10)]
+ public Position End { get; set; }
+
+ public Range()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.Range", "Range")
+ { }
+
+ protected Range(string fullName, string name)
+ {
+ Start = new Position();
+ End = new Position();
+ }
+ }
+
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public enum AccessModifier
+ {
+ DefaultAccess,
+ Internal,
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class Modifiers
+ {
+ [global::Bond.Id(5)]
+ public AccessModifier Access { get; set; }
+
+ public Modifiers()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.Modifiers", "Modifiers")
+ { }
+
+ protected Modifiers(string fullName, string name)
+ {
+ Access = AccessModifier.DefaultAccess;
+ }
+ }
+
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public enum QsGeneratorDirective
+ {
+ SelfInverse,
+ Invert,
+ Distribute,
+ InvalidGenerator,
+ }
+
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public enum QsResult
+ {
+ Zero,
+ One,
+ }
+
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public enum QsPauli
+ {
+ PauliX,
+ PauliY,
+ PauliZ,
+ PauliI,
+ }
+
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public enum QsExpressionKind
+ {
+ UnitValue,
+ Identifier,
+ ValueTuple,
+ IntLiteral,
+ BigIntLiteral,
+ DoubleLiteral,
+ BoolLiteral,
+ StringLiteral,
+ ResultLiteral,
+ PauliLiteral,
+ RangeLiteral,
+ NewArray,
+ ValueArray,
+ ArrayItem,
+ NamedItem,
+ NEG,
+ NOT,
+ BNOT,
+ ADD,
+ SUB,
+ MUL,
+ DIV,
+ MOD,
+ POW,
+ EQ,
+ NEQ,
+ LT,
+ LTE,
+ GT,
+ GTE,
+ AND,
+ OR,
+ BOR,
+ BAND,
+ BXOR,
+ LSHIFT,
+ RSHIFT,
+ CONDITIONAL,
+ CopyAndUpdate,
+ UnwrapApplication,
+ AdjointApplication,
+ ControlledApplication,
+ CallLikeExpression,
+ MissingExpr,
+ InvalidExpr,
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class QsExpressionKindIdentifier
+ {
+ [global::Bond.Id(5), global::Bond.Type(typeof(global::Bond.Tag.classT))]
+ public TSymbol Symbol { get; set; }
+
+ [global::Bond.Id(10), global::Bond.Type(typeof(global::Bond.Tag.nullable>))]
+ public List Types { get; set; }
+
+ public QsExpressionKindIdentifier()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.QsExpressionKindIdentifier", "QsExpressionKindIdentifier")
+ { }
+
+ protected QsExpressionKindIdentifier(string fullName, string name)
+ {
+ Symbol = global::Bond.GenericFactory.Create();
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class QsExpressionKindStringLiteral
+ {
+ [global::Bond.Id(5)]
+ public string StringLiteral { get; set; }
+
+ [global::Bond.Id(10), global::Bond.Type(typeof(List))]
+ public List Expressions { get; set; }
+
+ public QsExpressionKindStringLiteral()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.QsExpressionKindStringLiteral", "QsExpressionKindStringLiteral")
+ { }
+
+ protected QsExpressionKindStringLiteral(string fullName, string name)
+ {
+ StringLiteral = "";
+ Expressions = new List();
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class QsExpressionKindExpressionDouble
+ {
+ [global::Bond.Id(5), global::Bond.Type(typeof(global::Bond.Tag.classT))]
+ public TExpression Expression1 { get; set; }
+
+ [global::Bond.Id(10), global::Bond.Type(typeof(global::Bond.Tag.classT))]
+ public TExpression Expression2 { get; set; }
+
+ public QsExpressionKindExpressionDouble()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.QsExpressionKindExpressionDouble", "QsExpressionKindExpressionDouble")
+ { }
+
+ protected QsExpressionKindExpressionDouble(string fullName, string name)
+ {
+ Expression1 = global::Bond.GenericFactory.Create();
+ Expression2 = global::Bond.GenericFactory.Create();
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class QsExpressionKindExpressionTriple
+ {
+ [global::Bond.Id(5), global::Bond.Type(typeof(global::Bond.Tag.classT))]
+ public TExpression Expression1 { get; set; }
+
+ [global::Bond.Id(10), global::Bond.Type(typeof(global::Bond.Tag.classT))]
+ public TExpression Expression2 { get; set; }
+
+ [global::Bond.Id(15), global::Bond.Type(typeof(global::Bond.Tag.classT))]
+ public TExpression Expression3 { get; set; }
+
+ public QsExpressionKindExpressionTriple()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.QsExpressionKindExpressionTriple", "QsExpressionKindExpressionTriple")
+ { }
+
+ protected QsExpressionKindExpressionTriple(string fullName, string name)
+ {
+ Expression1 = global::Bond.GenericFactory.Create();
+ Expression2 = global::Bond.GenericFactory.Create();
+ Expression3 = global::Bond.GenericFactory.Create();
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class QsExpressionKindNewArray
+ {
+ [global::Bond.Id(5), global::Bond.Type(typeof(global::Bond.Tag.classT))]
+ public TType Type { get; set; }
+
+ [global::Bond.Id(10), global::Bond.Type(typeof(global::Bond.Tag.classT))]
+ public TExpression Expression { get; set; }
+
+ public QsExpressionKindNewArray()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.QsExpressionKindNewArray", "QsExpressionKindNewArray")
+ { }
+
+ protected QsExpressionKindNewArray(string fullName, string name)
+ {
+ Type = global::Bond.GenericFactory.Create();
+ Expression = global::Bond.GenericFactory.Create();
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class QsExpressionKindNamedItem
+ {
+ [global::Bond.Id(5), global::Bond.Type(typeof(global::Bond.Tag.classT))]
+ public TExpression Expression { get; set; }
+
+ [global::Bond.Id(10), global::Bond.Type(typeof(global::Bond.Tag.classT))]
+ public TSymbol Symbol { get; set; }
+
+ public QsExpressionKindNamedItem()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.QsExpressionKindNamedItem", "QsExpressionKindNamedItem")
+ { }
+
+ protected QsExpressionKindNamedItem(string fullName, string name)
+ {
+ Expression = global::Bond.GenericFactory.Create();
+ Symbol = global::Bond.GenericFactory.Create();
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class QsExpressionKindComposition
+ {
+ [global::Bond.Id(5), global::Bond.Required]
+ public QsExpressionKind Kind { get; set; }
+
+ [global::Bond.Id(10), global::Bond.Type(typeof(global::Bond.Tag.nullable>))]
+ public QsExpressionKindIdentifier Identifier { get; set; }
+
+ [global::Bond.Id(20), global::Bond.Type(typeof(global::Bond.Tag.nullable))]
+ public long? IntLiteral { get; set; }
+
+ [global::Bond.Id(25), global::Bond.Type(typeof(global::Bond.Tag.nullable>))]
+ public System.ArraySegment BigIntLiteral { get; set; }
+
+ [global::Bond.Id(30), global::Bond.Type(typeof(global::Bond.Tag.nullable))]
+ public double? DoubleLiteral { get; set; }
+
+ [global::Bond.Id(35), global::Bond.Type(typeof(global::Bond.Tag.nullable))]
+ public bool? BoolLiteral { get; set; }
+
+ [global::Bond.Id(40), global::Bond.Type(typeof(global::Bond.Tag.nullable>))]
+ public QsExpressionKindStringLiteral StringLiteral { get; set; }
+
+ [global::Bond.Id(45), global::Bond.Type(typeof(global::Bond.Tag.nullable))]
+ public QsResult? ResultLiteral { get; set; }
+
+ [global::Bond.Id(50), global::Bond.Type(typeof(global::Bond.Tag.nullable))]
+ public QsPauli? PauliLiteral { get; set; }
+
+ [global::Bond.Id(55), global::Bond.Type(typeof(global::Bond.Tag.nullable>))]
+ public QsExpressionKindNewArray NewArray { get; set; }
+
+ [global::Bond.Id(60), global::Bond.Type(typeof(global::Bond.Tag.nullable>))]
+ public QsExpressionKindNamedItem NamedItem { get; set; }
+
+ [global::Bond.Id(65), global::Bond.Type(typeof(global::Bond.Tag.nullable))]
+ public TExpression Expression { get; set; }
+
+ [global::Bond.Id(70), global::Bond.Type(typeof(global::Bond.Tag.nullable>))]
+ public QsExpressionKindExpressionDouble ExpressionDouble { get; set; }
+
+ [global::Bond.Id(75), global::Bond.Type(typeof(global::Bond.Tag.nullable>))]
+ public QsExpressionKindExpressionTriple ExpressionTriple { get; set; }
+
+ [global::Bond.Id(80), global::Bond.Type(typeof(global::Bond.Tag.nullable>))]
+ public List ExpressionArray { get; set; }
+
+ public QsExpressionKindComposition()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.QsExpressionKindComposition", "QsExpressionKindComposition")
+ { }
+
+ protected QsExpressionKindComposition(string fullName, string name)
+ {
+ Kind = QsExpressionKind.InvalidExpr;
+ }
+ }
+
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public enum QsBindingKind
+ {
+ ImmutableBinding,
+ MutableBinding,
+ }
+
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public enum QsSpecializationKind
+ {
+ QsBody,
+ QsAdjoint,
+ QsControlled,
+ QsControlledAdjoint,
+ }
+
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public enum QsCallableKind
+ {
+ Operation,
+ Function,
+ TypeConstructor,
+ }
+
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public enum QsQubitScopeKind
+ {
+ Allocate,
+ Borrow,
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class QsQualifiedName
+ {
+ [global::Bond.Id(5)]
+ public string Namespace { get; set; }
+
+ [global::Bond.Id(10)]
+ public string Name { get; set; }
+
+ public QsQualifiedName()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.QsQualifiedName", "QsQualifiedName")
+ { }
+
+ protected QsQualifiedName(string fullName, string name)
+ {
+ Namespace = "";
+ Name = "";
+ }
+ }
+
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public enum SymbolTupleKind
+ {
+ InvalidItem,
+ VariableName,
+ VariableNameTuple,
+ DiscardedItem,
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class SymbolTuple
+ {
+ [global::Bond.Id(5), global::Bond.Required]
+ public SymbolTupleKind Kind { get; set; }
+
+ [global::Bond.Id(10), global::Bond.Type(typeof(global::Bond.Tag.nullable))]
+ public string VariableName { get; set; }
+
+ [global::Bond.Id(15), global::Bond.Type(typeof(global::Bond.Tag.nullable>))]
+ public List VariableNameTuple { get; set; }
+
+ public SymbolTuple()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.SymbolTuple", "SymbolTuple")
+ { }
+
+ protected SymbolTuple(string fullName, string name)
+ {
+ Kind = SymbolTupleKind.InvalidItem;
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class QsBinding
+ {
+ [global::Bond.Id(5)]
+ public QsBindingKind Kind { get; set; }
+
+ [global::Bond.Id(10)]
+ public SymbolTuple Lhs { get; set; }
+
+ [global::Bond.Id(15), global::Bond.Type(typeof(global::Bond.Tag.classT))]
+ public T Rhs { get; set; }
+
+ public QsBinding()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.QsBinding", "QsBinding")
+ { }
+
+ protected QsBinding(string fullName, string name)
+ {
+ Kind = QsBindingKind.ImmutableBinding;
+ Lhs = new SymbolTuple();
+ Rhs = global::Bond.GenericFactory.Create();
+ }
+ }
+
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public enum IdentifierKind
+ {
+ LocalVariable,
+ GlobalCallable,
+ InvalidIdentifier,
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class Identifier
+ {
+ [global::Bond.Id(5), global::Bond.Required]
+ public IdentifierKind Kind { get; set; }
+
+ [global::Bond.Id(10), global::Bond.Type(typeof(global::Bond.Tag.nullable))]
+ public string LocalVariable { get; set; }
+
+ [global::Bond.Id(15), global::Bond.Type(typeof(global::Bond.Tag.nullable))]
+ public QsQualifiedName GlobalCallable { get; set; }
+
+ public Identifier()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.Identifier", "Identifier")
+ { }
+
+ protected Identifier(string fullName, string name)
+ {
+ Kind = IdentifierKind.LocalVariable;
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class QsLocation
+ {
+ [global::Bond.Id(5)]
+ public Position Offset { get; set; }
+
+ [global::Bond.Id(10)]
+ public Range Range { get; set; }
+
+ public QsLocation()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.QsLocation", "QsLocation")
+ { }
+
+ protected QsLocation(string fullName, string name)
+ {
+ Offset = new Position();
+ Range = new Range();
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class QsTypeParameter
+ {
+ [global::Bond.Id(5)]
+ public QsQualifiedName Origin { get; set; }
+
+ [global::Bond.Id(10)]
+ public string TypeName { get; set; }
+
+ [global::Bond.Id(15), global::Bond.Type(typeof(global::Bond.Tag.nullable))]
+ public Range Range { get; set; }
+
+ public QsTypeParameter()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.QsTypeParameter", "QsTypeParameter")
+ { }
+
+ protected QsTypeParameter(string fullName, string name)
+ {
+ Origin = new QsQualifiedName();
+ TypeName = "";
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class UserDefinedType
+ {
+ [global::Bond.Id(5)]
+ public string Namespace { get; set; }
+
+ [global::Bond.Id(10)]
+ public string Name { get; set; }
+
+ [global::Bond.Id(15), global::Bond.Type(typeof(global::Bond.Tag.nullable))]
+ public Range Range { get; set; }
+
+ public UserDefinedType()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.UserDefinedType", "UserDefinedType")
+ { }
+
+ protected UserDefinedType(string fullName, string name)
+ {
+ Namespace = "";
+ Name = "";
+ }
+ }
+
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public enum OpProperty
+ {
+ Adjointable,
+ Controllable,
+ }
+
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public enum CharacteristicsKind
+ {
+ EmptySet,
+ SimpleSet,
+ Union,
+ Intersection,
+ InvalidSetExpr,
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class CharacteristicsKindSetOperation
+ {
+ [global::Bond.Id(5), global::Bond.Type(typeof(global::Bond.Tag.classT))]
+ public T Set1 { get; set; }
+
+ [global::Bond.Id(10), global::Bond.Type(typeof(global::Bond.Tag.classT))]
+ public T Set2 { get; set; }
+
+ public CharacteristicsKindSetOperation()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.CharacteristicsKindSetOperation", "CharacteristicsKindSetOperation")
+ { }
+
+ protected CharacteristicsKindSetOperation(string fullName, string name)
+ {
+ Set1 = global::Bond.GenericFactory.Create();
+ Set2 = global::Bond.GenericFactory.Create();
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class CharacteristicsKindComposition
+ {
+ [global::Bond.Id(5), global::Bond.Required]
+ public CharacteristicsKind Kind { get; set; }
+
+ [global::Bond.Id(10), global::Bond.Type(typeof(global::Bond.Tag.nullable))]
+ public OpProperty? SimpleSet { get; set; }
+
+ [global::Bond.Id(15), global::Bond.Type(typeof(global::Bond.Tag.nullable>))]
+ public CharacteristicsKindSetOperation SetOperation { get; set; }
+
+ public CharacteristicsKindComposition()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.CharacteristicsKindComposition", "CharacteristicsKindComposition")
+ { }
+
+ protected CharacteristicsKindComposition(string fullName, string name)
+ {
+ Kind = CharacteristicsKind.InvalidSetExpr;
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class ResolvedCharacteristics
+ {
+ [global::Bond.Id(5)]
+ public CharacteristicsKindComposition Expression { get; set; }
+
+ public ResolvedCharacteristics()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.ResolvedCharacteristics", "ResolvedCharacteristics")
+ { }
+
+ protected ResolvedCharacteristics(string fullName, string name)
+ {
+ Expression = new CharacteristicsKindComposition();
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class InferredCallableInformation
+ {
+ [global::Bond.Id(5)]
+ public bool IsSelfAdjoint { get; set; }
+
+ [global::Bond.Id(10)]
+ public bool IsIntrinsic { get; set; }
+
+ public InferredCallableInformation()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.InferredCallableInformation", "InferredCallableInformation")
+ { }
+
+ protected InferredCallableInformation(string fullName, string name)
+ {
+
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class CallableInformation
+ {
+ [global::Bond.Id(5)]
+ public ResolvedCharacteristics Characteristics { get; set; }
+
+ [global::Bond.Id(10)]
+ public InferredCallableInformation InferredInformation { get; set; }
+
+ public CallableInformation()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.CallableInformation", "CallableInformation")
+ { }
+
+ protected CallableInformation(string fullName, string name)
+ {
+ Characteristics = new ResolvedCharacteristics();
+ InferredInformation = new InferredCallableInformation();
+ }
+ }
+
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public enum QsTypeKind
+ {
+ UnitType,
+ Int,
+ BigInt,
+ Double,
+ Bool,
+ String,
+ Qubit,
+ Result,
+ Pauli,
+ Range,
+ ArrayType,
+ TupleType,
+ UserDefinedType,
+ TypeParameter,
+ Operation,
+ Function,
+ MissingType,
+ InvalidType,
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class QsTypeKindFunction
+ {
+ [global::Bond.Id(5), global::Bond.Type(typeof(global::Bond.Tag.classT))]
+ public T Type1 { get; set; }
+
+ [global::Bond.Id(10), global::Bond.Type(typeof(global::Bond.Tag.classT))]
+ public T Type2 { get; set; }
+
+ public QsTypeKindFunction()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.QsTypeKindFunction", "QsTypeKindFunction")
+ { }
+
+ protected QsTypeKindFunction(string fullName, string name)
+ {
+ Type1 = global::Bond.GenericFactory.Create();
+ Type2 = global::Bond.GenericFactory.Create();
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class QsTypeKindOperation
+ {
+ [global::Bond.Id(5), global::Bond.Type(typeof(global::Bond.Tag.classT))]
+ public TType Type1 { get; set; }
+
+ [global::Bond.Id(10), global::Bond.Type(typeof(global::Bond.Tag.classT))]
+ public TType Type2 { get; set; }
+
+ [global::Bond.Id(15), global::Bond.Type(typeof(global::Bond.Tag.classT))]
+ public TCharacteristics Characteristics { get; set; }
+
+ public QsTypeKindOperation()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.QsTypeKindOperation", "QsTypeKindOperation")
+ { }
+
+ protected QsTypeKindOperation(string fullName, string name)
+ {
+ Type1 = global::Bond.GenericFactory.Create();
+ Type2 = global::Bond.GenericFactory.Create();
+ Characteristics = global::Bond.GenericFactory.Create();
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class QsTypeKindComposition
+ {
+ [global::Bond.Id(5), global::Bond.Required]
+ public QsTypeKind Kind { get; set; }
+
+ [global::Bond.Id(10), global::Bond.Type(typeof(global::Bond.Tag.nullable))]
+ public TType ArrayType { get; set; }
+
+ [global::Bond.Id(15), global::Bond.Type(typeof(global::Bond.Tag.nullable>))]
+ public List TupleType { get; set; }
+
+ [global::Bond.Id(20), global::Bond.Type(typeof(global::Bond.Tag.nullable))]
+ public TUdt UserDefinedType { get; set; }
+
+ [global::Bond.Id(25), global::Bond.Type(typeof(global::Bond.Tag.nullable))]
+ public TParam TypeParameter { get; set; }
+
+ [global::Bond.Id(30), global::Bond.Type(typeof(global::Bond.Tag.nullable>))]
+ public QsTypeKindOperation Operation { get; set; }
+
+ [global::Bond.Id(35), global::Bond.Type(typeof(global::Bond.Tag.nullable>))]
+ public QsTypeKindFunction Function { get; set; }
+
+ public QsTypeKindComposition()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.QsTypeKindComposition", "QsTypeKindComposition")
+ { }
+
+ protected QsTypeKindComposition(string fullName, string name)
+ {
+ Kind = QsTypeKind.InvalidType;
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class ResolvedType
+ {
+ [global::Bond.Id(5)]
+ public QsTypeKindComposition TypeKind { get; set; }
+
+ public ResolvedType()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.ResolvedType", "ResolvedType")
+ { }
+
+ protected ResolvedType(string fullName, string name)
+ {
+ TypeKind = new QsTypeKindComposition();
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class InferredExpressionInformation
+ {
+ [global::Bond.Id(5)]
+ public bool IsMutable { get; set; }
+
+ [global::Bond.Id(10)]
+ public bool HasLocalQuantumDependency { get; set; }
+
+ public InferredExpressionInformation()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.InferredExpressionInformation", "InferredExpressionInformation")
+ { }
+
+ protected InferredExpressionInformation(string fullName, string name)
+ {
+
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class TypedArgument
+ {
+ [global::Bond.Id(5)]
+ public QsQualifiedName Callable { get; set; }
+
+ [global::Bond.Id(10)]
+ public string Name { get; set; }
+
+ [global::Bond.Id(15)]
+ public ResolvedType Resolution { get; set; }
+
+ public TypedArgument()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.TypedArgument", "TypedArgument")
+ { }
+
+ protected TypedArgument(string fullName, string name)
+ {
+ Callable = new QsQualifiedName();
+ Name = "";
+ Resolution = new ResolvedType();
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class TypedExpression
+ {
+ [global::Bond.Id(5)]
+ public QsExpressionKindComposition Expression { get; set; }
+
+ [global::Bond.Id(10)]
+ public List TypedArguments { get; set; }
+
+ [global::Bond.Id(15)]
+ public ResolvedType ResolvedType { get; set; }
+
+ [global::Bond.Id(20)]
+ public InferredExpressionInformation InferredInformation { get; set; }
+
+ [global::Bond.Id(25), global::Bond.Type(typeof(global::Bond.Tag.nullable))]
+ public Range Range { get; set; }
+
+ public TypedExpression()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.TypedExpression", "TypedExpression")
+ { }
+
+ protected TypedExpression(string fullName, string name)
+ {
+ Expression = new QsExpressionKindComposition();
+ TypedArguments = new List();
+ ResolvedType = new ResolvedType();
+ InferredInformation = new InferredExpressionInformation();
+ }
+ }
+
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public enum QsInitializerKind
+ {
+ SingleQubitAllocation,
+ QubitRegisterAllocation,
+ QubitTupleAllocation,
+ InvalidInitializer,
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class QsInitializerKindComposition
+ {
+ [global::Bond.Id(5), global::Bond.Required]
+ public QsInitializerKind Kind { get; set; }
+
+ [global::Bond.Id(10), global::Bond.Type(typeof(global::Bond.Tag.nullable))]
+ public TExpression QubitRegisterAllocation { get; set; }
+
+ [global::Bond.Id(15), global::Bond.Type(typeof(global::Bond.Tag.nullable>))]
+ public List QubitTupleAllocation { get; set; }
+
+ public QsInitializerKindComposition()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.QsInitializerKindComposition", "QsInitializerKindComposition")
+ { }
+
+ protected QsInitializerKindComposition(string fullName, string name)
+ {
+ Kind = QsInitializerKind.InvalidInitializer;
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class ResolvedInitializer
+ {
+ [global::Bond.Id(5)]
+ public QsInitializerKindComposition Initializer { get; set; }
+
+ [global::Bond.Id(10)]
+ public ResolvedType ResolvedType { get; set; }
+
+ public ResolvedInitializer()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.ResolvedInitializer", "ResolvedInitializer")
+ { }
+
+ protected ResolvedInitializer(string fullName, string name)
+ {
+ Initializer = new QsInitializerKindComposition();
+ ResolvedType = new ResolvedType();
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class LocalVariableDeclaration
+ {
+ [global::Bond.Id(5), global::Bond.Type(typeof(global::Bond.Tag.classT))]
+ public TVariableName VariableName { get; set; }
+
+ [global::Bond.Id(10)]
+ public ResolvedType Type { get; set; }
+
+ [global::Bond.Id(15)]
+ public InferredExpressionInformation InferredInformation { get; set; }
+
+ [global::Bond.Id(20), global::Bond.Type(typeof(global::Bond.Tag.nullable))]
+ public Position Position { get; set; }
+
+ [global::Bond.Id(25)]
+ public Range Range { get; set; }
+
+ public LocalVariableDeclaration()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.LocalVariableDeclaration", "LocalVariableDeclaration")
+ { }
+
+ protected LocalVariableDeclaration(string fullName, string name)
+ {
+ VariableName = global::Bond.GenericFactory.Create();
+ Type = new ResolvedType();
+ InferredInformation = new InferredExpressionInformation();
+ Range = new Range();
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class LocalDeclarations
+ {
+ [global::Bond.Id(5)]
+ public List> Variables { get; set; }
+
+ public LocalDeclarations()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.LocalDeclarations", "LocalDeclarations")
+ { }
+
+ protected LocalDeclarations(string fullName, string name)
+ {
+ Variables = new List>();
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class QsValueUpdate
+ {
+ [global::Bond.Id(5)]
+ public TypedExpression Lhs { get; set; }
+
+ [global::Bond.Id(10)]
+ public TypedExpression Rhs { get; set; }
+
+ public QsValueUpdate()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.QsValueUpdate", "QsValueUpdate")
+ { }
+
+ protected QsValueUpdate(string fullName, string name)
+ {
+ Lhs = new TypedExpression();
+ Rhs = new TypedExpression();
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class QsComments
+ {
+ [global::Bond.Id(5)]
+ public List OpeningComments { get; set; }
+
+ [global::Bond.Id(10)]
+ public List ClosingComments { get; set; }
+
+ public QsComments()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.QsComments", "QsComments")
+ { }
+
+ protected QsComments(string fullName, string name)
+ {
+ OpeningComments = new List();
+ ClosingComments = new List();
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class QsPositionedBlock
+ {
+ [global::Bond.Id(5)]
+ public QsScope Body { get; set; }
+
+ [global::Bond.Id(10), global::Bond.Type(typeof(global::Bond.Tag.nullable))]
+ public QsLocation Location { get; set; }
+
+ [global::Bond.Id(15)]
+ public QsComments Comments { get; set; }
+
+ public QsPositionedBlock()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.QsPositionedBlock", "QsPositionedBlock")
+ { }
+
+ protected QsPositionedBlock(string fullName, string name)
+ {
+ Body = new QsScope();
+ Comments = new QsComments();
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class QsConditionalBlock
+ {
+ [global::Bond.Id(5)]
+ public TypedExpression Expression { get; set; }
+
+ [global::Bond.Id(10)]
+ public QsPositionedBlock Block { get; set; }
+
+ public QsConditionalBlock()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.QsConditionalBlock", "QsConditionalBlock")
+ { }
+
+ protected QsConditionalBlock(string fullName, string name)
+ {
+ Expression = new TypedExpression();
+ Block = new QsPositionedBlock();
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class QsConditionalStatement
+ {
+ [global::Bond.Id(5)]
+ public List ConditionalBlocks { get; set; }
+
+ [global::Bond.Id(10), global::Bond.Type(typeof(global::Bond.Tag.nullable))]
+ public QsPositionedBlock Default { get; set; }
+
+ public QsConditionalStatement()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.QsConditionalStatement", "QsConditionalStatement")
+ { }
+
+ protected QsConditionalStatement(string fullName, string name)
+ {
+ ConditionalBlocks = new List();
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class QsLoopItem
+ {
+ [global::Bond.Id(5)]
+ public SymbolTuple SymbolTuple { get; set; }
+
+ [global::Bond.Id(10)]
+ public ResolvedType ResolvedType { get; set; }
+
+ public QsLoopItem()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.QsLoopItem", "QsLoopItem")
+ { }
+
+ protected QsLoopItem(string fullName, string name)
+ {
+ SymbolTuple = new SymbolTuple();
+ ResolvedType = new ResolvedType();
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class QsForStatement
+ {
+ [global::Bond.Id(5)]
+ public QsLoopItem LoopItem { get; set; }
+
+ [global::Bond.Id(10)]
+ public TypedExpression IterationValues { get; set; }
+
+ [global::Bond.Id(15)]
+ public QsScope Body { get; set; }
+
+ public QsForStatement()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.QsForStatement", "QsForStatement")
+ { }
+
+ protected QsForStatement(string fullName, string name)
+ {
+ LoopItem = new QsLoopItem();
+ IterationValues = new TypedExpression();
+ Body = new QsScope();
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class QsWhileStatement
+ {
+ [global::Bond.Id(5)]
+ public TypedExpression Condition { get; set; }
+
+ [global::Bond.Id(10)]
+ public QsScope Body { get; set; }
+
+ public QsWhileStatement()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.QsWhileStatement", "QsWhileStatement")
+ { }
+
+ protected QsWhileStatement(string fullName, string name)
+ {
+ Condition = new TypedExpression();
+ Body = new QsScope();
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class QsRepeatStatement
+ {
+ [global::Bond.Id(5)]
+ public QsPositionedBlock RepeatBlock { get; set; }
+
+ [global::Bond.Id(10)]
+ public TypedExpression SuccessCondition { get; set; }
+
+ [global::Bond.Id(15)]
+ public QsPositionedBlock FixupBlock { get; set; }
+
+ public QsRepeatStatement()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.QsRepeatStatement", "QsRepeatStatement")
+ { }
+
+ protected QsRepeatStatement(string fullName, string name)
+ {
+ RepeatBlock = new QsPositionedBlock();
+ SuccessCondition = new TypedExpression();
+ FixupBlock = new QsPositionedBlock();
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class QsConjugation
+ {
+ [global::Bond.Id(5)]
+ public QsPositionedBlock OuterTransformation { get; set; }
+
+ [global::Bond.Id(10)]
+ public QsPositionedBlock InnerTransformation { get; set; }
+
+ public QsConjugation()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.QsConjugation", "QsConjugation")
+ { }
+
+ protected QsConjugation(string fullName, string name)
+ {
+ OuterTransformation = new QsPositionedBlock();
+ InnerTransformation = new QsPositionedBlock();
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class QsQubitScope
+ {
+ [global::Bond.Id(5)]
+ public QsQubitScopeKind Kind { get; set; }
+
+ [global::Bond.Id(10)]
+ public QsBinding Binding { get; set; }
+
+ [global::Bond.Id(15)]
+ public QsScope Body { get; set; }
+
+ public QsQubitScope()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.QsQubitScope", "QsQubitScope")
+ { }
+
+ protected QsQubitScope(string fullName, string name)
+ {
+ Kind = QsQubitScopeKind.Allocate;
+ Binding = new QsBinding();
+ Body = new QsScope();
+ }
+ }
+
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public enum QsStatementKind
+ {
+ QsExpressionStatement,
+ QsReturnStatement,
+ QsFailStatement,
+ QsVariableDeclaration,
+ QsValueUpdate,
+ QsConditionalStatement,
+ QsForStatement,
+ QsWhileStatement,
+ QsRepeatStatement,
+ QsConjugation,
+ QsQubitScope,
+ EmptyStatement,
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class QsStatementKindComposition
+ {
+ [global::Bond.Id(5), global::Bond.Required]
+ public QsStatementKind Kind { get; set; }
+
+ [global::Bond.Id(10), global::Bond.Type(typeof(global::Bond.Tag.nullable))]
+ public TypedExpression TypedExpression { get; set; }
+
+ [global::Bond.Id(15), global::Bond.Type(typeof(global::Bond.Tag.nullable>))]
+ public QsBinding VariableDeclaration { get; set; }
+
+ [global::Bond.Id(20), global::Bond.Type(typeof(global::Bond.Tag.nullable))]
+ public QsValueUpdate ValueUpdate { get; set; }
+
+ [global::Bond.Id(25), global::Bond.Type(typeof(global::Bond.Tag.nullable))]
+ public QsConditionalStatement ConditionalStatement { get; set; }
+
+ [global::Bond.Id(30), global::Bond.Type(typeof(global::Bond.Tag.nullable))]
+ public QsForStatement ForStatement { get; set; }
+
+ [global::Bond.Id(35), global::Bond.Type(typeof(global::Bond.Tag.nullable))]
+ public QsWhileStatement WhileStatement { get; set; }
+
+ [global::Bond.Id(40), global::Bond.Type(typeof(global::Bond.Tag.nullable))]
+ public QsRepeatStatement RepeatStatement { get; set; }
+
+ [global::Bond.Id(45), global::Bond.Type(typeof(global::Bond.Tag.nullable))]
+ public QsConjugation Conjugation { get; set; }
+
+ [global::Bond.Id(50), global::Bond.Type(typeof(global::Bond.Tag.nullable))]
+ public QsQubitScope QubitScope { get; set; }
+
+ public QsStatementKindComposition()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.QsStatementKindComposition", "QsStatementKindComposition")
+ { }
+
+ protected QsStatementKindComposition(string fullName, string name)
+ {
+ Kind = QsStatementKind.EmptyStatement;
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class QsStatement
+ {
+ [global::Bond.Id(5)]
+ public QsStatementKindComposition Statement { get; set; }
+
+ [global::Bond.Id(10)]
+ public LocalDeclarations SymbolDeclarations { get; set; }
+
+ [global::Bond.Id(15), global::Bond.Type(typeof(global::Bond.Tag.nullable))]
+ public QsLocation Location { get; set; }
+
+ [global::Bond.Id(20)]
+ public QsComments Comments { get; set; }
+
+ public QsStatement()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.QsStatement", "QsStatement")
+ { }
+
+ protected QsStatement(string fullName, string name)
+ {
+ Statement = new QsStatementKindComposition();
+ SymbolDeclarations = new LocalDeclarations();
+ Comments = new QsComments();
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class QsScope
+ {
+ [global::Bond.Id(5)]
+ public List Statements { get; set; }
+
+ [global::Bond.Id(10)]
+ public LocalDeclarations KnownSymbols { get; set; }
+
+ public QsScope()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.QsScope", "QsScope")
+ { }
+
+ protected QsScope(string fullName, string name)
+ {
+ Statements = new List();
+ KnownSymbols = new LocalDeclarations();
+ }
+ }
+
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public enum QsLocalSymbolKind
+ {
+ ValidName,
+ InvalidName,
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class QsLocalSymbol
+ {
+ [global::Bond.Id(5), global::Bond.Required]
+ public QsLocalSymbolKind Kind { get; set; }
+
+ [global::Bond.Id(10), global::Bond.Type(typeof(global::Bond.Tag.nullable))]
+ public string Name { get; set; }
+
+ public QsLocalSymbol()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.QsLocalSymbol", "QsLocalSymbol")
+ { }
+
+ protected QsLocalSymbol(string fullName, string name)
+ {
+ Kind = QsLocalSymbolKind.InvalidName;
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class QsDeclarationAttribute
+ {
+ [global::Bond.Id(5), global::Bond.Type(typeof(global::Bond.Tag.nullable))]
+ public UserDefinedType TypeId { get; set; }
+
+ [global::Bond.Id(10)]
+ public TypedExpression Argument { get; set; }
+
+ [global::Bond.Id(15)]
+ public Position Offset { get; set; }
+
+ [global::Bond.Id(20)]
+ public QsComments Comments { get; set; }
+
+ public QsDeclarationAttribute()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.QsDeclarationAttribute", "QsDeclarationAttribute")
+ { }
+
+ protected QsDeclarationAttribute(string fullName, string name)
+ {
+ Argument = new TypedExpression();
+ Offset = new Position();
+ Comments = new QsComments();
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class ResolvedSignature
+ {
+ [global::Bond.Id(5)]
+ public List TypeParameters { get; set; }
+
+ [global::Bond.Id(10)]
+ public ResolvedType ArgumentType { get; set; }
+
+ [global::Bond.Id(15)]
+ public ResolvedType ReturnType { get; set; }
+
+ [global::Bond.Id(20)]
+ public CallableInformation Information { get; set; }
+
+ public ResolvedSignature()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.ResolvedSignature", "ResolvedSignature")
+ { }
+
+ protected ResolvedSignature(string fullName, string name)
+ {
+ TypeParameters = new List();
+ ArgumentType = new ResolvedType();
+ ReturnType = new ResolvedType();
+ Information = new CallableInformation();
+ }
+ }
+
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public enum QsTupleKind
+ {
+ QsTupleItem,
+ QsTuple,
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class QsTuple
+ {
+ [global::Bond.Id(5), global::Bond.Required]
+ public QsTupleKind Kind { get; set; }
+
+ [global::Bond.Id(10), global::Bond.Type(typeof(global::Bond.Tag.nullable))]
+ public T Item { get; set; }
+
+ [global::Bond.Id(15), global::Bond.Type(typeof(global::Bond.Tag.nullable>>))]
+ public List> Items { get; set; }
+
+ public QsTuple()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.QsTuple", "QsTuple")
+ { }
+
+ protected QsTuple(string fullName, string name)
+ {
+ Kind = QsTupleKind.QsTupleItem;
+ }
+ }
+
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public enum SpecializationImplementationKind
+ {
+ Provided,
+ Intrinsic,
+ External,
+ Generated,
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class SpecializationImplementationKindProvided
+ {
+ [global::Bond.Id(5)]
+ public QsTuple> Tuple { get; set; }
+
+ [global::Bond.Id(10)]
+ public QsScope Implementation { get; set; }
+
+ public SpecializationImplementationKindProvided()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.SpecializationImplementationKindProvided", "SpecializationImplementationKindProvided")
+ { }
+
+ protected SpecializationImplementationKindProvided(string fullName, string name)
+ {
+ Tuple = new QsTuple>();
+ Implementation = new QsScope();
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class SpecializationImplementation
+ {
+ [global::Bond.Id(5), global::Bond.Required]
+ public SpecializationImplementationKind Kind { get; set; }
+
+ [global::Bond.Id(10), global::Bond.Type(typeof(global::Bond.Tag.nullable))]
+ public SpecializationImplementationKindProvided Provided { get; set; }
+
+ [global::Bond.Id(15), global::Bond.Type(typeof(global::Bond.Tag.nullable))]
+ public QsGeneratorDirective? Generated { get; set; }
+
+ public SpecializationImplementation()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.SpecializationImplementation", "SpecializationImplementation")
+ { }
+
+ protected SpecializationImplementation(string fullName, string name)
+ {
+ Kind = SpecializationImplementationKind.Generated;
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class QsSpecialization
+ {
+ [global::Bond.Id(5)]
+ public QsSpecializationKind Kind { get; set; }
+
+ [global::Bond.Id(10)]
+ public QsQualifiedName Parent { get; set; }
+
+ [global::Bond.Id(15)]
+ public List Attributes { get; set; }
+
+ [global::Bond.Id(20)]
+ public string SourceFile { get; set; }
+
+ [global::Bond.Id(25), global::Bond.Type(typeof(global::Bond.Tag.nullable))]
+ public QsLocation Location { get; set; }
+
+ [global::Bond.Id(30), global::Bond.Type(typeof(global::Bond.Tag.nullable>))]
+ public List TypeArguments { get; set; }
+
+ [global::Bond.Id(35)]
+ public ResolvedSignature Signature { get; set; }
+
+ [global::Bond.Id(40)]
+ public SpecializationImplementation Implementation { get; set; }
+
+ [global::Bond.Id(45)]
+ public List Documentation { get; set; }
+
+ [global::Bond.Id(50)]
+ public QsComments Comments { get; set; }
+
+ public QsSpecialization()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.QsSpecialization", "QsSpecialization")
+ { }
+
+ protected QsSpecialization(string fullName, string name)
+ {
+ Kind = QsSpecializationKind.QsBody;
+ Parent = new QsQualifiedName();
+ Attributes = new List();
+ SourceFile = "";
+ Signature = new ResolvedSignature();
+ Implementation = new SpecializationImplementation();
+ Documentation = new List();
+ Comments = new QsComments();
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class QsCallable
+ {
+ [global::Bond.Id(5)]
+ public QsCallableKind Kind { get; set; }
+
+ [global::Bond.Id(10)]
+ public QsQualifiedName FullName { get; set; }
+
+ [global::Bond.Id(15)]
+ public List Attributes { get; set; }
+
+ [global::Bond.Id(20)]
+ public Modifiers Modifiers { get; set; }
+
+ [global::Bond.Id(25)]
+ public string SourceFile { get; set; }
+
+ [global::Bond.Id(30), global::Bond.Type(typeof(global::Bond.Tag.nullable))]
+ public QsLocation Location { get; set; }
+
+ [global::Bond.Id(35)]
+ public ResolvedSignature Signature { get; set; }
+
+ [global::Bond.Id(40)]
+ public QsTuple> ArgumentTuple { get; set; }
+
+ [global::Bond.Id(45)]
+ public List Specializations { get; set; }
+
+ [global::Bond.Id(50)]
+ public List Documentation { get; set; }
+
+ [global::Bond.Id(55)]
+ public QsComments Comments { get; set; }
+
+ public QsCallable()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.QsCallable", "QsCallable")
+ { }
+
+ protected QsCallable(string fullName, string name)
+ {
+ Kind = QsCallableKind.Operation;
+ FullName = new QsQualifiedName();
+ Attributes = new List();
+ Modifiers = new Modifiers();
+ SourceFile = "";
+ Signature = new ResolvedSignature();
+ ArgumentTuple = new QsTuple>();
+ Specializations = new List();
+ Documentation = new List();
+ Comments = new QsComments();
+ }
+ }
+
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public enum QsTypeItemKind
+ {
+ Named,
+ Anonymous,
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class QsTypeItem
+ {
+ [global::Bond.Id(5), global::Bond.Required]
+ public QsTypeItemKind Kind { get; set; }
+
+ [global::Bond.Id(10), global::Bond.Type(typeof(global::Bond.Tag.nullable>))]
+ public LocalVariableDeclaration Named { get; set; }
+
+ [global::Bond.Id(15), global::Bond.Type(typeof(global::Bond.Tag.nullable))]
+ public ResolvedType Anonymous { get; set; }
+
+ public QsTypeItem()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.QsTypeItem", "QsTypeItem")
+ { }
+
+ protected QsTypeItem(string fullName, string name)
+ {
+ Kind = QsTypeItemKind.Named;
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class QsCustomType
+ {
+ [global::Bond.Id(5)]
+ public QsQualifiedName FullName { get; set; }
+
+ [global::Bond.Id(10)]
+ public List Attributes { get; set; }
+
+ [global::Bond.Id(15)]
+ public Modifiers Modifiers { get; set; }
+
+ [global::Bond.Id(20)]
+ public string SourceFile { get; set; }
+
+ [global::Bond.Id(25), global::Bond.Type(typeof(global::Bond.Tag.nullable))]
+ public QsLocation Location { get; set; }
+
+ [global::Bond.Id(30)]
+ public ResolvedType Type { get; set; }
+
+ [global::Bond.Id(35)]
+ public QsTuple TypeItems { get; set; }
+
+ [global::Bond.Id(40)]
+ public List Documentation { get; set; }
+
+ [global::Bond.Id(45)]
+ public QsComments Comments { get; set; }
+
+ public QsCustomType()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.QsCustomType", "QsCustomType")
+ { }
+
+ protected QsCustomType(string fullName, string name)
+ {
+ FullName = new QsQualifiedName();
+ Attributes = new List();
+ Modifiers = new Modifiers();
+ SourceFile = "";
+ Type = new ResolvedType();
+ TypeItems = new QsTuple();
+ Documentation = new List();
+ Comments = new QsComments();
+ }
+ }
+
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public enum QsNamespaceElementKind
+ {
+ QsCallable,
+ QsCustomType,
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class QsNamespaceElement
+ {
+ [global::Bond.Id(5), global::Bond.Required]
+ public QsNamespaceElementKind Kind { get; set; }
+
+ [global::Bond.Id(10), global::Bond.Type(typeof(global::Bond.Tag.nullable))]
+ public QsCallable Callable { get; set; }
+
+ [global::Bond.Id(15), global::Bond.Type(typeof(global::Bond.Tag.nullable))]
+ public QsCustomType CustomType { get; set; }
+
+ public QsNamespaceElement()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.QsNamespaceElement", "QsNamespaceElement")
+ { }
+
+ protected QsNamespaceElement(string fullName, string name)
+ {
+ Kind = QsNamespaceElementKind.QsCallable;
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class QsSourceFileDocumentation
+ {
+ [global::Bond.Id(5)]
+ public string FileName { get; set; }
+
+ [global::Bond.Id(10)]
+ public List DocumentationItems { get; set; }
+
+ public QsSourceFileDocumentation()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.QsSourceFileDocumentation", "QsSourceFileDocumentation")
+ { }
+
+ protected QsSourceFileDocumentation(string fullName, string name)
+ {
+ FileName = "";
+ DocumentationItems = new List();
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class QsNamespace
+ {
+ [global::Bond.Id(5)]
+ public string Name { get; set; }
+
+ [global::Bond.Id(10)]
+ public List Elements { get; set; }
+
+ [global::Bond.Id(15)]
+ public LinkedList Documentation { get; set; }
+
+ public QsNamespace()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.QsNamespace", "QsNamespace")
+ { }
+
+ protected QsNamespace(string fullName, string name)
+ {
+ Name = "";
+ Elements = new List();
+ Documentation = new LinkedList();
+ }
+ }
+
+ [global::Bond.Schema]
+ [System.CodeDom.Compiler.GeneratedCode("gbc", "0.12.0.0")]
+ public partial class QsCompilation
+ {
+ [global::Bond.Id(5)]
+ public List Namespaces { get; set; }
+
+ [global::Bond.Id(10)]
+ public List EntryPoints { get; set; }
+
+ public QsCompilation()
+ : this("Microsoft.Quantum.QsCompiler.BondSchemas.QsCompilation", "QsCompilation")
+ { }
+
+ protected QsCompilation(string fullName, string name)
+ {
+ Namespaces = new List();
+ EntryPoints = new List();
+ }
+ }
+} // Microsoft.Quantum.QsCompiler.BondSchemas