. for /usr/share/misc/style, NetBSD coding style . and for indent.pro (style-compatible indent(1) indenting profile)
		
			
				
	
	
		
			71 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Awk
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Awk
		
	
	
	
	
	
# $NetBSD: nanpa.awk,v 1.2 2003/03/13 02:55:01 jhawk Exp $
 | 
						|
#
 | 
						|
# todo:
 | 
						|
#	parse "http://docs.nanpa.com/cgi-bin/npa_reports/nanpa?
 | 
						|
#	    function=list_npa_introduced" to produce parenthetical
 | 
						|
#	    notes about what area codes are overlayed by others
 | 
						|
#	    (or split from).
 | 
						|
#
 | 
						|
function parse(file, ispipe, isplanning,	i, planinit, t)
 | 
						|
{
 | 
						|
	planinit = 0;
 | 
						|
	while((ispipe?(file | getline):(getline < file)) > 0) {
 | 
						|
		sub(/#.*/, "");
 | 
						|
		if (length($0)==0) continue;
 | 
						|
		if (isplanning) {
 | 
						|
			split($0, f);
 | 
						|
			if (!planinit && f[2]=="NEW NPA") {
 | 
						|
				planinit=1;
 | 
						|
				for (i=1; i<=NF; i++)
 | 
						|
					fnames[$i]=i-1;
 | 
						|
			} else if (planinit && length(f[fnames["NEW NPA"]])>1) {
 | 
						|
				t = f[fnames["LOCATION"]] FS;
 | 
						|
				if (f[fnames["OVERLAY?"]]=="Yes")
 | 
						|
				  t = t "Overlay of " f[fnames["OLD NPA"]];
 | 
						|
				else if (f[fnames["OLD NPA"]])
 | 
						|
				  t = t "Split of " f[fnames["OLD NPA"]];
 | 
						|
				if (f[fnames["STATUS"]])
 | 
						|
					t = t " (" f[fnames["STATUS"]] ")";
 | 
						|
				if (length(f[fnames["IN SERVICE DATE"]]) > 1)
 | 
						|
					t = t " effective " \
 | 
						|
					    f[fnames["IN SERVICE DATE"]];
 | 
						|
				data[f[fnames["NEW NPA"]] "*"] = t;
 | 
						|
			}
 | 
						|
		} else {
 | 
						|
			# digits only
 | 
						|
			match($0, /^[0-9]/);
 | 
						|
			if (RSTART==0) continue;
 | 
						|
			i=index($0, FS);
 | 
						|
			data[substr($0, 1, i-1)]=substr($0,i+1);
 | 
						|
		}
 | 
						|
	}
 | 
						|
	close(file);
 | 
						|
}
 | 
						|
 | 
						|
BEGIN{
 | 
						|
	FS=":"
 | 
						|
	print "# $""NetBSD: $";
 | 
						|
	print "# Generated from http://www.nanpa.com/area_codes/index.html";
 | 
						|
	print "# (with local exceptions)";
 | 
						|
	print "# ";
 | 
						|
	print "# format:";
 | 
						|
	print "#   Area Code : Description : Detail : State/Province Abbrev.";
 | 
						|
	print "#   (3rd and 4th fields optional)";
 | 
						|
	print "#   A * in the Area Code field indicates a future area code."
 | 
						|
	print "# ";
 | 
						|
	parse("ftp -o - " \
 | 
						|
	    "http://docs.nanpa.com/cgi-bin/npa_reports/nanpa\\?" \
 | 
						|
	    "function=list_npa_geo_number | sed -f nanpa.sed", 1, 0);
 | 
						|
	parse("ftp -o - " \
 | 
						|
	    "http://docs.nanpa.com/cgi-bin/npa_reports/nanpa\\?" \
 | 
						|
	    "function=list_npa_non_geo | sed -f nanpa.sed", 1, 0);
 | 
						|
	parse("ftp -o - " \
 | 
						|
	    "http://docs.nanpa.com/cgi-bin/npa_reports/nanpa\\?" \
 | 
						|
	    "function=list_npa_not_in_service | sed -f nanpa.sed", 1, 1);
 | 
						|
	parse("na.phone.add", 0, 0);
 | 
						|
	sort="sort -n";
 | 
						|
	for (i in data)
 | 
						|
		print i FS data[i] | sort
 | 
						|
	close(sort);
 | 
						|
}
 |