# 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