strykelang 0.7.2

A highly parallel Perl 5 interpreter written in Rust
Documentation
// Generated parse smoke tests — each must parse.
use crate::parse;

macro_rules! parse_smoke_cases {
    ($($name:ident => $src:expr;)*) => {
        $(#[test] fn $name() { parse($src).expect("parse"); })*
    };
}

parse_smoke_cases! {
    parse_smoke_001 => "1;";
    parse_smoke_002 => "-1;";
    parse_smoke_003 => "0.5;";
    parse_smoke_004 => "1e3;";
    parse_smoke_005 => "0x10;";
    parse_smoke_006 => "0b11;";
    parse_smoke_007 => "077;";
    parse_smoke_008 => "\"a\";";
    parse_smoke_009 => "'b';";
    parse_smoke_010 => "qq(c);";
    parse_smoke_011 => "q{d};";
    parse_smoke_012 => "my $x;";
    parse_smoke_013 => "my $x = 1;";
    parse_smoke_014 => "my @a;";
    parse_smoke_015 => "my %h;";
    parse_smoke_016 => "our $o;";
    parse_smoke_017 => "local $l;";
    parse_smoke_018 => "$x = 2;";
    parse_smoke_019 => "@a = (1,2);";
    parse_smoke_020 => "%h = (a => 1);";
    parse_smoke_021 => "if (1) { 1; }";
    parse_smoke_022 => "unless (0) { 1; }";
    parse_smoke_023 => "while (0) { }";
    parse_smoke_024 => "until (1) { }";
    parse_smoke_025 => "for (my $i=0; $i<1; $i++) { }";
    parse_smoke_026 => "foreach my $v (1) { }";
    parse_smoke_027 => "do { 1 } while (0);";
    parse_smoke_028 => "do { 1 };";
    parse_smoke_029 => "if (1) { } elsif (0) { } else { }";
    parse_smoke_030 => "print 1;";
    parse_smoke_031 => "say 1;";
    parse_smoke_032 => "printf '%d', 1;";
    parse_smoke_033 => "m/foo/;";
    parse_smoke_034 => "m#bar#;";
    parse_smoke_035 => "s/a/b/;";
    parse_smoke_036 => "qr/x/;";
    parse_smoke_037 => "qr{y}i;";
    parse_smoke_038 => "y/a/b/;";
    parse_smoke_039 => "tr/a/b/;";
    parse_smoke_040 => "grep { $_ } (1);";
    parse_smoke_041 => "map { $_ } (1);";
    parse_smoke_042 => "sort (1,2);";
    parse_smoke_043 => "keys %h;";
    parse_smoke_044 => "values %h;";
    parse_smoke_045 => "each %h;";
    parse_smoke_046 => "delete $h{k};";
    parse_smoke_047 => "exists $h{k};";
    parse_smoke_048 => "push @a, 1;";
    parse_smoke_049 => "pop @a;";
    parse_smoke_050 => "shift @a;";
    parse_smoke_051 => "unshift @a, 1;";
    parse_smoke_052 => "splice @a, 0, 1;";
    parse_smoke_053 => "scalar @a;";
    parse_smoke_054 => "scalar %h;";
    parse_smoke_055 => "defined $x;";
    parse_smoke_056 => "undef $x;";
    parse_smoke_057 => "ref $x;";
    parse_smoke_058 => "bless {}, 'C';";
    parse_smoke_059 => "caller();";
    parse_smoke_060 => "eval '1';";
    parse_smoke_061 => "eval { 1 };";
    parse_smoke_062 => "require strict;";
    parse_smoke_063 => "do 'f.pl';";
    parse_smoke_064 => "use strict;";
    parse_smoke_065 => "no warnings;";
    parse_smoke_066 => "package P;";
    parse_smoke_067 => "package Q::R;";
    parse_smoke_068 => "sub f { }";
    parse_smoke_069 => "sub g { }";
    parse_smoke_070 => "return;";
    parse_smoke_071 => "return 1;";
    parse_smoke_072 => "last;";
    parse_smoke_073 => "next;";
    parse_smoke_074 => "redo;";
    parse_smoke_075 => "next if 0;";
    parse_smoke_076 => "BEGIN { }";
    parse_smoke_077 => "END { }";
    parse_smoke_078 => "chomp $x;";
    parse_smoke_079 => "chop $x;";
    parse_smoke_080 => "length $x;";
    parse_smoke_081 => "substr $x, 0, 1;";
    parse_smoke_082 => "index 'a','a';";
    parse_smoke_083 => "rindex 'a','a';";
    parse_smoke_084 => "sprintf '%d', 1;";
    parse_smoke_085 => "lc 'A';";
    parse_smoke_086 => "uc 'a';";
    parse_smoke_087 => "lcfirst 'a';";
    parse_smoke_088 => "ucfirst 'a';";
    parse_smoke_089 => "hex '10';";
    parse_smoke_090 => "oct '10';";
    parse_smoke_091 => "int 1.2;";
    parse_smoke_092 => "abs -1;";
    parse_smoke_093 => "sqrt 4;";
    parse_smoke_094 => "chr 65;";
    parse_smoke_095 => "ord 'A';";
    parse_smoke_096 => "join ',', (1,2);";
    parse_smoke_097 => "split /,/, 'a,b';";
    parse_smoke_098 => "reverse (1,2);";
    parse_smoke_099 => "sort { $a <=> $b } (2,1);";
    parse_smoke_100 => "grep { $_ =~ /./ } (1);";
    parse_smoke_101 => "map { $_ * 2 } (1);";
    parse_smoke_102 => "open F, '<', 'x';";
    parse_smoke_103 => "close F;";
    parse_smoke_104 => "eof;";
    parse_smoke_105 => "tell F;";
    parse_smoke_106 => "mkdir 'x';";
    parse_smoke_107 => "rmdir 'x';";
    parse_smoke_108 => "unlink 'x';";
    parse_smoke_109 => "chdir '.';";
    parse_smoke_110 => "system 'true';";
    parse_smoke_111 => "exec 'true';";
    parse_smoke_112 => "exit;";
    parse_smoke_113 => "exit 0;";
}