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.
- checksums.yaml +4 -4
- data/README.md +74 -65
- data/Rakefile +35 -21
- data/bin/tpp +73 -73
- data/lib/tp_plus/interpreter.rb +152 -129
- data/lib/tp_plus/namespace.rb +66 -66
- data/lib/tp_plus/nodes/abort_node.rb +9 -9
- data/lib/tp_plus/nodes/address_node.rb +22 -0
- data/lib/tp_plus/nodes/argument_node.rb +20 -19
- data/lib/tp_plus/nodes/assignment_node.rb +45 -45
- data/lib/tp_plus/nodes/call_node.rb +34 -34
- data/lib/tp_plus/nodes/case_condition_node.rb +26 -26
- data/lib/tp_plus/nodes/case_node.rb +33 -33
- data/lib/tp_plus/nodes/comment_node.rb +22 -22
- data/lib/tp_plus/nodes/conditional_node.rb +60 -54
- data/lib/tp_plus/nodes/definition_node.rb +22 -22
- data/lib/tp_plus/nodes/digit_node.rb +22 -21
- data/lib/tp_plus/nodes/empty_stmt_node.rb +9 -0
- data/lib/tp_plus/nodes/eval_node.rb +13 -13
- data/lib/tp_plus/nodes/expression_node.rb +68 -65
- data/lib/tp_plus/nodes/for_node.rb +20 -20
- data/lib/tp_plus/nodes/header_node.rb +27 -27
- data/lib/tp_plus/nodes/indirect_node.rb +51 -49
- data/lib/tp_plus/nodes/inline_conditional_node.rb +40 -40
- data/lib/tp_plus/nodes/io_method_node.rb +55 -55
- data/lib/tp_plus/nodes/io_node.rb +31 -30
- data/lib/tp_plus/nodes/jump_node.rb +23 -23
- data/lib/tp_plus/nodes/label_definition_node.rb +21 -21
- data/lib/tp_plus/nodes/motion_node.rb +62 -62
- data/lib/tp_plus/nodes/namespace_node.rb +16 -16
- data/lib/tp_plus/nodes/namespaced_var_node.rb +38 -38
- data/lib/tp_plus/nodes/numreg_node.rb +26 -25
- data/lib/tp_plus/nodes/offset_node.rb +27 -27
- data/lib/tp_plus/nodes/operator_node.rb +78 -72
- data/lib/tp_plus/nodes/paren_expression_node.rb +17 -0
- data/lib/tp_plus/nodes/pause_node.rb +9 -9
- data/lib/tp_plus/nodes/position_data_node.rb +64 -50
- data/lib/tp_plus/nodes/position_node.rb +26 -25
- data/lib/tp_plus/nodes/posreg_node.rb +64 -48
- data/lib/tp_plus/nodes/raise_node.rb +13 -13
- data/lib/tp_plus/nodes/real_node.rb +27 -27
- data/lib/tp_plus/nodes/set_skip_node.rb +14 -0
- data/lib/tp_plus/nodes/skip_node.rb +22 -22
- data/lib/tp_plus/nodes/speed_node.rb +29 -29
- data/lib/tp_plus/nodes/string_node.rb +13 -13
- data/lib/tp_plus/nodes/string_register_node.rb +26 -25
- data/lib/tp_plus/nodes/termination_node.rb +23 -18
- data/lib/tp_plus/nodes/terminator_node.rb +16 -16
- data/lib/tp_plus/nodes/time_node.rb +24 -24
- data/lib/tp_plus/nodes/timer_method_node.rb +37 -37
- data/lib/tp_plus/nodes/timer_node.rb +16 -21
- data/lib/tp_plus/nodes/units_node.rb +20 -20
- data/lib/tp_plus/nodes/use_node.rb +21 -21
- data/lib/tp_plus/nodes/user_alarm_node.rb +16 -15
- data/lib/tp_plus/nodes/var_method_node.rb +23 -23
- data/lib/tp_plus/nodes/var_node.rb +39 -39
- data/lib/tp_plus/nodes/vision_register_node.rb +22 -21
- data/lib/tp_plus/nodes/wait_for_node.rb +54 -54
- data/lib/tp_plus/nodes/wait_until_node.rb +65 -65
- data/lib/tp_plus/nodes/while_node.rb +42 -36
- data/lib/tp_plus/parser.rb +1682 -1592
- data/lib/tp_plus/scanner.rb +283 -383
- data/lib/tp_plus/token.rb +97 -0
- data/lib/tp_plus/version.rb +3 -3
- data/lib/tp_plus.rb +66 -62
- data/test/test_helper.rb +5 -5
- data/test/tp_plus/test_interpreter.rb +1309 -1168
- data/test/tp_plus/test_parser.rb +496 -489
- data/test/tp_plus/test_scanner.rb +577 -522
- data/tp_plus.gemspec +31 -28
- metadata +61 -14
- 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 '
|
6
|
-
spec.add_development_dependency '
|
7
|
-
spec.add_development_dependency '
|
8
|
-
|
9
|
-
spec.
|
10
|
-
spec.
|
11
|
-
|
12
|
-
spec.
|
13
|
-
spec.
|
14
|
-
|
15
|
-
spec.
|
16
|
-
spec.
|
17
|
-
spec.
|
18
|
-
|
19
|
-
spec.
|
20
|
-
spec.
|
21
|
-
|
22
|
-
spec.
|
23
|
-
spec.
|
24
|
-
|
25
|
-
spec.
|
26
|
-
spec.
|
27
|
-
|
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.
|
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-
|
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: '
|
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: '
|
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/
|
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.
|
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
|