/
main.nqp
39 lines (33 loc) · 1.05 KB
/
main.nqp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
use Perl6::Grammar;
use Perl6::Actions;
use Perl6::Compiler;
sub MAIN(@ARGS) {
# Initialize dynops.
pir::rakudo_dynop_setup__v();
# Create and configure compiler object.
my $comp := Perl6::Compiler.new();
$comp.language('perl6');
$comp.parsegrammar(Perl6::Grammar);
$comp.parseactions(Perl6::Actions);
$comp.addstage('syntaxcheck', :before<past>);
$comp.addstage('optimize', :before<post>);
hll-config($comp.config);
my $COMPILER_CONFIG := $comp.config;
# Add extra command line options.
my @clo := $comp.commandline_options();
@clo.push('parsetrace');
@clo.push('setting=s');
@clo.push('n');
@clo.push('p');
@clo.push('doc=s?');
@clo.push('optimize=s?');
@clo.push('c');
@clo.push('I=s');
@clo.push('M=s');
# Set up END block list, which we'll run at exit.
my @*END_PHASERS := [];
# Enter the compiler.
$comp.command_line(@ARGS, :encoding('utf8'), :transcode('ascii iso-8859-1'));
# Run any END blocks before exiting.
for @*END_PHASERS { $_() }
}