#!/usr/bin/perl -p

# an array, not a hash. because order is important
@trans_table=(
	'\bmy\b' => 'me',
	'\bboss\b' => 'admiral',
	'\bmanager\b' => 'admiral',
	'\b[Cc]aptain\b' => "Cap'n",
	'\bmyself\b' => 'meself',
	'\byour\b' => 'yer',
	'\byou\b' => 'ye',
	'\bfriend\b' => 'matey',
	'\bfriends\b' => 'maties',
	'\bco[-]?worker\b' => 'shipmate',
	'\bco[-]?workers\b' => 'shipmates',
	'\bearlier\b' => 'afore',
	'\bold\b' => 'auld',
	'\bthe\b' => "th'",
	'\bof\b' =>  "o'",
	'\bdon\'t\b' => "dern't",
	'\bdo not\b' => "dern't",
	'\bnever\b' => "no nay ne'er",
	'\bever\b' => "e'er",
	'\bover\b' => "o'er",
	'\bYes\b' => 'Aye',
	'\bNo\b' => 'Nay',
	'\bdon\'t know\b' => "dinna",
	'\bhadn\'t\b' => "ha'nae",
	'\bdidn\'t\b' =>  "di'nae",
	'\bwasn\'t\b' => "weren't",
	'\bhaven\'t\b' => "ha'nae",
	'\bfor\b' => 'fer',
	'\bbetween\b' => 'betwixt',
	'\baround\b' => "aroun'",
	'\bto\b' => "t'",
	'\bit\'s\b' => "'tis",
	'\bIt\'s\b' => 'It be',
	'\bwoman\b' => 'wench',
	'\blady\b' => 'wench',
	'\bwife\b' => 'lady',
	'\bgirl\b' => 'lass',
	'\bgirls\b' => 'lassies',
	'\bguy\b' => 'lubber',
	'\bman\b' => 'lubber',
	'\bfellow\b' => 'lubber',
	'\bdude\b' => 'lubber',
	'\bboy\b' => 'lad',
	'\bboys\b' => 'laddies',
	'\bchildren\b' => 'minnows',
	'\bkids\b' => 'minnows',
	'\bhim\b' => 'that scurvey dog',
	'\bher\b' => 'that comely wench',
	'\bhim\.\b' => 'that drunken sailor',
	'\bHe\b' => 'The ornery cuss',
	'\bShe\b' => 'The winsome lass',
	'\bhe\'s\b' => 'he be',
	'\bshe\'s\b' => 'she be',
	'\bwas\b' => "were bein'",
	'\bHey\b' => 'Avast',
	'\bher\.\b' => 'that lovely lass',
	'\bfood\b' => 'chow',
	'\broad\b' => 'sea',
	'\broads\b' => 'seas',
	'\bstreet\b' => 'river',
	'\bstreets\b' => 'rivers',
	'\bhighway\b' => 'ocean',
	'\bhighways\b' => 'oceans',
	'\bcar\b' => 'boat',
	'\bcars\b' => 'boats',
	'\btruck\b' => 'schooner',
	'\btrucks\b' => 'schooners',
	'\bSUV\b' => 'ship',
	'\bmachine\b' => 'contraption',
	'\bairplane\b' => 'flying machine',
	'\bjet\b' => 'flying machine',
	'\bdriving\b' => 'sailing',
	'\bdrive\b' => 'sail',
	'\bwith\b' => "wi'",
	'\bam\b' => 'be',
	'\bis\b' => 'be',
	'\bare\b' => 'be',
	'\bwas\b' => 'be',
	'\bwere\b' => 'be',
	'\bwere\b' => 'be',
);

while (@trans_table) {
	$key=shift @trans_table;
	$value=shift @trans_table;
	s/$key/$value/g;
}

s/ing\b/in'/g;
s/ings\b/in's/g;
s/(\.( |\t|$))/avast($1,3)/eg;
s/([!\?]( \t|$))/avast($1,2)/eg; # Greater chance after exclamation
s/\Br\B/roll()/eg;

sub roll {
	return 'r' x (rand(5)+1) if rand > 0.5;
	return 'r';
}

sub avast {
	my $stub=shift;
	my $chance=shift;

	my @shouts=(
		", avast$stub",
		"$stub Ahoy!",
		", and a bottle of rum!",
		", by Blackbeard's sword$stub",
		", by Davy Jones' locker$stub",
		"$stub Walk the plank!",
		"$stub Aarrr!",
		"$stub Yaaarrrrr!",
		", pass the grog!",
		", and dinna spare the whip!",
		", with a chest full of booty$stub",
		", and a bucket o' chum$stub",
		", we'll keel-haul ye!",
		"$stub Shiver me timbers!",
		"$stub And hoist the mainsail!",
		"$stub And swab the deck!",
		", ye scurvey dog$stub",
		"$stub Fire the cannons!",
		", to be sure$stub",
		", I'll warrant ye$stub",
		"$stub Arr, me hearty!",
	);

	if (int rand($chance) == 1) {
		return @shouts[rand @shouts]." ";
	}
	else {
		return $stub;
	}
}
