Mercurial > repo
annotate bin/labels.pl @ 12262:6908a7095bcd draft
<int-e> sled ../bin/"//s=-r=--r=
author | HackEso <hackeso@esolangs.org> |
---|---|
date | Sun, 08 Dec 2019 00:00:47 +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; |