pub fn parse<'t, I>(
tokens: TokenTree<'t, I>,
) -> Result<Vec<AstNode<'t>>, Error<'_>>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)], [])])