Sha256: 75c33afaeeff9a2454df78a4267072818c25315dd4f1b5e2123799c5f30c5a06
Contents?: true
Size: 583 Bytes
Versions: 4
Compression:
Stored size: 583 Bytes
Contents
module Dentaku module AST class Negation < Operation def initialize(node) @node = node fail "Negation requires numeric operand" unless valid_node?(node) end def value(context={}) @node.value(context) * -1 end def type :numeric end def self.arity 1 end def self.right_associative? true end def self.precedence 40 end private def valid_node?(node) node.is_a?(Identifier) || node.type == :numeric end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
dentaku-2.0.4 | lib/dentaku/ast/negation.rb |
dentaku-2.0.3 | lib/dentaku/ast/negation.rb |
dentaku-2.0.2 | lib/dentaku/ast/negation.rb |
dentaku-2.0.1 | lib/dentaku/ast/negation.rb |