backyard-parser 0.1.10

Parse PHP code to AST node.
Documentation
use backyard_parser::parse_eval;

#[test]
fn basic() {
  let arena = bumpalo::Bump::new();
  let asts = parse_eval(&arena, "if (false) {}").unwrap();
  insta::assert_yaml_snapshot!(asts);
}

#[test]
fn with_else() {
  let arena = bumpalo::Bump::new();
  let asts = parse_eval(&arena, "if (false) {} else {}").unwrap();
  insta::assert_yaml_snapshot!(asts);
}

#[test]
fn with_elseif() {
  let arena = bumpalo::Bump::new();
  let asts = parse_eval(&arena, "if (false) {} elseif (true) {}").unwrap();
  insta::assert_yaml_snapshot!(asts);
}

#[test]
fn with_else_if() {
  let arena = bumpalo::Bump::new();
  let asts = parse_eval(&arena, "if (false) {} else if (true) {}").unwrap();
  insta::assert_yaml_snapshot!(asts);
}

#[test]
fn nested() {
  let arena = bumpalo::Bump::new();
  let asts = parse_eval(
    &arena,
    "if (false) {if (false) {} else (true) {}} else if (true) {}"
  ).unwrap();
  insta::assert_yaml_snapshot!(asts);
}

#[test]
fn no_block() {
  let arena = bumpalo::Bump::new();
  let asts = parse_eval(&arena, "if (false) $e = 5; else if (true) $e = 6;").unwrap();
  insta::assert_yaml_snapshot!(asts);
}

#[test]
fn short() {
  let arena = bumpalo::Bump::new();
  let asts = parse_eval(&arena, "if (true): elseif (false): else: endif;").unwrap();
  insta::assert_yaml_snapshot!(asts);
}