File:  [LON-CAPA] / loncom / homework / math_parser / Token.pm
Revision 1.2: download - view: text, annotated - select for diffs
Mon Mar 13 22:31:22 2023 UTC (14 months, 3 weeks ago) by raeburn
Branches: MAIN
CVS tags: version_2_12_X, version_2_11_4_msu, HEAD
- Add $Id$ line in comments for display of version.

    1: # The LearningOnline Network with CAPA - LON-CAPA
    2: # A parser token.
    3: #
    4: # $Id: Token.pm,v 1.2 2023/03/13 22:31:22 raeburn Exp $
    5: #
    6: # Copyright (C) 2014 Michigan State University Board of Trustees
    7: #
    8: # This program is free software: you can redistribute it and/or modify
    9: # it under the terms of the GNU General Public License as published by
   10: # the Free Software Foundation, either version 3 of the License, or
   11: # (at your option) any later version.
   12: #
   13: # This program is distributed in the hope that it will be useful,
   14: # but WITHOUT ANY WARRANTY; without even the implied warranty of
   15: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
   16: # GNU General Public License for more details.
   17: #
   18: # You should have received a copy of the GNU General Public License
   19: # along with this program. If not, see <http://www.gnu.org/licenses/>.
   20: #
   21: 
   22: ##
   23: # A token from the equation text
   24: ##
   25: package Apache::math_parser::Token;
   26: 
   27: use strict;
   28: use warnings;
   29: use utf8;
   30: 
   31: use enum qw(UNKNOWN NAME NUMBER OPERATOR);
   32: 
   33: ##
   34: # Constructor
   35: # @param {integer} type - Token type: Token::UNKNOWN, NAME, NUMBER, OPERATOR
   36: # @param {integer} from - Index of the token's first character
   37: # @param {integer} to - Index of the token's last character
   38: # @param {string} value - String content of the token
   39: # @optional {Operator} op - The matching operator
   40: ##
   41: sub new {
   42:     my $class = shift;
   43:     my $self = {
   44:         _type => shift,
   45:         _from => shift,
   46:         _to => shift,
   47:         _value => shift,
   48:         _op => shift,
   49:     };
   50:     bless $self, $class;
   51:     return $self;
   52: }
   53: 
   54: # Attribute helpers
   55: 
   56: sub type {
   57:     my $self = shift;
   58:     return $self->{_type};
   59: }
   60: sub from {
   61:     my $self = shift;
   62:     return $self->{_from};
   63: }
   64: sub to {
   65:     my $self = shift;
   66:     return $self->{_to};
   67: }
   68: sub value {
   69:     my $self = shift;
   70:     return $self->{_value};
   71: }
   72: sub op {
   73:     my $self = shift;
   74:     return $self->{_op};
   75: }
   76: 
   77: 1;
   78: __END__

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>