Toggle navigation
Home
Latest pastes
FAQ
Random
BitBin is shutting down!
Register
Login
AoC day 18 (pt1), Perl (dc transpiler)
SUBMITTED BY:
PCSlim
DATE:
Dec. 19, 2020, 3:52 a.m.
FORMAT:
Perl
SIZE:
570 Bytes
Raw
Download
Tweet
HITS:
521
Go to comments
Report
#!/usr/bin/perl
use
strict
;
use
warnings
;
print
"0\n"
;
while
(
<>
)
{
chomp
;
my
@stack
;
# assuming only one digit numbers
foreach
my
$tok
(
reverse
split
(
/ */
))
{
if
(
$tok
=~
m
#[0-9]#) {
print
"$tok "
;
}
elsif
(
$tok
eq
'('
)
{
# parsing backwards, so ( is close, and ( is open
while
((
my
$pop
=
pop
@stack
)
ne
')'
)
{
print
$pop
;
}
}
else
{
push
(
@stack
,
$tok
);
}
}
print
reverse
(
@stack
),
"+\n"
;
}
print
"p\n"
;
Please enable JavaScript to view the
comments powered by Disqus.
comments powered by
Disqus