Function qasm::parse [] [src]

pub fn parse(tokens: &mut Vec<Token>) -> Result<Vec<AstNode>, Error>

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)], [])])