43 lines · 848 B · Brainfuck
RawDownload
## Generate symbol table file (.sbl).# SBLVERSION:	con "limbo .sbl 2.0";EXT:		con ".sbl"; sblout(out: string){	n: int;	sym: string;	bsym: ref Bufio->Iobuf; 	n = len out;	if(n > 2 && out[n-1] == 's') {		# .s or .dis file ?		if(out[n-2] == '.')			n -= 2;		else if(n > 4 && out[n-2] == 'i'		&& out[n-3] == 'd' && out[n-4] == '.')			n -= 4;	}	sym = out[0:n] + EXT; 	bsym = bufio->create(sym, Bufio->OWRITE, 8r644);	if(bsym == nil)		fatal("can't open " + sym + ": " + sprint("%r")); 	bsym.puts(SBLVERSION + "\n");	bsym.puts(THISCLASS + "\n");	bsym.puts("1\n");	s: string;	if(class.source_file)		s = STRING(class.source_file) + "\n";	else		s = THISCLASS + ".java\n";	bsym.puts(s);	sblinst(bsym);			# Dis instructions	bsym.puts("0\n");		# adts	sbllinks(bsym);			# functions	bsym.puts("0\n");		# globals 	bsym.close();}