Whiteのふりーとーく

そろそろ欲しくなってきた

About this Page |過去分一覧

近頃版/another blog@hatena/Wiki/BBS

< 半分休み | ISBN10 / ISBN13 convert by perl >

 

そろそろ欲しくなってきた

define SYMBOL = {
  ...
}
...
Page view0{
    SYMBOL
}

上記のような記法で書かれたマクロ記述を超いいかげんに読み取り/適用するperlスクリプトを書いた。少し前から仕事で使っている。

#!/usr/bin/perl
use strict;
my(%macro_define);
my($macro_pattern);
while(<>){
    if(/define\s*(\w+)\s*=\s*\{/){
	my $macro = $1;
	my $define;
	my $count = 0;
	while(<>){
	    if(/\{/){
		$count++;
	    }
	    if(/\}/){
		$count--;
		last if $count < 0;
	    }
	    $define .= $_;
	}
	$macro_define{$macro} = $define;
	$macro_pattern = join('|', sort {length($b) <=> length($a);} keys %macro_define);
	next;
    }
    while(s/($macro_pattern)\n*/$macro_define{$1}/eg){};
    print;
}

_しかしこんなインチキで漏れも多いものじゃなくてもう少しマシなマクロが欲しくなってきた気もする。というか、本当に必要なのはコンパイラ(トランスレータ?)を簡単に作るためのパーサーコアか?

素直にschemeかなんかを使えるようになれよ、という話かもしれないけど。

TrackBack ping url:

名前

TrackBack:


御意見・御感想の宛先white@niu.ne.jp