[viv] Add an option to select syml cache root
[pugs.git] / src / perl6 / std
blobd5165ce4b3959fd57232c63b664993dbd9426651
1 #!/usr/bin/env perl
3 BEGIN {
4 use FindBin;
5 use File::Spec;
6 unshift @INC, $FindBin::Bin;
7 if (@ARGV >= 1 && $ARGV[0] eq '--boot') {
8 shift @ARGV;
9 unshift @INC, File::Spec->catdir($FindBin::Bin, "boot");
10 $CursorBase::SET_STD5PREFIX = "boot";
12 if (@ARGV >= 1 && $ARGV[0] eq '--clear-inc') {
13 $CursorBase::SET_PERL6LIB = [ ];
14 shift @ARGV;
16 while (@ARGV >= 2 && $ARGV[0] eq '--inc') {
17 push @$CursorBase::SET_PERL6LIB, $ARGV[1];
18 splice @ARGV, 0, 2;
22 use STD;
23 use utf8;
25 use Actions;
27 my $failures = 0;
29 @ARGV = 'CORE.setting' unless @ARGV;
31 for my $file (@ARGV) {
32 warn $file,"\n" if @ARGV > 1;
33 my $setting = "CORE";
34 $setting = "NULL" if $file eq 'CORE.setting';
35 my $r;
36 eval {
37 $r = STD->parsefile($file, setting => $setting, actions => 'Actions')->{'_ast'};
39 if ($@) {
40 warn $@;
41 $failures++;
44 my ($time, $vsz) = split(' ', `ps -o "time= vsz=" $$`);
45 $time =~ s/^00://;
46 $vsz =~ s/\d\d\d$/m/;
47 if ($failures) {
48 if ($vsz) {
49 warn "std FAILED $time $vsz @ARGV\n";
51 else {
52 warn "std FAILED @ARGV\n";
54 exit $failures;
56 elsif ($vsz) {
57 warn "ok $time $vsz @ARGV\n";
59 else {
60 warn "ok @ARGV\n";
63 { package VAST::Additive; }
64 { package VAST::Autoincrement; }
65 { package VAST::Base; }
66 { package VAST::Chaining; }
67 { package VAST::Comma; }
68 { package VAST::Concatenation; }
69 { package VAST::Conditional; }
70 { package VAST::Exponentiation; }
71 { package VAST::Item_assignment; }
72 { package VAST::Junctive_and; }
73 { package VAST::Junctive_or; }
74 { package VAST::List_assignment; }
75 { package VAST::List_infix; }
76 { package VAST::List_prefix; }
77 { package VAST::Loose_and; }
78 { package VAST::Loose_or; }
79 { package VAST::Loose_unary; }
80 { package VAST::Methodcall; }
81 { package VAST::Multiplicative; }
82 { package VAST::Named_unary; }
83 { package VAST::Replication; }
84 { package VAST::Sequencer; }
85 { package VAST::Structural_infix; }
86 { package VAST::Symbolic_unary; }
87 { package VAST::Term; }
88 { package VAST::Tight_and; }
89 { package VAST::Tight_or; }