Object
# File lib/expression_parser/lexer.rb, line 11 def get_next_token if @return_previous_token @return_previous_token = false return @previous_token end token = Token.new @input.lstrip! case @input when /\A\+/ then token.kind = Token::Plus when /\A-/ then token.kind = Token::Minus when /\A\*/ then token.kind = Token::Multiply when /\Adiv/ then token.kind = Token::Divide when /\A\// then token.kind = Token::Divide when /\A\d+(\.\d+)?/ token.kind = Token::Number token.value = $&.to_f when /\A\(/ token.kind = Token::LParen when /\A\)/ token.kind = Token::RParen when '' token.kind = Token::End when /\Ae/ token.kind = Token::Number token.value = 2.718281828459 when /\Api/ token.kind = Token::Number token.value = 3.1415926535898 when /\Amod/ token.kind = Token::MOD when /\A!=/ token.kind = Token::NotEqual when /\A<>/ token.kind = Token::NotEqual when /\A>=/ token.kind = Token::GThanE when /\A>/ token.kind = Token::GThan when /\A<=/ token.kind = Token::LThanE when /\A</ token.kind = Token::LThan when /\A=/ token.kind = Token::Equal end raise "Unknown token #{@input}" if token.unknown? @input = $' @previous_token = token token end
Generated with the Darkfish Rdoc Generator 2.