xref: /aosp_15_r20/external/antlr/runtime/Perl5/examples/id/id.pl (revision 16467b971bd3e2009fad32dd79016f2c7e421deb)
1*16467b97STreehugger Robot#!/usr/bin/perl
2*16467b97STreehugger Robot
3*16467b97STreehugger Robotuse blib;
4*16467b97STreehugger Robot
5*16467b97STreehugger Robotuse English qw( -no_match_vars );
6*16467b97STreehugger Robotuse ANTLR::Runtime::ANTLRStringStream;
7*16467b97STreehugger Robotuse IDLexer;
8*16467b97STreehugger Robot
9*16467b97STreehugger Robotuse strict;
10*16467b97STreehugger Robotuse warnings;
11*16467b97STreehugger Robot
12*16467b97STreehugger Robotmy $input = ANTLR::Runtime::ANTLRStringStream->new({ input => "Hello World!\n42\n" });
13*16467b97STreehugger Robotmy $lexer = IDLexer->new({ input => $input });
14*16467b97STreehugger Robot
15*16467b97STreehugger Robotwhile (1) {
16*16467b97STreehugger Robot    my $token = $lexer->next_token();
17*16467b97STreehugger Robot    last if $token->get_type() == IDLexer->EOF;
18*16467b97STreehugger Robot
19*16467b97STreehugger Robot    print "text: ", $token->get_text(), "\n";
20*16467b97STreehugger Robot    print "type: ", $token->get_type(), "\n";
21*16467b97STreehugger Robot    print "pos: ", $token->get_line(), ':', $token->get_char_position_in_line(), "\n";
22*16467b97STreehugger Robot    print "channel: ", $token->get_channel(), "\n";
23*16467b97STreehugger Robot    print "token index: ", $token->get_token_index(), "\n";
24*16467b97STreehugger Robot    print "\n";
25*16467b97STreehugger Robot}
26