Class: Skeem::SkmElement

Inherits:
Struct
  • Object
show all
Defined in:
lib/skeem/skm_element.rb

Overview

Abstract class. Generalization of any S-expr element.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(aPosition) ⇒ SkmElement

Returns a new instance of SkmElement.



6
7
8
# File 'lib/skeem/skm_element.rb', line 6

def initialize(aPosition)
  self.position = aPosition
end

Instance Attribute Details

#positionObject

Returns the value of attribute position

Returns:

  • (Object)

    the current value of position



5
6
7
# File 'lib/skeem/skm_element.rb', line 5

def position
  @position
end

Instance Method Details

#accept(_visitor) ⇒ Object

Abstract method. Part of the 'visitee' role in Visitor design pattern.

Parameters:

Raises:

  • (NotImplementedError)


100
101
102
# File 'lib/skeem/skm_element.rb', line 100

def accept(_visitor)
  raise NotImplementedError
end

#boolean?Boolean

Returns:

  • (Boolean)


34
35
36
# File 'lib/skeem/skm_element.rb', line 34

def boolean?
  false
end

#bound!(_frame) ⇒ Object

Notification that this procedure is bound to a variable

Parameters:

  • (Skemm::SkmFrame)


118
119
120
# File 'lib/skeem/skm_element.rb', line 118

def bound!(_frame)
  # Do nothing
end

#callable?Boolean

Returns:

  • (Boolean)


10
11
12
# File 'lib/skeem/skm_element.rb', line 10

def callable?
  false
end

#char?Boolean

Returns:

  • (Boolean)


38
39
40
# File 'lib/skeem/skm_element.rb', line 38

def char?
  false
end

#complex?Boolean

Returns:

  • (Boolean)


18
19
20
# File 'lib/skeem/skm_element.rb', line 18

def complex?
  false
end

#done!Object



104
105
106
# File 'lib/skeem/skm_element.rb', line 104

def done!
  # Do nothing
end

#eqv?(other) ⇒ Boolean

Returns:

  • (Boolean)


70
71
72
# File 'lib/skeem/skm_element.rb', line 70

def eqv?(other)
  equal?(other)
end

#evaluate(_runtime) ⇒ Object

Raises:

  • (NotImplementedError)


89
90
91
# File 'lib/skeem/skm_element.rb', line 89

def evaluate(_runtime)
  raise NotImplementedError, "Missing implementation of #{self.class.name}"
end

#inspectObject



122
123
124
125
126
127
128
# File 'lib/skeem/skm_element.rb', line 122

def inspect
  result = inspect_prefix.dup
  result << inspect_specific
  result << inspect_suffix

  result
end

#integer?Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/skeem/skm_element.rb', line 30

def integer?
  false
end

#list?Boolean

Returns:

  • (Boolean)


50
51
52
# File 'lib/skeem/skm_element.rb', line 50

def list?
  false
end

#null?Boolean

Returns:

  • (Boolean)


54
55
56
# File 'lib/skeem/skm_element.rb', line 54

def null?
  false
end

#number?Boolean

Returns:

  • (Boolean)


14
15
16
# File 'lib/skeem/skm_element.rb', line 14

def number?
  false
end

#pair?Boolean

Returns:

  • (Boolean)


58
59
60
# File 'lib/skeem/skm_element.rb', line 58

def pair?
  false
end

#procedure?Boolean

Returns:

  • (Boolean)


62
63
64
# File 'lib/skeem/skm_element.rb', line 62

def procedure?
  false
end

#quasiquote(_runtime) ⇒ Object

Raises:

  • (NotImplementedError)


93
94
95
# File 'lib/skeem/skm_element.rb', line 93

def quasiquote(_runtime)
  raise NotImplementedError, "Missing implementation of #{self.class.name}"
end

#quoted!Object



108
109
110
# File 'lib/skeem/skm_element.rb', line 108

def quoted!
  # Do nothing
end

#rational?Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/skeem/skm_element.rb', line 26

def rational?
  false
end

#real?Boolean

Returns:

  • (Boolean)


22
23
24
# File 'lib/skeem/skm_element.rb', line 22

def real?
  false
end

#skm_eq?(other) ⇒ Boolean

Returns:

  • (Boolean)


79
80
81
82
# File 'lib/skeem/skm_element.rb', line 79

def skm_eq?(other)
  # Default implementation, to override when necessary
  eqv?(other)
end

#skm_equal?(_other) ⇒ Boolean

Returns:

  • (Boolean)

Raises:

  • (NotImplementedError)


74
75
76
77
# File 'lib/skeem/skm_element.rb', line 74

def skm_equal?(_other)
  msg = "Missing implementation of method #{self.class.name}##{__method__}"
  raise NotImplementedError, msg
end

#string?Boolean

Returns:

  • (Boolean)


42
43
44
# File 'lib/skeem/skm_element.rb', line 42

def string?
  false
end

#symbol?Boolean

Returns:

  • (Boolean)


46
47
48
# File 'lib/skeem/skm_element.rb', line 46

def symbol?
  false
end

#unquoted!Object



112
113
114
# File 'lib/skeem/skm_element.rb', line 112

def unquoted!
  # Do nothing
end

#vector?Boolean

Returns:

  • (Boolean)


66
67
68
# File 'lib/skeem/skm_element.rb', line 66

def vector?
  false
end

#verbatim?TrueClass, FalseClass

Returns true if quoted element is identical to itself.

Returns:

  • (TrueClass, FalseClass)

    true if quoted element is identical to itself



85
86
87
# File 'lib/skeem/skm_element.rb', line 85

def verbatim?
  false
end