Lingua-Shakespeare
view release on metacpan or search on metacpan
Shakespeare.y view on Meta::CPAN
%{
package Lingua::Shakespeare;
$VERSION = "1.00";
use strict;
use Filter::Util::Call;
my ($yychar, $yyerrflag, $yynerrs, $yyn, @yyss, $yyssp, $yystate, @yyvs, $yyvsp);
my ($yylval, $yys, $yym, $yyval, %yystate, $yydebug, $yylineno, $output);
my ($num_errors, $num_warnings, @token, $current_act, $current_scene);
sub import {
filter_add({});
$yylineno = (caller)[2]+1;
1;
}
sub unimport { filter_del() }
my $preamble = <<'PREAMBLE';
require Lingua::Shakespeare::Play;
my ($comp1, $comp2);
my $play = Lingua::Shakespeare::Play->new;
$|=1;
PREAMBLE
sub varname {
(my $name = lc shift) =~ tr/ /_/;
'$' . $name;
}
sub set_line { "#line $yylineno\n" }
%}
%token <str> ARTICLE
%token <str> BE
%token <str> CHARACTER
%token <str> FIRST_PERSON
%token <str> FIRST_PERSON_POSSESSIVE
%token <str> FIRST_PERSON_REFLEXIVE
%token <str> NEGATIVE_ADJECTIVE
%token <str> NEGATIVE_COMPARATIVE
%token <str> NEGATIVE_NOUN
%token <str> NEUTRAL_ADJECTIVE
%token <str> NEUTRAL_NOUN
%token <str> NOTHING
%token <str> POSITIVE_ADJECTIVE
%token <str> POSITIVE_COMPARATIVE
%token <str> POSITIVE_NOUN
%token <str> SECOND_PERSON
%token <str> SECOND_PERSON_POSSESSIVE
%token <str> SECOND_PERSON_REFLEXIVE
%token <str> THIRD_PERSON_POSSESSIVE
%token <str> COLON
%token <str> COMMA
%token <str> EXCLAMATION_MARK
%token <str> LEFT_BRACKET
%token <str> PERIOD
%token <str> QUESTION_MARK
%token <str> RIGHT_BRACKET
%token <str> AND
%token <str> AS
%token <str> ENTER
%token <str> EXEUNT
%token <str> EXIT
%token <str> HEART
%token <str> IF_NOT
%token <str> IF_SO
%token <str> LESS
%token <str> LET_US
( run in 3.040 seconds using v1.01-cache-2.11-cpan-b301d465b3d )