gloo-lang 0.9.7 → 0.9.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +16 -1
  3. data/gloo-lang.gemspec +1 -1
  4. data/lib/VERSION +1 -1
  5. data/lib/gloo_lang/app/args.rb +3 -2
  6. data/lib/gloo_lang/app/engine.rb +25 -26
  7. data/lib/gloo_lang/app/engine_context.rb +25 -0
  8. data/lib/gloo_lang/app/help.rb +10 -9
  9. data/lib/gloo_lang/app/log.rb +5 -3
  10. data/lib/gloo_lang/app/settings.rb +30 -37
  11. data/lib/gloo_lang/convert/converter.rb +9 -2
  12. data/lib/gloo_lang/core/baseo.rb +2 -1
  13. data/lib/gloo_lang/core/dictionary.rb +16 -6
  14. data/lib/gloo_lang/core/event_manager.rb +9 -8
  15. data/lib/gloo_lang/core/factory.rb +11 -10
  16. data/lib/gloo_lang/core/gloo_system.rb +9 -8
  17. data/lib/gloo_lang/core/heap.rb +5 -4
  18. data/lib/gloo_lang/core/here.rb +2 -2
  19. data/lib/gloo_lang/core/obj.rb +9 -8
  20. data/lib/gloo_lang/core/obj_finder.rb +3 -3
  21. data/lib/gloo_lang/core/parser.rb +6 -5
  22. data/lib/gloo_lang/core/pn.rb +20 -16
  23. data/lib/gloo_lang/core/verb.rb +2 -1
  24. data/lib/gloo_lang/exec/dispatch.rb +8 -8
  25. data/lib/gloo_lang/exec/exec_env.rb +7 -6
  26. data/lib/gloo_lang/exec/runner.rb +10 -10
  27. data/lib/gloo_lang/exec/script.rb +6 -5
  28. data/lib/gloo_lang/exec/stack.rb +8 -7
  29. data/lib/gloo_lang/expr/expression.rb +3 -2
  30. data/lib/gloo_lang/objs/basic/alias.rb +4 -4
  31. data/lib/gloo_lang/objs/basic/boolean.rb +3 -3
  32. data/lib/gloo_lang/objs/basic/container.rb +2 -2
  33. data/lib/gloo_lang/objs/basic/decimal.rb +3 -3
  34. data/lib/gloo_lang/objs/basic/integer.rb +3 -3
  35. data/lib/gloo_lang/objs/basic/script.rb +1 -1
  36. data/lib/gloo_lang/objs/basic/string.rb +3 -3
  37. data/lib/gloo_lang/objs/basic/text.rb +2 -2
  38. data/lib/gloo_lang/objs/ctrl/each.rb +3 -3
  39. data/lib/gloo_lang/objs/ctrl/repeat.rb +2 -2
  40. data/lib/gloo_lang/objs/data/markdown.rb +2 -2
  41. data/lib/gloo_lang/objs/data/query.rb +4 -4
  42. data/lib/gloo_lang/objs/data/table.rb +3 -3
  43. data/lib/gloo_lang/objs/dt/date.rb +1 -1
  44. data/lib/gloo_lang/objs/dt/datetime.rb +2 -2
  45. data/lib/gloo_lang/objs/dt/time.rb +1 -1
  46. data/lib/gloo_lang/objs/ror/erb.rb +2 -2
  47. data/lib/gloo_lang/objs/ror/eval.rb +3 -3
  48. data/lib/gloo_lang/objs/web/http_get.rb +3 -3
  49. data/lib/gloo_lang/objs/web/http_post.rb +8 -8
  50. data/lib/gloo_lang/objs/web/json.rb +5 -5
  51. data/lib/gloo_lang/objs/web/slack.rb +1 -1
  52. data/lib/gloo_lang/objs/web/teams.rb +1 -1
  53. data/lib/gloo_lang/objs/web/uri.rb +6 -6
  54. data/lib/gloo_lang/persist/file_loader.rb +6 -5
  55. data/lib/gloo_lang/persist/file_saver.rb +2 -1
  56. data/lib/gloo_lang/persist/file_storage.rb +6 -5
  57. data/lib/gloo_lang/persist/persist_man.rb +9 -8
  58. data/lib/gloo_lang/utils/stats.rb +5 -4
  59. data/lib/gloo_lang/verbs/context.rb +4 -4
  60. data/lib/gloo_lang/verbs/create.rb +3 -3
  61. data/lib/gloo_lang/verbs/execute.rb +4 -4
  62. data/lib/gloo_lang/verbs/help.rb +23 -23
  63. data/lib/gloo_lang/verbs/if.rb +3 -3
  64. data/lib/gloo_lang/verbs/list.rb +7 -7
  65. data/lib/gloo_lang/verbs/load.rb +3 -3
  66. data/lib/gloo_lang/verbs/move.rb +6 -6
  67. data/lib/gloo_lang/verbs/put.rb +6 -6
  68. data/lib/gloo_lang/verbs/quit.rb +1 -1
  69. data/lib/gloo_lang/verbs/run.rb +5 -5
  70. data/lib/gloo_lang/verbs/save.rb +1 -1
  71. data/lib/gloo_lang/verbs/show.rb +5 -5
  72. data/lib/gloo_lang/verbs/tell.rb +5 -4
  73. data/lib/gloo_lang/verbs/unless.rb +3 -3
  74. data/lib/gloo_lang/verbs/version.rb +1 -1
  75. data/lib/gloo_lang/verbs/wait.rb +1 -1
  76. metadata +23 -2
@@ -18,7 +18,8 @@ module GlooLang
18
18
  attr_reader :pn
19
19
 
20
20
  # Set up the object.
21
- def initialize( pn )
21
+ def initialize( engine, pn )
22
+ @engine = engine
22
23
  @pn = pn
23
24
  end
24
25
 
@@ -137,7 +138,7 @@ module GlooLang
137
138
  o = "msg_#{msg}"
138
139
  return self.public_send( o ) if self.respond_to? o
139
140
 
140
- $log.error "Message #{msg} not implemented"
141
+ @engine.log.error "Message #{msg} not implemented"
141
142
  return false
142
143
  end
143
144
 
@@ -163,22 +164,22 @@ module GlooLang
163
164
 
164
165
  # Get the Gloo home directory
165
166
  def msg_gloo_home
166
- return $settings.user_root
167
+ return @engine.settings.user_root
167
168
  end
168
169
 
169
170
  # Get the Gloo configuration directory
170
171
  def msg_gloo_config
171
- return $settings.config_path
172
+ return @engine.settings.config_path
172
173
  end
173
174
 
174
175
  # Get the Gloo projects directory
175
176
  def msg_gloo_projects
176
- return $settings.project_path
177
+ return @engine.settings.project_path
177
178
  end
178
179
 
179
180
  # Get the Gloo log directory
180
181
  def msg_gloo_log
181
- return $settings.log_path
182
+ return @engine.settings.log_path
182
183
  end
183
184
 
184
185
  # ---------------------------------------------------------------------
@@ -196,12 +197,12 @@ module GlooLang
196
197
 
197
198
  # Get the number of lines on screen.
198
199
  def msg_screen_lines
199
- return GlooLang::App::Settings.lines
200
+ return GlooLang::App::Settings.lines( @engine )
200
201
  end
201
202
 
202
203
  # Get the number of columns on screen.
203
204
  def msg_screen_cols
204
- return GlooLang::App::Settings.cols
205
+ return GlooLang::App::Settings.cols( @engine )
205
206
  end
206
207
 
207
208
  # ---------------------------------------------------------------------
@@ -19,13 +19,14 @@ module GlooLang
19
19
  #
20
20
  # Set up the object heap.
21
21
  #
22
- def initialize
23
- $log.debug 'object heap intialized...'
22
+ def initialize( engine )
23
+ @engine = engine
24
+ @engine.log.debug 'object heap intialized...'
24
25
 
25
- @root = GlooLang::Objs::Container.new
26
+ @root = GlooLang::Objs::Container.new( @engine)
26
27
  @root.name = 'root'
27
28
 
28
- @context = Pn.root
29
+ @context = Pn.root engine
29
30
  @it = It.new
30
31
  @error = Error.new
31
32
  end
@@ -21,8 +21,8 @@ module GlooLang
21
21
  #
22
22
  # Expand here reference if present.
23
23
  #
24
- def self.expand_here( pn )
25
- target = $engine.exec_env.here_obj
24
+ def self.expand_here( engine, pn )
25
+ target = engine.exec_env.here_obj
26
26
 
27
27
  here = pn.elements.first
28
28
  remainder = pn.elements[ 1..-1 ].join( '.' )
@@ -15,7 +15,8 @@ module GlooLang
15
15
  #
16
16
  # Set up the object.
17
17
  #
18
- def initialize
18
+ def initialize( engine )
19
+ @engine = engine
19
20
  @value = ''
20
21
  @children = []
21
22
  @parent = nil
@@ -152,7 +153,7 @@ module GlooLang
152
153
  :type => type,
153
154
  :value => nil,
154
155
  :parent => self }
155
- return $engine.factory.create params
156
+ return @engine.factory.create params
156
157
  end
157
158
 
158
159
  #
@@ -193,7 +194,7 @@ module GlooLang
193
194
  end
194
195
 
195
196
  if self.type_display == GlooLang::Objs::Alias.typename
196
- ln = GlooLang::Core::Pn.new( self.value )
197
+ ln = GlooLang::Core::Pn.new( @engine, self.value )
197
198
  redirect = ln.resolve
198
199
  return redirect.find_child( name )
199
200
  end
@@ -256,7 +257,7 @@ module GlooLang
256
257
  @params = params
257
258
  return self.dispatch msg if self.can_receive_message? msg
258
259
 
259
- $log.error "Object #{self.name} cannot receive message #{msg}"
260
+ @engine.log.error "Object #{self.name} cannot receive message #{msg}"
260
261
  return false
261
262
  end
262
263
 
@@ -269,7 +270,7 @@ module GlooLang
269
270
  self.public_send( o )
270
271
  return true
271
272
  else
272
- $log.error "Message #{msg} not implemented"
273
+ @engine.log.error "Message #{msg} not implemented"
273
274
  return false
274
275
  end
275
276
  end
@@ -279,12 +280,12 @@ module GlooLang
279
280
  #
280
281
  def msg_unload
281
282
  if self.root?
282
- $log.error 'Cannot unload the root object.'
283
+ @engine.log.error 'Cannot unload the root object.'
283
284
  return
284
285
  end
285
286
 
286
- $engine.event_manager.on_unload self
287
- $engine.heap.unload self
287
+ @engine.event_manager.on_unload self
288
+ @engine.heap.unload self
288
289
  end
289
290
 
290
291
  # ---------------------------------------------------------------------
@@ -13,13 +13,13 @@ module GlooLang
13
13
  # the given name.
14
14
  # If the container isn't provided, root will be used.
15
15
  #
16
- def self.by_name( name, container = nil )
17
- container = $engine.heap.root if container.nil?
16
+ def self.by_name( engine, name, container = nil )
17
+ container = engine.heap.root if container.nil?
18
18
  arr = []
19
19
 
20
20
  container.children.each do |o|
21
21
  arr << o if o.name == name
22
- arr += by_name( name, o ) if o.child_count.positive?
22
+ arr += by_name( engine, name, o ) if o.child_count.positive?
23
23
  end
24
24
 
25
25
  return arr
@@ -12,8 +12,9 @@ module GlooLang
12
12
  #
13
13
  # Set up the parser.
14
14
  #
15
- def initialize
16
- $log.debug 'parser intialized...'
15
+ def initialize( engine )
16
+ @engine = engine
17
+ @engine.log.debug 'parser intialized...'
17
18
  end
18
19
 
19
20
  #
@@ -25,9 +26,9 @@ module GlooLang
25
26
  tokens = GlooLang::Core::Tokens.new( cmd )
26
27
  dic = GlooLang::Core::Dictionary.instance
27
28
  verb = dic.find_verb( tokens.verb )
28
- return verb.new( tokens, params ) if verb
29
+ return verb.new( @engine, tokens, params ) if verb
29
30
 
30
- $log.error "Verb '#{tokens.verb}' was not found."
31
+ @engine.log.error "Verb '#{tokens.verb}' was not found."
31
32
  return nil
32
33
  end
33
34
 
@@ -51,7 +52,7 @@ module GlooLang
51
52
  #
52
53
  def run( cmd )
53
54
  v = parse_immediate( cmd )
54
- GlooLang::Exec::Runner.go( v ) if v
55
+ GlooLang::Exec::Runner.go( @engine, v ) if v
55
56
  end
56
57
 
57
58
  end
@@ -19,29 +19,30 @@ module GlooLang
19
19
  # Set up the object given a source string,
20
20
  # ie: the full path and name.
21
21
  #
22
- def initialize( src )
22
+ def initialize( engine, src )
23
+ @engine = engine
23
24
  set_to src
24
25
  end
25
26
 
26
27
  #
27
28
  # Reference to the root object path.
28
29
  #
29
- def self.root
30
- return Pn.new( ROOT )
30
+ def self.root( engine )
31
+ return Pn.new( engine, ROOT )
31
32
  end
32
33
 
33
34
  #
34
35
  # Reference to it.
35
36
  #
36
- def self.it
37
- return Pn.new( IT )
37
+ def self.it( engine )
38
+ return Pn.new( engine, IT )
38
39
  end
39
40
 
40
41
  #
41
42
  # Reference to the error message.
42
43
  #
43
- def self.error
44
- return Pn.new( ERROR )
44
+ def self.error( engine )
45
+ return Pn.new( engine, ERROR )
45
46
  end
46
47
 
47
48
  #
@@ -127,13 +128,13 @@ module GlooLang
127
128
  # Get the parent that contains the object referenced.
128
129
  #
129
130
  def get_parent
130
- o = $engine.heap.root
131
+ o = @engine.heap.root
131
132
 
132
133
  if self.includes_path?
133
134
  @elements[ 0..-2 ].each do |e|
134
135
  o = o.find_child( e )
135
136
  if o.nil?
136
- $log.error "Object '#{e}' was not found."
137
+ @engine.log.error "Object '#{e}' was not found."
137
138
  return nil
138
139
  end
139
140
  end
@@ -169,18 +170,21 @@ module GlooLang
169
170
  # Find the object referenced or return nil if it is not found.
170
171
  #
171
172
  def resolve
172
- return $engine.heap.root if self.root?
173
- return $engine.heap.it if self.it?
174
- return $engine.heap.error if self.error?
175
- return GlooLang::Core::GlooSystem.new( self ) if self.gloo_sys?
176
-
177
- Here.expand_here( self ) if Here.includes_here_ref?( @elements )
173
+ return @engine.heap.root if self.root?
174
+ return @engine.heap.it if self.it?
175
+ return @engine.heap.error if self.error?
176
+ return GlooLang::Core::GlooSystem.new(
177
+ @engine, self ) if self.gloo_sys?
178
+
179
+ if Here.includes_here_ref?( @elements )
180
+ Here.expand_here( @engine, self )
181
+ end
178
182
 
179
183
  parent = self.get_parent
180
184
  return nil unless parent
181
185
 
182
186
  obj = parent.find_child( self.name )
183
- return GlooLang::Objs::Alias.resolve_alias( obj, self.src )
187
+ return GlooLang::Objs::Alias.resolve_alias( @engine, obj, self.src )
184
188
  end
185
189
 
186
190
  end
@@ -16,7 +16,8 @@ module GlooLang
16
16
  #
17
17
  # Set up the verb.
18
18
  #
19
- def initialize( tokens, params = [] )
19
+ def initialize( engine, tokens, params = [] )
20
+ @engine = engine
20
21
  @tokens = tokens
21
22
  @params = params
22
23
  end
@@ -15,24 +15,24 @@ module GlooLang
15
15
  #
16
16
  # Dispatch the given message to the given object.
17
17
  #
18
- def self.message( msg, to_obj, params = nil )
19
- $log.debug "Dispatch message #{msg} to #{to_obj.name}"
18
+ def self.message( engine, msg, to_obj, params = nil )
19
+ engine.log.debug "Dispatch message #{msg} to #{to_obj.name}"
20
20
  a = GlooLang::Exec::Action.new msg, to_obj, params
21
- GlooLang::Exec::Dispatch.action a
21
+ GlooLang::Exec::Dispatch.action( engine, a )
22
22
  end
23
23
 
24
24
  #
25
25
  # Dispatch an action.
26
26
  #
27
- def self.action( action )
27
+ def self.action( engine, action )
28
28
  unless action.valid?
29
- $log.warn "Object #{action.to.name} does not respond to #{action.msg}"
29
+ engine.log.warn "Object #{action.to.name} does not respond to #{action.msg}"
30
30
  end
31
31
 
32
- $engine.exec_env.push_action action
33
- $log.debug "Sending message #{action.msg} to #{action.to.name}"
32
+ engine.exec_env.push_action action
33
+ engine.log.debug "Sending message #{action.msg} to #{action.to.name}"
34
34
  action.dispatch
35
- $engine.exec_env.pop_action
35
+ engine.exec_env.pop_action
36
36
  end
37
37
 
38
38
  end
@@ -19,13 +19,14 @@ module GlooLang
19
19
  #
20
20
  # Set up the execution environment.
21
21
  #
22
- def initialize
23
- $log.debug 'exec env intialized...'
22
+ def initialize( engine )
23
+ @engine = engine
24
+ @engine.log.debug 'exec env intialized...'
24
25
 
25
- @verbs = GlooLang::Exec::Stack.new VERB_STACK
26
- @actions = GlooLang::Exec::Stack.new ACTION_STACK
27
- @scripts = GlooLang::Exec::Stack.new SCRIPT_STACK
28
- @here = GlooLang::Exec::Stack.new HERE_STACK
26
+ @verbs = GlooLang::Exec::Stack.new( @engine, VERB_STACK )
27
+ @actions = GlooLang::Exec::Stack.new( @engine, ACTION_STACK )
28
+ @scripts = GlooLang::Exec::Stack.new( @engine, SCRIPT_STACK )
29
+ @here = GlooLang::Exec::Stack.new( @engine, HERE_STACK )
29
30
  end
30
31
 
31
32
  #
@@ -15,28 +15,28 @@ module GlooLang
15
15
  # that need to be done before or after a verb
16
16
  # is done running.
17
17
  #
18
- def self.go( verb )
19
- $log.debug "running verb #{verb.type_display}"
20
- $engine.heap.error.start_tracking
21
- $engine.exec_env.verbs.push verb
18
+ def self.go( engine, verb )
19
+ engine.log.debug "running verb #{verb.type_display}"
20
+ engine.heap.error.start_tracking
21
+ engine.exec_env.verbs.push verb
22
22
  verb&.run
23
- $engine.exec_env.verbs.pop
24
- $engine.heap.error.clear_if_no_errors
23
+ engine.exec_env.verbs.pop
24
+ engine.heap.error.clear_if_no_errors
25
25
  end
26
26
 
27
27
  #
28
28
  # Send 'run' message to the object.
29
29
  # Resolve the path_name and then send the run message.
30
30
  #
31
- def self.run( path_name )
32
- $log.debug "running script at #{path_name}"
33
- pn = GlooLang::Core::Pn.new path_name
31
+ def self.run( engine, path_name )
32
+ engine.log.debug "running script at #{path_name}"
33
+ pn = GlooLang::Core::Pn.new( engine, path_name )
34
34
  o = pn.resolve
35
35
 
36
36
  if o
37
37
  o.send_message 'run'
38
38
  else
39
- $log.error "Could not send message to object. Bad path: #{path_name}"
39
+ engine.log.error "Could not send message to object. Bad path: #{path_name}"
40
40
  end
41
41
  end
42
42
 
@@ -13,7 +13,8 @@ module GlooLang
13
13
  #
14
14
  # Set up the script.
15
15
  #
16
- def initialize( obj )
16
+ def initialize( engine, obj )
17
+ @engine = engine
17
18
  @obj = obj
18
19
  end
19
20
 
@@ -23,17 +24,17 @@ module GlooLang
23
24
  # of lines.
24
25
  #
25
26
  def run
26
- $engine.exec_env.push_script self
27
+ @engine.exec_env.push_script self
27
28
 
28
29
  if @obj.value.is_a? String
29
- $engine.parser.run @obj.value
30
+ @engine.parser.run @obj.value
30
31
  elsif @obj.value.is_a? Array
31
32
  @obj.value.each do |line|
32
- $engine.parser.run line
33
+ @engine.parser.run line
33
34
  end
34
35
  end
35
36
 
36
- $engine.exec_env.pop_script
37
+ @engine.exec_env.pop_script
37
38
  end
38
39
 
39
40
  #
@@ -13,19 +13,20 @@ module GlooLang
13
13
  #
14
14
  # Set up the stack.
15
15
  #
16
- def initialize( name )
16
+ def initialize( engine, name )
17
+ @engine = engine
17
18
  @name = name
18
19
  clear_stack
19
- $log.debug "#{name} stack intialized..."
20
+ @engine.log.debug "#{name} stack intialized..."
20
21
  end
21
22
 
22
23
  #
23
24
  # Push an item onto the stack.
24
25
  #
25
26
  def push( obj )
26
- $log.debug "#{@name}:push #{obj.display_value}"
27
+ @engine.log.debug "#{@name}:push #{obj.display_value}"
27
28
  @stack.push obj
28
- self.update_out_file if $settings.debug
29
+ self.update_out_file if @engine.settings.debug
29
30
  end
30
31
 
31
32
  #
@@ -33,8 +34,8 @@ module GlooLang
33
34
  #
34
35
  def pop
35
36
  o = @stack.pop
36
- $log.debug "#{@name}:pop #{o.display_value}"
37
- self.update_out_file if $settings.debug
37
+ @engine.log.debug "#{@name}:pop #{o.display_value}"
38
+ self.update_out_file if @engine.settings.debug
38
39
  end
39
40
 
40
41
  #
@@ -55,7 +56,7 @@ module GlooLang
55
56
  # Get the file we'll write debug information for the stack.
56
57
  #
57
58
  def out_file
58
- return File.join( $settings.debug_path, @name )
59
+ return File.join( @engine.settings.debug_path, @name )
59
60
  end
60
61
 
61
62
  #
@@ -15,7 +15,8 @@ module GlooLang
15
15
  #
16
16
  # Create the expression from a list of tokens.
17
17
  #
18
- def initialize( tokens )
18
+ def initialize( engine, tokens )
19
+ @engine = engine
19
20
  @tokens = tokens
20
21
  @symbols = []
21
22
  @left = nil
@@ -110,7 +111,7 @@ module GlooLang
110
111
  return LDecimal.new( token ) if LDecimal.decimal?( token )
111
112
 
112
113
  # last chance: an Object reference
113
- return GlooLang::Core::Pn.new( token )
114
+ return GlooLang::Core::Pn.new( @engine, token )
114
115
  end
115
116
 
116
117
  end
@@ -48,9 +48,9 @@ module GlooLang
48
48
  # Check to see if the referenced object exists.
49
49
  #
50
50
  def msg_resolve
51
- pn = GlooLang::Core::Pn.new( self.value )
51
+ pn = GlooLang::Core::Pn.new( @engine, self.value )
52
52
  s = pn.exists?
53
- $engine.heap.it.set_to s
53
+ @engine.heap.it.set_to s
54
54
  return s
55
55
  end
56
56
 
@@ -64,12 +64,12 @@ module GlooLang
64
64
  # If it ends with the * then we won't resolve the alias since
65
65
  # we are trying to refer to the alias itself.
66
66
  #
67
- def self.resolve_alias( obj, ref_name = nil )
67
+ def self.resolve_alias( engine, obj, ref_name = nil )
68
68
  return nil unless obj
69
69
  return obj unless obj.type_display == GlooLang::Objs::Alias.typename
70
70
  return obj if ref_name&.end_with?( ALIAS_REFERENCE )
71
71
 
72
- ln = GlooLang::Core::Pn.new( obj.value )
72
+ ln = GlooLang::Core::Pn.new( engine, obj.value )
73
73
  return ln.resolve
74
74
  end
75
75
 
@@ -93,7 +93,7 @@ module GlooLang
93
93
  def msg_not
94
94
  v = !value
95
95
  set_value v
96
- $engine.heap.it.set_to v
96
+ @engine.heap.it.set_to v
97
97
  return v
98
98
  end
99
99
 
@@ -102,7 +102,7 @@ module GlooLang
102
102
  #
103
103
  def msg_true
104
104
  set_value true
105
- $engine.heap.it.set_to true
105
+ @engine.heap.it.set_to true
106
106
  return true
107
107
  end
108
108
 
@@ -111,7 +111,7 @@ module GlooLang
111
111
  #
112
112
  def msg_false
113
113
  set_value false
114
- $engine.heap.it.set_to false
114
+ @engine.heap.it.set_to false
115
115
  return false
116
116
  end
117
117
 
@@ -41,7 +41,7 @@ module GlooLang
41
41
  #
42
42
  def msg_count
43
43
  i = child_count
44
- $engine.heap.it.set_to i
44
+ @engine.heap.it.set_to i
45
45
  return i
46
46
  end
47
47
 
@@ -57,7 +57,7 @@ module GlooLang
57
57
  #
58
58
  def msg_show_key_value_table
59
59
  data = self.children.map { |o| [ o.name, o.value ] }
60
- $engine.platform.show_table nil, data, title
60
+ @engine.platform.show_table nil, data, title
61
61
  end
62
62
 
63
63
  end
@@ -35,7 +35,7 @@ module GlooLang
35
35
  end
36
36
 
37
37
  unless new_value.is_a? Numeric
38
- self.value = $engine.converter.convert( new_value, 'Decimal', 0.0 )
38
+ self.value = @engine.converter.convert( new_value, 'Decimal', 0.0 )
39
39
  return
40
40
  end
41
41
 
@@ -61,13 +61,13 @@ module GlooLang
61
61
  def msg_round
62
62
  data = 0
63
63
  if @params&.token_count&.positive?
64
- expr = GlooLang::Expr::Expression.new( @params.tokens )
64
+ expr = GlooLang::Expr::Expression.new( @engine, @params.tokens )
65
65
  data = expr.evaluate.to_i
66
66
  end
67
67
 
68
68
  i = self.value.round( data )
69
69
  set_value i
70
- $engine.heap.it.set_to i
70
+ @engine.heap.it.set_to i
71
71
  return i
72
72
  end
73
73
 
@@ -30,7 +30,7 @@ module GlooLang
30
30
  #
31
31
  def set_value( new_value )
32
32
  unless new_value.is_a? Numeric
33
- self.value = $engine.converter.convert( new_value, 'Integer', 0 )
33
+ self.value = @engine.converter.convert( new_value, 'Integer', 0 )
34
34
  return
35
35
  end
36
36
 
@@ -54,7 +54,7 @@ module GlooLang
54
54
  def msg_inc
55
55
  i = value + 1
56
56
  set_value i
57
- $engine.heap.it.set_to i
57
+ @engine.heap.it.set_to i
58
58
  return i
59
59
  end
60
60
 
@@ -64,7 +64,7 @@ module GlooLang
64
64
  def msg_dec
65
65
  i = value - 1
66
66
  set_value i
67
- $engine.heap.it.set_to i
67
+ @engine.heap.it.set_to i
68
68
  return i
69
69
  end
70
70
 
@@ -90,7 +90,7 @@ module GlooLang
90
90
  # Send the object the unload message.
91
91
  #
92
92
  def msg_run
93
- s = GlooLang::Exec::Script.new self
93
+ s = GlooLang::Exec::Script.new( @engine, self )
94
94
  s.run
95
95
  end
96
96
 
@@ -48,7 +48,7 @@ module GlooLang
48
48
  #
49
49
  def msg_size
50
50
  s = value.size
51
- $engine.heap.it.set_to s
51
+ @engine.heap.it.set_to s
52
52
  return s
53
53
  end
54
54
 
@@ -58,7 +58,7 @@ module GlooLang
58
58
  def msg_up
59
59
  s = value.upcase
60
60
  set_value s
61
- $engine.heap.it.set_to s
61
+ @engine.heap.it.set_to s
62
62
  return s
63
63
  end
64
64
 
@@ -68,7 +68,7 @@ module GlooLang
68
68
  def msg_down
69
69
  s = value.downcase
70
70
  set_value s
71
- $engine.heap.it.set_to s
71
+ @engine.heap.it.set_to s
72
72
  return s
73
73
  end
74
74
 
@@ -64,14 +64,14 @@ module GlooLang
64
64
  def msg_page
65
65
  return unless value
66
66
 
67
- $engine.platform.show( value, false, true )
67
+ @engine.platform.show( value, false, true )
68
68
  end
69
69
 
70
70
  #
71
71
  # Edit the text in the default editor.
72
72
  #
73
73
  def msg_edit
74
- self.value = $engine.platform.edit( self.value )
74
+ self.value = @engine.platform.edit( self.value )
75
75
  end
76
76
 
77
77
  end