Mercurial > repo
annotate bin/labels.pl @ 12265:984c8295238b draft
<b_jonas> slashlearn aoc/Advent of Code (AoC) is a series of programming puzzles that some regulars enjoy, found at "https://adventofcode.com/2019/about".
author | HackEso <hackeso@esolangs.org> |
---|---|
date | Mon, 16 Dec 2019 22:49:45 +0000 |
parents | b413473a9ec3 |
children |
rev | line source |
---|---|
12012
b413473a9ec3
<kspalaiologos> ` cp tmp/asmbf-1.1.1/labels.pl /hackenv/bin
HackEso <hackeso@esolangs.org>
parents:
diff
changeset
|
1 #!/usr/bin/perl |
b413473a9ec3
<kspalaiologos> ` cp tmp/asmbf-1.1.1/labels.pl /hackenv/bin
HackEso <hackeso@esolangs.org>
parents:
diff
changeset
|
2 |
b413473a9ec3
<kspalaiologos> ` cp tmp/asmbf-1.1.1/labels.pl /hackenv/bin
HackEso <hackeso@esolangs.org>
parents:
diff
changeset
|
3 # asm2bf label preprocessor. |
b413473a9ec3
<kspalaiologos> ` cp tmp/asmbf-1.1.1/labels.pl /hackenv/bin
HackEso <hackeso@esolangs.org>
parents:
diff
changeset
|
4 # C'mon, who doesn't love regexes? |
b413473a9ec3
<kspalaiologos> ` cp tmp/asmbf-1.1.1/labels.pl /hackenv/bin
HackEso <hackeso@esolangs.org>
parents:
diff
changeset
|
5 |
b413473a9ec3
<kspalaiologos> ` cp tmp/asmbf-1.1.1/labels.pl /hackenv/bin
HackEso <hackeso@esolangs.org>
parents:
diff
changeset
|
6 # Released to the public domain by Krzysztof Szewczyk. |
b413473a9ec3
<kspalaiologos> ` cp tmp/asmbf-1.1.1/labels.pl /hackenv/bin
HackEso <hackeso@esolangs.org>
parents:
diff
changeset
|
7 |
b413473a9ec3
<kspalaiologos> ` cp tmp/asmbf-1.1.1/labels.pl /hackenv/bin
HackEso <hackeso@esolangs.org>
parents:
diff
changeset
|
8 $n=0;%o=();$_=do{local$/;<>};s/^[ \t]*@([A-Za-z_]+).*$/$o{$1}=++$n;'lbl '.$n."\n";/gem; |
b413473a9ec3
<kspalaiologos> ` cp tmp/asmbf-1.1.1/labels.pl /hackenv/bin
HackEso <hackeso@esolangs.org>
parents:
diff
changeset
|
9 s/(%[A-Za-z_]+|"[^"\n]*%[A-Za-z_]+)/substr($1,0,1)eq'"'?$1:%o{substr$1,1}/ge;print; |