use crate::parse;
macro_rules! parse_batch2 {
($($name:ident => $src:expr;)*) => {
$(#[test] fn $name() { parse($src).expect("parse"); })*
};
}
parse_batch2! {
parse_batch2_001 => "3 + 4;";
parse_batch2_002 => "10 - 3;";
parse_batch2_003 => "6 * 7;";
parse_batch2_004 => "15 / 3;";
parse_batch2_005 => "17 % 5;";
parse_batch2_006 => "2 ** 10;";
parse_batch2_007 => "2 ** 3 ** 2;";
parse_batch2_008 => "(2 + 3) * 4;";
parse_batch2_009 => "5 == 5;";
parse_batch2_010 => "5 != 3;";
parse_batch2_011 => "3 < 5;";
parse_batch2_012 => "5 > 3;";
parse_batch2_013 => "5 <= 3;";
parse_batch2_014 => "3 <= 5;";
parse_batch2_015 => "5 >= 5;";
parse_batch2_016 => "5 <=> 3;";
parse_batch2_017 => "3 <=> 5;";
parse_batch2_018 => "5 <=> 5;";
parse_batch2_019 => r#""b" ge "a";"#;
parse_batch2_020 => r#""a" le "b";"#;
parse_batch2_021 => r#""abc" gt "abb";"#;
parse_batch2_022 => r#""a" eq "a";"#;
parse_batch2_023 => r#""a" ne "b";"#;
parse_batch2_024 => r#""a" lt "b";"#;
parse_batch2_025 => r#""b" gt "a";"#;
parse_batch2_026 => r#""a" cmp "b";"#;
parse_batch2_027 => "1 && 5;";
parse_batch2_028 => "0 && 5;";
parse_batch2_029 => "0 || 7;";
parse_batch2_030 => "3 || 7;";
parse_batch2_031 => "undef // 5;";
parse_batch2_032 => "0 // 5;";
parse_batch2_033 => "1 and 2;";
parse_batch2_034 => "0 or 9;";
parse_batch2_035 => "not 0;";
parse_batch2_036 => "not 1;";
parse_batch2_037 => "!1;";
parse_batch2_038 => "!0;";
parse_batch2_039 => "0x0f & 0x33;";
parse_batch2_040 => "0x10 | 0x01;";
parse_batch2_041 => "0b1010 ^ 0b1100;";
parse_batch2_042 => "32 >> 3;";
parse_batch2_043 => "1 << 4;";
parse_batch2_044 => "~0;";
parse_batch2_045 => "0 - -1;";
parse_batch2_046 => "-42;";
parse_batch2_047 => r#""a" . "b";"#;
parse_batch2_048 => r#""x" x 3;"#;
parse_batch2_049 => "1 ? 2 : 3;";
parse_batch2_050 => r#""0" ? 1 : 0;"#;
parse_batch2_051 => "0xff;";
parse_batch2_052 => "0b1010;";
parse_batch2_053 => "7 / 2;";
parse_batch2_054 => "my $x = 10; $x += 3;";
parse_batch2_055 => "my $x = 10; $x -= 4;";
parse_batch2_056 => "my $x = 2; $x *= 3;";
parse_batch2_057 => "my $x = 2; $x **= 3;";
parse_batch2_058 => "my $x = 10; $x %= 3;";
parse_batch2_059 => r#"my $s = "a"; $s .= "b";"#;
parse_batch2_060 => "my $x = 1; ++$x;";
parse_batch2_061 => "my $x = 1; $x++;";
parse_batch2_062 => "my $x = 3; --$x;";
parse_batch2_063 => "my $x = 3; $x--;";
parse_batch2_064 => "my $x = 10; if ($x > 5) { 1 } else { 0 };";
parse_batch2_065 => "my $x = 2; if ($x == 0) { 0 } elsif ($x == 1) { 1 } elsif ($x == 2) { 2 } else { 9 };";
parse_batch2_066 => "my $x = 3; unless ($x > 5) { 1 } else { 0 };";
parse_batch2_067 => "my $i = 0; my $sum = 0; while ($i < 10) { $sum = $sum + $i; $i = $i + 1; }";
parse_batch2_068 => "my $i = 0; until ($i >= 4) { $i = $i + 1; }";
parse_batch2_069 => "my $sum = 0; for (my $i = 0; $i < 5; $i = $i + 1) { $sum = $sum + $i; }";
parse_batch2_070 => "my $sum = 0; foreach my $x (1,2,3,4,5) { $sum = $sum + $x; }";
parse_batch2_071 => "my $sum = 0; foreach (1,2,3) { $sum = $sum + $_ }";
parse_batch2_072 => "my $sum = 0; $sum = $sum + $_ for 1,2,3;";
parse_batch2_073 => "my $x = 0; $x = 1 if 1 > 0;";
parse_batch2_074 => "my $x = 0; $x = 1 unless 0;";
parse_batch2_075 => "my $x = 0; $x++ while $x < 4;";
parse_batch2_076 => "my $x = 0; $x++ until $x >= 4;";
parse_batch2_077 => "for my $i (1..10) { last if $i > 5; }";
parse_batch2_078 => "for my $i (1..10) { next if $i % 2 == 0; }";
parse_batch2_079 => "(1, 2, 3);";
parse_batch2_080 => "1..10;";
parse_batch2_081 => "my @a = (1, 2, 3);";
parse_batch2_082 => "$a[0];";
parse_batch2_083 => "$h{key};";
parse_batch2_084 => "keys %h;";
parse_batch2_085 => "values %h;";
parse_batch2_086 => "scalar @a;";
parse_batch2_087 => "scalar %h;";
parse_batch2_088 => "defined $x;";
parse_batch2_089 => "wantarray;";
parse_batch2_090 => "caller();";
parse_batch2_091 => "time();";
parse_batch2_092 => "rand();";
parse_batch2_093 => "srand();";
parse_batch2_094 => "cos(0);";
parse_batch2_095 => "sin(0);";
parse_batch2_096 => "exp(0);";
parse_batch2_097 => "log(1);";
parse_batch2_098 => "my $r = qr/abc/;";
parse_batch2_099 => "m/\\d+/;";
parse_batch2_100 => "s/^/x/;";
}
parse_batch2! {
parse_batch2_101 => "split /\\s+/, 'a b';";
parse_batch2_102 => "join '-', ('a', 'b');";
parse_batch2_103 => "reverse (1, 2, 3);";
parse_batch2_104 => "sort (3, 1, 2);";
parse_batch2_105 => "grep { $_ > 0 } (1, -1, 2);";
parse_batch2_106 => "map { $_ * 2 } (1, 2);";
parse_batch2_107 => "pack 'C*', 65, 66;";
parse_batch2_108 => "unpack 'C', 'A';";
parse_batch2_109 => "vec($v, 0, 8);";
parse_batch2_110 => "index 'perl', 'e';";
parse_batch2_111 => "rindex 'ababa', 'a';";
parse_batch2_112 => "length 'abc';";
parse_batch2_113 => r#"substr 'hello', 0, 2;"#;
parse_batch2_114 => "chomp $x;";
parse_batch2_115 => "chop $x;";
parse_batch2_116 => "sprintf '%02d', 3;";
parse_batch2_117 => "printf '%d', 1;";
parse_batch2_118 => "warn 'x';";
parse_batch2_119 => "die 'x';";
parse_batch2_120 => "exit 0;";
parse_batch2_121 => "return;";
parse_batch2_122 => "return 1;";
parse_batch2_123 => "next;";
parse_batch2_124 => "last;";
parse_batch2_125 => "redo;";
parse_batch2_126 => "continue { }";
parse_batch2_127 => "ucfirst 'a';";
parse_batch2_128 => "use strict;";
parse_batch2_129 => "no strict;";
parse_batch2_130 => "use warnings;";
parse_batch2_131 => "no warnings;";
parse_batch2_132 => "require 5;";
parse_batch2_133 => "do { my $x = 1; $x; };";
parse_batch2_134 => "eval { 1; };";
parse_batch2_135 => "eval '1';";
parse_batch2_136 => "bless {}, 'Pkg';";
parse_batch2_137 => "ref $x;";
parse_batch2_138 => "tie %h, 'Tie::Std';";
parse_batch2_139 => "untie $x;";
parse_batch2_140 => "select STDOUT;";
parse_batch2_141 => "select STDERR;";
parse_batch2_142 => "binmode STDOUT;";
parse_batch2_143 => "truncate F, 0;";
parse_batch2_144 => "rename 'a', 'b';";
parse_batch2_145 => "link 'a', 'b';";
parse_batch2_146 => "symlink 'a', 'b';";
parse_batch2_147 => "readlink 'x';";
parse_batch2_148 => "stat 'x';";
parse_batch2_149 => "lstat 'x';";
parse_batch2_150 => "utime 1, 2, 'f';";
parse_batch2_151 => "chmod 0755, 'f';";
parse_batch2_152 => "chown 0, 0, 'f';";
parse_batch2_153 => "opendir D, '.';";
parse_batch2_154 => "readdir D;";
parse_batch2_155 => "rewinddir D;";
parse_batch2_156 => "closedir D;";
parse_batch2_157 => "telldir D;";
parse_batch2_158 => "seekdir D, 0;";
parse_batch2_159 => "alarm 1;";
parse_batch2_160 => "sleep 0;";
parse_batch2_161 => "getppid();";
parse_batch2_162 => "getpgrp();";
parse_batch2_163 => "setpgrp();";
parse_batch2_164 => "getpriority 0, 0;";
parse_batch2_165 => "setpriority 0, 0, 0;";
parse_batch2_166 => "times();";
parse_batch2_167 => "localtime();";
parse_batch2_168 => "gmtime();";
parse_batch2_169 => "time();";
parse_batch2_170 => "getlogin();";
parse_batch2_171 => "getpwuid 0;";
parse_batch2_172 => "getpwnam 'root';";
parse_batch2_173 => "getgrgid 0;";
parse_batch2_174 => "getgrnam 'wheel';";
parse_batch2_175 => "gethostbyname 'localhost';";
parse_batch2_176 => "getprotobyname 'tcp';";
parse_batch2_177 => "getservbyname 'http', 'tcp';";
parse_batch2_178 => "socket S, 2, 1, 0;";
parse_batch2_179 => "bind S, $addr;";
parse_batch2_180 => "listen S, 5;";
parse_batch2_181 => "accept NS, S;";
parse_batch2_182 => "connect S, $addr;";
parse_batch2_183 => "shutdown S, 2;";
parse_batch2_184 => "setsockopt S, 1, 1, 1;";
parse_batch2_185 => "getsockopt S, 1, 1;";
parse_batch2_186 => "getpeername S;";
parse_batch2_187 => "getsockname S;";
parse_batch2_188 => "send S, 'x', 0;";
parse_batch2_189 => "recv S, $buf, 100, 0;";
parse_batch2_190 => "fork();";
parse_batch2_191 => "wait();";
parse_batch2_192 => "waitpid -1, 0;";
parse_batch2_193 => "pipe R, W;";
parse_batch2_194 => "open2 R, W, 'true';";
parse_batch2_195 => "qx(true);";
parse_batch2_196 => "`true`;";
parse_batch2_197 => "readline F;";
parse_batch2_198 => "getc F;";
parse_batch2_199 => "read F, $buf, 10;";
parse_batch2_200 => "sysread F, $buf, 10, 0;";
}