pub fn parse(tokens: &mut Vec<Token>) -> Result<Vec<AstNode>, 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)], [])])