# File lib/liquid/parser.rb, line 47
    def expression
      token = @tokens[@p]
      if token[0] == :id
        variable_signature
      elsif [:string, :number].include? token[0]
        consume
      elsif token.first == :open_round
        consume
        first = expression
        consume(:dotdot)
        last = expression
        consume(:close_round)
        "(#{first}..#{last})"
      else
        raise SyntaxError, "#{token} is not a valid expression"
      end
    end