parse

Function parse 

Source
pub fn parse<'t, I>(
    tokens: TokenTree<'t, I>,
) -> Result<Vec<AstNode<'t>>, Error<'_>>
where I: Iterator<Item = Token<'t>>,
Expand description

Changes a vector of tokens into an AST.

Parsing is done with the parse function. It accepts a vector of Tokens and returns a vector of AstNodes or an Error as a result

ยงExample

extern crate qasm;

let mut tokens = vec![
    qasm::Token::OpenQASM,
    qasm::Token::Real(2.0),
    qasm::Token::Semicolon,
    qasm::Token::QReg,
    qasm::Token::Id("a".to_string()),
    qasm::Token::LSParen,
    qasm::Token::NNInteger(3),
    qasm::Token::RSParen,
    qasm::Token::Semicolon,
    qasm::Token::Id("CX".to_string()),
    qasm::Token::Id("a".to_string()),
    qasm::Token::LSParen,
    qasm::Token::NNInteger(0),
    qasm::Token::RSParen,
    qasm::Token::Comma,
    qasm::Token::Id("a".to_string()),
    qasm::Token::LSParen,
    qasm::Token::NNInteger(1),
    qasm::Token::RSParen,
    qasm::Token::Semicolon,
];
let ast = qasm::parse(&mut tokens);

// Ok([QReg("a", 3), ApplyGate("CX", [Qubit("a", 0), Qubit("a", 1)], [])])