[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@3.143.239.63: ~ $
#!/usr/bin/perl -sw

# WHO'S ON FIRST?

use vars qw( @base @man @attempt );   # This is a comment

use Parse::RecDescent;

sub Parse::RecDescent::choose { $_[int rand @_]; }

$abbott = new Parse::RecDescent <<'EOABBOTT';

	Interpretation:
		ConfirmationRequest
	      | NameRequest
	      | BaseRequest

	ConfirmationRequest:
	       	Preface(s?) Name /[i']s on/ Base
			{ (lc $::man{$item[4]} eq lc $item[2])
				? "Yes"
				: "No, $::man{$item[4]}\'s on $item[4]"
			}

	      | Preface(s?) Name /[i']s the (name of the)?/ Man /('s name )?on/ Base
			{ (lc $::man{$item[6]} eq lc $item[2])
				? "Certainly"
				: "No. \u$item[2] is on " . $::base{lc $item[2]}
			}

	BaseRequest:
	        Preface(s?) Name /(is)?/
			{ "He's on " . $::base{lc $item[2]} }

	NameRequest:
	        /(What's the name of )?the/i Base "baseman"
			{ $::man{$item[2]} }

	Preface: ...!Name /\S*/

	Name:	/Who/i  | /What/i  | /I Don't Know/i

	Base:	'first' | 'second' | 'third'

	Man:	'man'   | 'guy'    | 'fellow'
EOABBOTT

$costello = new Parse::RecDescent <<'EOCOSTELLO';

	Interpretation:
		Meaning <reject:$item[1] eq $thisparser->{prev}>
			{ $thisparser->{prev} = $item[1] }
	      | { choose(@::attempt) }

	Meaning:
		Question
	      | UnclearReferent
	      | NonSequitur
	      | { choose(@::attempt) }

	Question:
	        Preface Interrogative /[i']s on/ Base
	      		{ choose ("Yes, what is the name of the guy on $item[4]?",
				  "The $item[4] baseman?",
				  "I'm asking you! $item[2]?",
				  "I don't know!")			}

	      | Interrogative
	      		{ choose ("That's right, $item[1]?",
				  "What?",
				  "I don't know!")			}

	UnclearReferent:
	        "He's on" Base
	      		{ choose ("Who's on $item[2]?",
				  "Who is?",
				  "So, what is the name of the guy on $item[2]?"
				  )					}

	NonSequitur:
		( "Yes" | 'Certainly' | /that's correct/i )
			{ choose("$item[1], who?",
				 "What?",
				 @::attempt)				}

	Interrogative: /who/i | /what/i

	Base:	'first' | 'second' | 'third'

	Preface: ...!Interrogative /\S*/

EOCOSTELLO

%man = ( first => "Who", second => "What", third => "I Don't Know" );
%base  = map { lc } reverse %man;

@attempt =
(
	"So, who's on first?",
	"I want to know who's on first?",
	"What's the name of the first baseman?",
	"Let's start again. What's the name of the guy on first?",
	"Okay, then, who's on second?",
	"Well then, who's on third?",
	"What's the name of the fellow on third?",
);

$costello->{prev} = $line = "Who's on first?";

while (1)
{
	print "<costello>  ", $line, "\n";
	$line = $abbott->Interpretation($line);
	sleep 1;
	print "<abbott>    ", $line, "\n";
	$line = $costello->Interpretation($line);
	sleep 1;
}


Filemanager

Name Type Size Permission Actions
demo.c File 126 B 0644
demo.pl File 371 B 0644
demo_Cgrammar.pl File 10.08 KB 0644
demo_Cgrammar_v2.pl File 7.08 KB 0644
demo_LaTeXish.pl File 1.63 KB 0644
demo_LaTeXish_autoact.pl File 1.72 KB 0644
demo_NL2SQL.pl File 2.27 KB 0644
demo_OOautoparsetree.pl File 1.98 KB 0644
demo_OOparsetree.pl File 1.21 KB 0644
demo_PerlCSV.pl File 413 B 0644
demo_another_Cgrammar.pl File 21.08 KB 0644
demo_arithmetic.pl File 758 B 0644
demo_autorule.pl File 309 B 0644
demo_autoscoresep.pl File 587 B 0644
demo_autostub.pl File 271 B 0644
demo_bad.pl File 816 B 0644
demo_buildcalc.pl File 1.3 KB 0644
demo_calc.pl File 1.82 KB 0644
demo_codeblock.pl File 287 B 0644
demo_cpp.pl File 1.23 KB 0644
demo_decomment.pl File 2.55 KB 0644
demo_decomment_nonlocal.pl File 2.44 KB 0644
demo_delete.pl File 901 B 0644
demo_derived.pl File 891 B 0644
demo_dot.pl File 4.79 KB 0644
demo_embedding.pl File 977 B 0644
demo_errors.pl File 965 B 0644
demo_eval.pl File 1.15 KB 0644
demo_implicit.pl File 568 B 0644
demo_itemhash.pl File 1.64 KB 0644
demo_language.pl File 2.57 KB 0644
demo_leftassoc.pl File 1.06 KB 0644
demo_leftop.pl File 957 B 0644
demo_lexer.pl File 577 B 0644
demo_lisplike.pl File 1.49 KB 0644
demo_logic.pl File 542 B 0644
demo_matchrule.pl File 772 B 0644
demo_matchrule2.pl File 540 B 0644
demo_mccoy.pl File 516 B 0644
demo_metaRD.pm File 3.02 KB 0644
demo_methods.pl File 785 B 0644
demo_operator.pl File 835 B 0644
demo_opreps.pl File 1.01 KB 0644
demo_parsetree.pl File 661 B 0644
demo_perlparsing.pl File 956 B 0644
demo_piecewise.pl File 3.03 KB 0644
demo_precalc.pl File 743 B 0644
demo_quicklist.pl File 1.5 KB 0644
demo_randomsentence.pl File 2.89 KB 0644
demo_recipe.pl File 2.09 KB 0644
demo_restructure_easy.pl File 1.21 KB 0644
demo_restructure_painful.pl File 1.97 KB 0644
demo_scoredsep.pl File 606 B 0644
demo_selfmod.pl File 953 B 0644
demo_separators.pl File 779 B 0644
demo_simple.pl File 1.94 KB 0644
demo_simpleXML.pl File 1.87 KB 0644
demo_simplequery.pl File 831 B 0644
demo_skipcomment.pl File 609 B 0644
demo_street.pl File 502 B 0644
demo_template.pl File 688 B 0644
demo_textgen.pl File 5 KB 0644
demo_tokens.pl File 552 B 0644
demo_undumper.pl File 23.17 KB 0644
demo_whoson.pl File 2.61 KB 0644