# File lib/puppet/parser/ast/boolean_operator.rb, line 16
16:     def evaluate(scope)
17:       # evaluate the first operand, should return a boolean value
18:       lval = @lval.safeevaluate(scope)
19: 
20:       # return result
21:       # lazy evaluate right operand
22:       case @operator
23:       when "and"
24:         if Puppet::Parser::Scope.true?(lval)
25:           rval = @rval.safeevaluate(scope)
26:           Puppet::Parser::Scope.true?(rval)
27:         else # false and false == false
28:           false
29:         end
30:       when "or"
31:         if Puppet::Parser::Scope.true?(lval)
32:           true
33:         else
34:           rval = @rval.safeevaluate(scope)
35:           Puppet::Parser::Scope.true?(rval)
36:         end
37:       end
38:     end