1324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverpackage ANTLR::Runtime::RecognitionException; 2324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 3324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruveruse Carp; 4324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruveruse Readonly; 5324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 6324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruveruse Moose; 7324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruveruse Moose::Util::TypeConstraints; 8324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 9324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverextends 'ANTLR::Runtime::Exception'; 10324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 11324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverhas 'input' => ( 12324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver is => 'ro', 13324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver does => 'ANTLR::Runtime::IntStream', 14324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver required => 1, 15324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver); 16324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 17324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverhas 'index' => ( 18324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver is => 'ro', 19324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver isa => 'Int', 20324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver default => 0, 21324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver); 22324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 23324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverhas 'token' => ( 24324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver is => 'ro', 25324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver does => 'ANTLR::Runtime::Token', 26324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver); 27324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 28324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverhas 'node' => ( 29324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver is => 'ro', 30324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver isa => 'Any', 31324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver); 32324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 33324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruversubtype 'Char' 34324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver => as 'Str' 35324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver => where { $_ eq '-1' || length == 1 }; 36324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 37324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverhas 'c' => ( 38324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver is => 'ro', 39324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver isa => 'Maybe[Char]', 40324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver); 41324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 42324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverhas 'line' => ( 43324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver is => 'ro', 44324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver isa => 'Int', 45324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver default => 0, 46324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver); 47324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 48324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverhas 'char_position_in_line' => ( 49324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver is => 'ro', 50324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver isa => 'Int', 51324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver default => 0, 52324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver); 53324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 54324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverhas 'approximate_line_info' => ( 55324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver is => 'rw', 56324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver isa => 'Bool', 57324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver); 58324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 59324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruversub BUILDARGS { 60324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver my ($class, @args) = @_; 61324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver my $args = $class->SUPER::BUILDARGS(@args); 62324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 63324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver my $new_args = { %$args }; 64324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver my $input = $args->{input}; 65324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver $new_args->{input} = $input; 66324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver $new_args->{index} = $input->index(); 67324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 68324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver if ($input->does('ANTLR::Runtime::TokenStream')) { 69324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver my $token = $input->LT(1); 70324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver $new_args->{token} = $token; 71324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver $new_args->{line} = $token->get_line(); 72324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver $new_args->{char_position_in_line} = $token->get_char_position_in_line(); 73324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver } 74324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 75324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver if ($input->does('ANTLR::Runtime::TreeNodeStream')) { 76324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver # extract_information_from_tree_node_stream($input); 77324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver } 78324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver elsif ($input->does('ANTLR::Runtime::CharStream')) { 79324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver $new_args->{c} = $input->LA(1); 80324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver $new_args->{line} = $input->get_line(); 81324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver $new_args->{char_position_in_line} = $input->get_char_position_in_line(); 82324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver } 83324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver else { 84324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver $new_args->{c} = $input->LA(1); 85324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver } 86324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 87324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver return $new_args; 88324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver} 89324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 90324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruversub get_unexpected_type { 91324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver my ($self) = @_; 92324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 93324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver if ($self->input->isa('ANTLR::Runtime::TokenStream')) { 94324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver return $self->token->get_type(); 95324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver } else { 96324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver return $self->c; 97324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver } 98324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver} 99324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 100324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruversub get_c { 101324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver my ($self) = @_; 102324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver return $self->c; 103324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver} 104324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 105324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruversub get_line { 106324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver my ($self) = @_; 107324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver return $self->line; 108324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver} 109324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 110324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruversub get_char_position_in_line { 111324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver my ($self) = @_; 112324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver return $self->char_position_in_line; 113324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver} 114324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 115324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruversub get_token { 116324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver my ($self) = @_; 117324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver return $self->token; 118324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver} 119324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver 120324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverno Moose; 121324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver__PACKAGE__->meta->make_immutable(); 122324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver1; 123