tp_plus 0.0.73 → 0.0.74

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +74 -65
  3. data/Rakefile +35 -21
  4. data/bin/tpp +73 -73
  5. data/lib/tp_plus/interpreter.rb +152 -129
  6. data/lib/tp_plus/namespace.rb +66 -66
  7. data/lib/tp_plus/nodes/abort_node.rb +9 -9
  8. data/lib/tp_plus/nodes/address_node.rb +22 -0
  9. data/lib/tp_plus/nodes/argument_node.rb +20 -19
  10. data/lib/tp_plus/nodes/assignment_node.rb +45 -45
  11. data/lib/tp_plus/nodes/call_node.rb +34 -34
  12. data/lib/tp_plus/nodes/case_condition_node.rb +26 -26
  13. data/lib/tp_plus/nodes/case_node.rb +33 -33
  14. data/lib/tp_plus/nodes/comment_node.rb +22 -22
  15. data/lib/tp_plus/nodes/conditional_node.rb +60 -54
  16. data/lib/tp_plus/nodes/definition_node.rb +22 -22
  17. data/lib/tp_plus/nodes/digit_node.rb +22 -21
  18. data/lib/tp_plus/nodes/empty_stmt_node.rb +9 -0
  19. data/lib/tp_plus/nodes/eval_node.rb +13 -13
  20. data/lib/tp_plus/nodes/expression_node.rb +68 -65
  21. data/lib/tp_plus/nodes/for_node.rb +20 -20
  22. data/lib/tp_plus/nodes/header_node.rb +27 -27
  23. data/lib/tp_plus/nodes/indirect_node.rb +51 -49
  24. data/lib/tp_plus/nodes/inline_conditional_node.rb +40 -40
  25. data/lib/tp_plus/nodes/io_method_node.rb +55 -55
  26. data/lib/tp_plus/nodes/io_node.rb +31 -30
  27. data/lib/tp_plus/nodes/jump_node.rb +23 -23
  28. data/lib/tp_plus/nodes/label_definition_node.rb +21 -21
  29. data/lib/tp_plus/nodes/motion_node.rb +62 -62
  30. data/lib/tp_plus/nodes/namespace_node.rb +16 -16
  31. data/lib/tp_plus/nodes/namespaced_var_node.rb +38 -38
  32. data/lib/tp_plus/nodes/numreg_node.rb +26 -25
  33. data/lib/tp_plus/nodes/offset_node.rb +27 -27
  34. data/lib/tp_plus/nodes/operator_node.rb +78 -72
  35. data/lib/tp_plus/nodes/paren_expression_node.rb +17 -0
  36. data/lib/tp_plus/nodes/pause_node.rb +9 -9
  37. data/lib/tp_plus/nodes/position_data_node.rb +64 -50
  38. data/lib/tp_plus/nodes/position_node.rb +26 -25
  39. data/lib/tp_plus/nodes/posreg_node.rb +64 -48
  40. data/lib/tp_plus/nodes/raise_node.rb +13 -13
  41. data/lib/tp_plus/nodes/real_node.rb +27 -27
  42. data/lib/tp_plus/nodes/set_skip_node.rb +14 -0
  43. data/lib/tp_plus/nodes/skip_node.rb +22 -22
  44. data/lib/tp_plus/nodes/speed_node.rb +29 -29
  45. data/lib/tp_plus/nodes/string_node.rb +13 -13
  46. data/lib/tp_plus/nodes/string_register_node.rb +26 -25
  47. data/lib/tp_plus/nodes/termination_node.rb +23 -18
  48. data/lib/tp_plus/nodes/terminator_node.rb +16 -16
  49. data/lib/tp_plus/nodes/time_node.rb +24 -24
  50. data/lib/tp_plus/nodes/timer_method_node.rb +37 -37
  51. data/lib/tp_plus/nodes/timer_node.rb +16 -21
  52. data/lib/tp_plus/nodes/units_node.rb +20 -20
  53. data/lib/tp_plus/nodes/use_node.rb +21 -21
  54. data/lib/tp_plus/nodes/user_alarm_node.rb +16 -15
  55. data/lib/tp_plus/nodes/var_method_node.rb +23 -23
  56. data/lib/tp_plus/nodes/var_node.rb +39 -39
  57. data/lib/tp_plus/nodes/vision_register_node.rb +22 -21
  58. data/lib/tp_plus/nodes/wait_for_node.rb +54 -54
  59. data/lib/tp_plus/nodes/wait_until_node.rb +65 -65
  60. data/lib/tp_plus/nodes/while_node.rb +42 -36
  61. data/lib/tp_plus/parser.rb +1682 -1592
  62. data/lib/tp_plus/scanner.rb +283 -383
  63. data/lib/tp_plus/token.rb +97 -0
  64. data/lib/tp_plus/version.rb +3 -3
  65. data/lib/tp_plus.rb +66 -62
  66. data/test/test_helper.rb +5 -5
  67. data/test/tp_plus/test_interpreter.rb +1309 -1168
  68. data/test/tp_plus/test_parser.rb +496 -489
  69. data/test/tp_plus/test_scanner.rb +577 -522
  70. data/tp_plus.gemspec +31 -28
  71. metadata +61 -14
  72. data/lib/tp_plus/nodes/set_node.rb +0 -22
data/tp_plus.gemspec CHANGED
@@ -1,28 +1,31 @@
1
- # encoding: utf-8
2
- require File.expand_path('../lib/tp_plus/version', __FILE__)
3
-
4
- Gem::Specification.new do |spec|
5
- spec.add_development_dependency 'rexical', '~> 1.0'
6
- spec.add_development_dependency 'racc', '~> 1.4'
7
- spec.add_development_dependency 'test-unit', '~> 2.0'
8
-
9
- spec.authors = ["Jay Strybis"]
10
- spec.email = ['jay.strybis@gmail.com']
11
-
12
- spec.name = 'tp_plus'
13
- spec.description = %q{TP+}
14
- spec.summary = 'A higher-level abstraction of FANUC TP'
15
- spec.homepage = 'http://github.com/onerobotics/tp_plus/'
16
- spec.licenses = ['MIT']
17
- spec.version = TPPlus::VERSION
18
-
19
- spec.executables = ['tpp']
20
- spec.files = %w(README.md Rakefile tp_plus.gemspec)
21
- spec.files += Dir.glob("lib/**/*.rb")
22
- spec.files += Dir.glob("test/**/*")
23
- spec.test_files = Dir.glob("test/**/*")
24
-
25
- spec.require_paths = ['lib']
26
- spec.required_rubygems_version = Gem::Requirement.new('>= 1.3.6')
27
- end
28
-
1
+ # encoding: utf-8
2
+ require File.expand_path('../lib/tp_plus/version', __FILE__)
3
+
4
+ Gem::Specification.new do |spec|
5
+ spec.add_development_dependency 'benchmark-ips', '~> 2.1'
6
+ spec.add_development_dependency 'rexical', '~> 1.0'
7
+ spec.add_development_dependency 'racc', '~> 1.4'
8
+ spec.add_development_dependency 'test-unit', '~> 3.0'
9
+ spec.add_development_dependency 'rake', '~> 10.4'
10
+ spec.add_development_dependency 'ruby-prof', '~> 0.15'
11
+
12
+ spec.authors = ["Jay Strybis"]
13
+ spec.email = ['jay.strybis@gmail.com']
14
+
15
+ spec.name = 'tp_plus'
16
+ spec.description = %q{TP+}
17
+ spec.summary = 'A higher-level abstraction of FANUC TP'
18
+ spec.homepage = 'http://github.com/onerobotics/tp_plus/'
19
+ spec.licenses = ['MIT']
20
+ spec.version = TPPlus::VERSION
21
+
22
+ spec.executables = ['tpp']
23
+ spec.files = %w(README.md Rakefile tp_plus.gemspec)
24
+ spec.files += Dir.glob("lib/**/*.rb")
25
+ spec.files += Dir.glob("test/**/*")
26
+ spec.test_files = Dir.glob("test/**/*")
27
+
28
+ spec.require_paths = ['lib']
29
+ spec.required_rubygems_version = Gem::Requirement.new('>= 1.3.6')
30
+ end
31
+
metadata CHANGED
@@ -1,57 +1,99 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tp_plus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.73
4
+ version: 0.0.74
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jay Strybis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-04 00:00:00.000000000 Z
11
+ date: 2015-03-12 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: benchmark-ips
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.1'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.1'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: rexical
15
29
  requirement: !ruby/object:Gem::Requirement
16
30
  requirements:
17
- - - ~>
31
+ - - "~>"
18
32
  - !ruby/object:Gem::Version
19
33
  version: '1.0'
20
34
  type: :development
21
35
  prerelease: false
22
36
  version_requirements: !ruby/object:Gem::Requirement
23
37
  requirements:
24
- - - ~>
38
+ - - "~>"
25
39
  - !ruby/object:Gem::Version
26
40
  version: '1.0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: racc
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
- - - ~>
45
+ - - "~>"
32
46
  - !ruby/object:Gem::Version
33
47
  version: '1.4'
34
48
  type: :development
35
49
  prerelease: false
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
38
- - - ~>
52
+ - - "~>"
39
53
  - !ruby/object:Gem::Version
40
54
  version: '1.4'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: test-unit
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
- - - ~>
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '3.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '3.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '10.4'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '10.4'
83
+ - !ruby/object:Gem::Dependency
84
+ name: ruby-prof
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
46
88
  - !ruby/object:Gem::Version
47
- version: '2.0'
89
+ version: '0.15'
48
90
  type: :development
49
91
  prerelease: false
50
92
  version_requirements: !ruby/object:Gem::Requirement
51
93
  requirements:
52
- - - ~>
94
+ - - "~>"
53
95
  - !ruby/object:Gem::Version
54
- version: '2.0'
96
+ version: '0.15'
55
97
  description: TP+
56
98
  email:
57
99
  - jay.strybis@gmail.com
@@ -67,6 +109,7 @@ files:
67
109
  - lib/tp_plus/interpreter.rb
68
110
  - lib/tp_plus/namespace.rb
69
111
  - lib/tp_plus/nodes/abort_node.rb
112
+ - lib/tp_plus/nodes/address_node.rb
70
113
  - lib/tp_plus/nodes/argument_node.rb
71
114
  - lib/tp_plus/nodes/assignment_node.rb
72
115
  - lib/tp_plus/nodes/call_node.rb
@@ -76,6 +119,7 @@ files:
76
119
  - lib/tp_plus/nodes/conditional_node.rb
77
120
  - lib/tp_plus/nodes/definition_node.rb
78
121
  - lib/tp_plus/nodes/digit_node.rb
122
+ - lib/tp_plus/nodes/empty_stmt_node.rb
79
123
  - lib/tp_plus/nodes/eval_node.rb
80
124
  - lib/tp_plus/nodes/expression_node.rb
81
125
  - lib/tp_plus/nodes/for_node.rb
@@ -92,13 +136,14 @@ files:
92
136
  - lib/tp_plus/nodes/numreg_node.rb
93
137
  - lib/tp_plus/nodes/offset_node.rb
94
138
  - lib/tp_plus/nodes/operator_node.rb
139
+ - lib/tp_plus/nodes/paren_expression_node.rb
95
140
  - lib/tp_plus/nodes/pause_node.rb
96
141
  - lib/tp_plus/nodes/position_data_node.rb
97
142
  - lib/tp_plus/nodes/position_node.rb
98
143
  - lib/tp_plus/nodes/posreg_node.rb
99
144
  - lib/tp_plus/nodes/raise_node.rb
100
145
  - lib/tp_plus/nodes/real_node.rb
101
- - lib/tp_plus/nodes/set_node.rb
146
+ - lib/tp_plus/nodes/set_skip_node.rb
102
147
  - lib/tp_plus/nodes/skip_node.rb
103
148
  - lib/tp_plus/nodes/speed_node.rb
104
149
  - lib/tp_plus/nodes/string_node.rb
@@ -119,6 +164,7 @@ files:
119
164
  - lib/tp_plus/nodes/while_node.rb
120
165
  - lib/tp_plus/parser.rb
121
166
  - lib/tp_plus/scanner.rb
167
+ - lib/tp_plus/token.rb
122
168
  - lib/tp_plus/version.rb
123
169
  - test/test_helper.rb
124
170
  - test/tp_plus/test_interpreter.rb
@@ -135,17 +181,17 @@ require_paths:
135
181
  - lib
136
182
  required_ruby_version: !ruby/object:Gem::Requirement
137
183
  requirements:
138
- - - '>='
184
+ - - ">="
139
185
  - !ruby/object:Gem::Version
140
186
  version: '0'
141
187
  required_rubygems_version: !ruby/object:Gem::Requirement
142
188
  requirements:
143
- - - '>='
189
+ - - ">="
144
190
  - !ruby/object:Gem::Version
145
191
  version: 1.3.6
146
192
  requirements: []
147
193
  rubyforge_project:
148
- rubygems_version: 2.4.5
194
+ rubygems_version: 2.2.2
149
195
  signing_key:
150
196
  specification_version: 4
151
197
  summary: A higher-level abstraction of FANUC TP
@@ -154,3 +200,4 @@ test_files:
154
200
  - test/tp_plus/test_interpreter.rb
155
201
  - test/tp_plus/test_parser.rb
156
202
  - test/tp_plus/test_scanner.rb
203
+ has_rdoc:
@@ -1,22 +0,0 @@
1
- module TPPlus
2
- module Nodes
3
- class SetNode
4
- def initialize(type, target, value)
5
- @type = type
6
- @target = target
7
- @value = value
8
- end
9
-
10
- def eval(context)
11
- case @type
12
- when "set_uframe"
13
- "UFRAME[#{@target.eval(context)}]=#{@value.eval(context)}"
14
- when "set_skip_condition"
15
- "SKIP CONDITION #{@value.eval(context, disable_mixed_logic: true)}"
16
- else
17
- raise "Unsupported FANUC setter"
18
- end
19
- end
20
- end
21
- end
22
- end