Compiler/AST interpreter: Difference between revisions

Content added Content deleted
Line 1,384: Line 1,384:
my $line = <> // die "incomplete tree\n";
my $line = <> // die "incomplete tree\n";
(local $_, my $arg) = $line =~ /^(\w+|;)\s+(.*)/ or die "bad input $line";
(local $_, my $arg) = $line =~ /^(\w+|;)\s+(.*)/ or die "bad input $line";
/String/ ? bless [$arg =~ tr/\042//dr =~ s/\\(.)/$1 eq 'n' ? "\n" : $1/ger], $_ :
/String/ ? bless [$arg =~ tr/""//dr =~ s/\\(.)/$1 eq 'n' ? "\n" : $1/ger], $_ :
/Identifier|Integer/ ? bless [ $arg ], $_ :
/Identifier|Integer/ ? bless [ $arg ], $_ :
/;/ ? bless [], 'Null' :
/;/ ? bless [], 'Null' :