Enum qasmsim::grammar::lexer::Tok

source ·
#[non_exhaustive]
pub enum Tok {
Show 40 variants Add, Minus, Mult, Div, Pow, LBracket, RBracket, LBrace, RBrace, LParent, RParent, Semi, Comma, Arrow, Equal, Sin, Cos, Tan, Exp, Ln, Sqrt, ConstPi, U, CX, Opaque, Gate, Include, QReg, CReg, Measure, Reset, Barrier, If, QASMHeader, Version { repr: String, }, Id { repr: String, }, Int { repr: String, }, Real { repr: String, }, Str { repr: String, }, DocStr { repr: String, },
}
Expand description

Represent an OPENQASM language token.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

Add

The addition operator +.

§

Minus

The substraction operator -.

§

Mult

The multiplication operator *.

§

Div

The division operator /.

§

Pow

The power operator ^.

§

LBracket

The left square bracket [.

§

RBracket

The right square bracket ].

§

LBrace

The left curly bracket {.

§

RBrace

The right curly bracket }.

§

LParent

The left parenthesis (.

§

RParent

The right parenthesis ).

§

Semi

A semicolon ;.

§

Comma

A comma ,.

§

Arrow

The arrow symbol ->.

§

Equal

The equal symbol =.

§

Sin

The sinus function id sin.

§

Cos

The cosinus function id cos.

§

Tan

The tangent function id tan.

§

Exp

The exponential function id exp.

§

Ln

The natural logarithm id ln.

§

Sqrt

The square root function id sqrt.

§

ConstPi

The const pi.

§

U

The key-word U.

§

CX

The key-word CX.

§

Opaque

The key-word opaque.

§

Gate

The key-word gate.

§

Include

The key-word include.

§

QReg

The key-word qreg.

§

CReg

The key-word creg.

§

Measure

The key-word measure.

§

Reset

The key-word reset.

§

Barrier

The key-word barrier.

§

If

The key-word if.

§

QASMHeader

The QASM header OPENQASM.

§

Version

Fields

§repr: String

Version value.

The version of OPENQASM as X.Y.

§

Id

Fields

§repr: String

Identifier value.

An identifier. Identifiers in OPENQASM must start with underscore or a lower-case letter and may be followed by alphanumeric character, either upper or lower case.

§

Int

Fields

§repr: String

String representation of the interger as it appears in the source code.

An integer number.

§

Real

Fields

§repr: String

String representation of the real number as it appears in the source code.

A real number.

§

Str

Fields

§repr: String

The string as it appears in the source code.

A string of unicode characters.

§

DocStr

Fields

§repr: String

The string as it appears in the source code after stripping the comment marks \\ and including new lines. For instance, consider the following definition:

// The identity gate, matching the matrix:
// \[
//   \mathbb{I} =
//   \begin{bmatrix}
//     1 & & \\
//     & \ddots & \\
//     & & 1
//   \end{bmatrix}
// \]
gate id q {}

The DocString representation looks like:

 The identity gate, matching the matrix:
 \[
   \mathbb{I} =
   \begin{bmatrix}
     1 & & \\
     & \ddots & \\
     & & 1
   \end{bmatrix}
 \]

Notice the space preceding each line.

A string representing the documentation of a gate.

Trait Implementations§

source§

impl Clone for Tok

source§

fn clone(&self) -> Tok

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Tok

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for Tok

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Hash for Tok

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for Tok

source§

fn eq(&self, other: &Tok) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for Tok

source§

impl StructuralEq for Tok

source§

impl StructuralPartialEq for Tok

Auto Trait Implementations§

§

impl RefUnwindSafe for Tok

§

impl Send for Tok

§

impl Sync for Tok

§

impl Unpin for Tok

§

impl UnwindSafe for Tok

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for T
where T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V