tp_plus 0.0.87 → 0.0.88

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +87 -87
  3. data/Rakefile +35 -35
  4. data/bin/tpp +92 -92
  5. data/lib/tp_plus/interpreter.rb +153 -152
  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/acc_node.rb +24 -19
  9. data/lib/tp_plus/nodes/address_node.rb +22 -22
  10. data/lib/tp_plus/nodes/argument_node.rb +20 -20
  11. data/lib/tp_plus/nodes/assignment_node.rb +52 -52
  12. data/lib/tp_plus/nodes/base_node.rb +9 -9
  13. data/lib/tp_plus/nodes/call_node.rb +34 -34
  14. data/lib/tp_plus/nodes/case_condition_node.rb +26 -26
  15. data/lib/tp_plus/nodes/case_node.rb +33 -33
  16. data/lib/tp_plus/nodes/comment_node.rb +18 -18
  17. data/lib/tp_plus/nodes/conditional_node.rb +60 -60
  18. data/lib/tp_plus/nodes/definition_node.rb +22 -22
  19. data/lib/tp_plus/nodes/digit_node.rb +22 -22
  20. data/lib/tp_plus/nodes/empty_stmt_node.rb +9 -9
  21. data/lib/tp_plus/nodes/eval_node.rb +13 -13
  22. data/lib/tp_plus/nodes/expression_node.rb +71 -68
  23. data/lib/tp_plus/nodes/for_node.rb +20 -20
  24. data/lib/tp_plus/nodes/header_node.rb +27 -27
  25. data/lib/tp_plus/nodes/indirect_node.rb +27 -27
  26. data/lib/tp_plus/nodes/inline_conditional_node.rb +36 -36
  27. data/lib/tp_plus/nodes/io_method_node.rb +55 -55
  28. data/lib/tp_plus/nodes/io_node.rb +31 -31
  29. data/lib/tp_plus/nodes/jpos_node.rb +13 -13
  30. data/lib/tp_plus/nodes/jump_node.rb +23 -23
  31. data/lib/tp_plus/nodes/label_definition_node.rb +21 -21
  32. data/lib/tp_plus/nodes/lpos_node.rb +13 -13
  33. data/lib/tp_plus/nodes/motion_node.rb +62 -62
  34. data/lib/tp_plus/nodes/namespace_node.rb +16 -16
  35. data/lib/tp_plus/nodes/namespaced_var_node.rb +38 -38
  36. data/lib/tp_plus/nodes/numreg_node.rb +26 -26
  37. data/lib/tp_plus/nodes/offset_node.rb +27 -27
  38. data/lib/tp_plus/nodes/operator_node.rb +78 -80
  39. data/lib/tp_plus/nodes/paren_expression_node.rb +17 -17
  40. data/lib/tp_plus/nodes/pause_node.rb +9 -9
  41. data/lib/tp_plus/nodes/position_data_node.rb +66 -66
  42. data/lib/tp_plus/nodes/position_node.rb +26 -26
  43. data/lib/tp_plus/nodes/posreg_node.rb +64 -64
  44. data/lib/tp_plus/nodes/raise_node.rb +13 -13
  45. data/lib/tp_plus/nodes/real_node.rb +27 -27
  46. data/lib/tp_plus/nodes/return_node.rb +9 -9
  47. data/lib/tp_plus/nodes/set_skip_node.rb +14 -14
  48. data/lib/tp_plus/nodes/skip_node.rb +22 -22
  49. data/lib/tp_plus/nodes/speed_node.rb +29 -29
  50. data/lib/tp_plus/nodes/string_node.rb +13 -13
  51. data/lib/tp_plus/nodes/string_register_node.rb +26 -26
  52. data/lib/tp_plus/nodes/termination_node.rb +29 -23
  53. data/lib/tp_plus/nodes/terminator_node.rb +16 -16
  54. data/lib/tp_plus/nodes/time_node.rb +24 -24
  55. data/lib/tp_plus/nodes/timer_method_node.rb +33 -33
  56. data/lib/tp_plus/nodes/timer_node.rb +16 -16
  57. data/lib/tp_plus/nodes/unary_expression_node.rb +40 -39
  58. data/lib/tp_plus/nodes/units_node.rb +20 -20
  59. data/lib/tp_plus/nodes/use_node.rb +21 -21
  60. data/lib/tp_plus/nodes/user_alarm_node.rb +16 -16
  61. data/lib/tp_plus/nodes/var_method_node.rb +23 -23
  62. data/lib/tp_plus/nodes/var_node.rb +39 -39
  63. data/lib/tp_plus/nodes/vision_register_node.rb +22 -22
  64. data/lib/tp_plus/nodes/wait_for_node.rb +57 -50
  65. data/lib/tp_plus/nodes/wait_until_node.rb +61 -61
  66. data/lib/tp_plus/nodes/while_node.rb +40 -40
  67. data/lib/tp_plus/parser.rb +1749 -1749
  68. data/lib/tp_plus/scanner.rb +295 -295
  69. data/lib/tp_plus/token.rb +101 -101
  70. data/lib/tp_plus/version.rb +3 -3
  71. data/lib/tp_plus.rb +72 -72
  72. data/test/test_helper.rb +5 -5
  73. data/test/tp_plus/test_interpreter.rb +1378 -1372
  74. data/test/tp_plus/test_parser.rb +502 -502
  75. data/test/tp_plus/test_scanner.rb +591 -591
  76. data/tp_plus.gemspec +31 -31
  77. metadata +4 -3
data/lib/tp_plus/token.rb CHANGED
@@ -1,101 +1,101 @@
1
- module TPPlus
2
- class Token
3
- KEYWORDS = {
4
- "abort" => :ABORT,
5
- "acc" => :ACC,
6
- "after" => :AFTER,
7
- "at" => :AT,
8
- "case" => :CASE,
9
- "circular_move" => :MOVE,
10
- "else" => :ELSE,
11
- "end" => :END,
12
- "eval" => :EVAL,
13
- "for" => :FOR,
14
- "get_joint_position" => :JPOS,
15
- "get_linear_position" => :LPOS,
16
- "group" => :GROUP,
17
- "if" => :IF,
18
- "indirect" => :INDIRECT,
19
- "in" => :IN,
20
- "joint_move" => :MOVE,
21
- "jump_to" => :JUMP,
22
- "linear_move" => :MOVE,
23
- "namespace" => :NAMESPACE,
24
- "offset" => :OFFSET,
25
- "pause" => :PAUSE,
26
- "position_data" => :POSITION_DATA,
27
- "pulse" => :IO_METHOD,
28
- "raise" => :RAISE,
29
- "reset" => :TIMER_METHOD,
30
- "restart" => :TIMER_METHOD,
31
- "return" => :RETURN,
32
- "run" => :RUN,
33
- "skip_to" => :SKIP,
34
- "start" => :TIMER_METHOD,
35
- "stop" => :TIMER_METHOD,
36
- "term" => :TERM,
37
- "time_after" => :TIME_SEGMENT,
38
- "time_before" => :TIME_SEGMENT,
39
- "timeout_to" => :TIMEOUT,
40
- "toggle" => :IO_METHOD,
41
- "tool_offset" => :OFFSET,
42
- "turn_on" => :IO_METHOD,
43
- "turn_off" => :IO_METHOD,
44
- "to" => :TO,
45
- "unless" => :UNLESS,
46
- "vision_offset" => :OFFSET,
47
- "wait_for" => :WAIT_FOR,
48
- "wait_until" => :WAIT_UNTIL,
49
- "when" => :WHEN,
50
- "while" => :WHILE,
51
-
52
- "DIV" => :DIV,
53
-
54
- "true" => :TRUE_FALSE,
55
- "false" => :TRUE_FALSE,
56
-
57
- "TP_IGNORE_PAUSE" => :TP_HEADER,
58
- "TP_COMMENT" => :TP_HEADER,
59
- "TP_GROUPMASK" => :TP_HEADER,
60
- "TP_SUBTYPE" => :TP_HEADER,
61
-
62
- "set_skip_condition" => :SET_SKIP_CONDITION,
63
- "use_payload" => :FANUC_USE,
64
- "use_uframe" => :FANUC_USE,
65
- "use_utool" => :FANUC_USE
66
- }
67
-
68
-
69
- DATA = {
70
- "R" => :NUMREG,
71
- "P" => :POSITION,
72
- "PR" => :POSREG,
73
- "VR" => :VREG,
74
- "SR" => :SREG,
75
- "AR" => :ARG,
76
- "TIMER" => :TIMER,
77
- "UALM" => :UALM,
78
-
79
- "F" => :OUTPUT,
80
- "DO" => :OUTPUT,
81
- "RO" => :OUTPUT,
82
- "UO" => :OUTPUT,
83
- "SO" => :OUTPUT,
84
- "GO" => :OUTPUT,
85
-
86
- "DI" => :INPUT,
87
- "RI" => :INPUT,
88
- "UI" => :INPUT,
89
- "SI" => :INPUT,
90
- "GI" => :INPUT
91
- }
92
-
93
- def self.lookup(string)
94
- KEYWORDS[string] || :WORD
95
- end
96
-
97
- def self.lookup_data(string)
98
- DATA[string] || :WORD
99
- end
100
- end
101
- end
1
+ module TPPlus
2
+ class Token
3
+ KEYWORDS = {
4
+ "abort" => :ABORT,
5
+ "acc" => :ACC,
6
+ "after" => :AFTER,
7
+ "at" => :AT,
8
+ "case" => :CASE,
9
+ "circular_move" => :MOVE,
10
+ "else" => :ELSE,
11
+ "end" => :END,
12
+ "eval" => :EVAL,
13
+ "for" => :FOR,
14
+ "get_joint_position" => :JPOS,
15
+ "get_linear_position" => :LPOS,
16
+ "group" => :GROUP,
17
+ "if" => :IF,
18
+ "indirect" => :INDIRECT,
19
+ "in" => :IN,
20
+ "joint_move" => :MOVE,
21
+ "jump_to" => :JUMP,
22
+ "linear_move" => :MOVE,
23
+ "namespace" => :NAMESPACE,
24
+ "offset" => :OFFSET,
25
+ "pause" => :PAUSE,
26
+ "position_data" => :POSITION_DATA,
27
+ "pulse" => :IO_METHOD,
28
+ "raise" => :RAISE,
29
+ "reset" => :TIMER_METHOD,
30
+ "restart" => :TIMER_METHOD,
31
+ "return" => :RETURN,
32
+ "run" => :RUN,
33
+ "skip_to" => :SKIP,
34
+ "start" => :TIMER_METHOD,
35
+ "stop" => :TIMER_METHOD,
36
+ "term" => :TERM,
37
+ "time_after" => :TIME_SEGMENT,
38
+ "time_before" => :TIME_SEGMENT,
39
+ "timeout_to" => :TIMEOUT,
40
+ "toggle" => :IO_METHOD,
41
+ "tool_offset" => :OFFSET,
42
+ "turn_on" => :IO_METHOD,
43
+ "turn_off" => :IO_METHOD,
44
+ "to" => :TO,
45
+ "unless" => :UNLESS,
46
+ "vision_offset" => :OFFSET,
47
+ "wait_for" => :WAIT_FOR,
48
+ "wait_until" => :WAIT_UNTIL,
49
+ "when" => :WHEN,
50
+ "while" => :WHILE,
51
+
52
+ "DIV" => :DIV,
53
+
54
+ "true" => :TRUE_FALSE,
55
+ "false" => :TRUE_FALSE,
56
+
57
+ "TP_IGNORE_PAUSE" => :TP_HEADER,
58
+ "TP_COMMENT" => :TP_HEADER,
59
+ "TP_GROUPMASK" => :TP_HEADER,
60
+ "TP_SUBTYPE" => :TP_HEADER,
61
+
62
+ "set_skip_condition" => :SET_SKIP_CONDITION,
63
+ "use_payload" => :FANUC_USE,
64
+ "use_uframe" => :FANUC_USE,
65
+ "use_utool" => :FANUC_USE
66
+ }
67
+
68
+
69
+ DATA = {
70
+ "R" => :NUMREG,
71
+ "P" => :POSITION,
72
+ "PR" => :POSREG,
73
+ "VR" => :VREG,
74
+ "SR" => :SREG,
75
+ "AR" => :ARG,
76
+ "TIMER" => :TIMER,
77
+ "UALM" => :UALM,
78
+
79
+ "F" => :OUTPUT,
80
+ "DO" => :OUTPUT,
81
+ "RO" => :OUTPUT,
82
+ "UO" => :OUTPUT,
83
+ "SO" => :OUTPUT,
84
+ "GO" => :OUTPUT,
85
+
86
+ "DI" => :INPUT,
87
+ "RI" => :INPUT,
88
+ "UI" => :INPUT,
89
+ "SI" => :INPUT,
90
+ "GI" => :INPUT
91
+ }
92
+
93
+ def self.lookup(string)
94
+ KEYWORDS[string] || :WORD
95
+ end
96
+
97
+ def self.lookup_data(string)
98
+ DATA[string] || :WORD
99
+ end
100
+ end
101
+ end
@@ -1,3 +1,3 @@
1
- module TPPlus
2
- VERSION = '0.0.87'
3
- end
1
+ module TPPlus
2
+ VERSION = '0.0.88'
3
+ end
data/lib/tp_plus.rb CHANGED
@@ -1,72 +1,72 @@
1
- module TPPlus
2
- end
3
-
4
- require_relative 'tp_plus/nodes/base_node'
5
- require_relative 'tp_plus/nodes/abort_node'
6
- require_relative 'tp_plus/nodes/acc_node'
7
- require_relative 'tp_plus/nodes/argument_node'
8
- require_relative 'tp_plus/nodes/assignment_node'
9
- require_relative 'tp_plus/nodes/address_node'
10
- require_relative 'tp_plus/nodes/call_node'
11
- require_relative 'tp_plus/nodes/case_node'
12
- require_relative 'tp_plus/nodes/case_condition_node'
13
- require_relative 'tp_plus/nodes/comment_node'
14
- require_relative 'tp_plus/nodes/conditional_node'
15
- require_relative 'tp_plus/nodes/definition_node'
16
- require_relative 'tp_plus/nodes/digit_node'
17
- require_relative 'tp_plus/nodes/empty_stmt_node'
18
- require_relative 'tp_plus/nodes/eval_node'
19
- require_relative 'tp_plus/nodes/expression_node'
20
- require_relative 'tp_plus/nodes/for_node'
21
- require_relative 'tp_plus/nodes/header_node'
22
- require_relative 'tp_plus/nodes/indirect_node'
23
- require_relative 'tp_plus/nodes/inline_conditional_node'
24
- require_relative 'tp_plus/nodes/io_node'
25
- require_relative 'tp_plus/nodes/io_method_node'
26
- require_relative 'tp_plus/nodes/jpos_node'
27
- require_relative 'tp_plus/nodes/jump_node'
28
- require_relative 'tp_plus/nodes/label_definition_node'
29
- require_relative 'tp_plus/nodes/lpos_node'
30
- require_relative 'tp_plus/nodes/motion_node'
31
- require_relative 'tp_plus/nodes/namespace_node'
32
- require_relative 'tp_plus/nodes/namespaced_var_node'
33
- require_relative 'tp_plus/nodes/numreg_node'
34
- require_relative 'tp_plus/nodes/offset_node'
35
- require_relative 'tp_plus/nodes/operator_node'
36
- require_relative 'tp_plus/nodes/paren_expression_node'
37
- require_relative 'tp_plus/nodes/pause_node'
38
- require_relative 'tp_plus/nodes/position_node'
39
- require_relative 'tp_plus/nodes/position_data_node'
40
- require_relative 'tp_plus/nodes/posreg_node'
41
- require_relative 'tp_plus/nodes/raise_node'
42
- require_relative 'tp_plus/nodes/real_node'
43
- require_relative 'tp_plus/nodes/return_node'
44
- require_relative 'tp_plus/nodes/set_skip_node'
45
- require_relative 'tp_plus/nodes/skip_node'
46
- require_relative 'tp_plus/nodes/speed_node'
47
- require_relative 'tp_plus/nodes/string_node'
48
- require_relative 'tp_plus/nodes/string_register_node'
49
- require_relative 'tp_plus/nodes/termination_node'
50
- require_relative 'tp_plus/nodes/terminator_node'
51
- require_relative 'tp_plus/nodes/time_node'
52
- require_relative 'tp_plus/nodes/timer_node'
53
- require_relative 'tp_plus/nodes/timer_method_node'
54
- require_relative 'tp_plus/nodes/unary_expression_node'
55
- require_relative 'tp_plus/nodes/units_node'
56
- require_relative 'tp_plus/nodes/use_node'
57
- require_relative 'tp_plus/nodes/user_alarm_node'
58
- require_relative 'tp_plus/nodes/var_node'
59
- require_relative 'tp_plus/nodes/var_method_node'
60
- require_relative 'tp_plus/nodes/vision_register_node'
61
- require_relative 'tp_plus/nodes/wait_for_node'
62
- require_relative 'tp_plus/nodes/wait_until_node'
63
- require_relative 'tp_plus/nodes/while_node'
64
-
65
- require_relative 'tp_plus/interpreter'
66
- require_relative 'tp_plus/namespace'
67
- require_relative 'tp_plus/parser'
68
- require_relative 'tp_plus/scanner'
69
- require_relative 'tp_plus/token'
70
- require_relative 'tp_plus/version'
71
-
72
-
1
+ module TPPlus
2
+ end
3
+
4
+ require_relative 'tp_plus/nodes/base_node'
5
+ require_relative 'tp_plus/nodes/abort_node'
6
+ require_relative 'tp_plus/nodes/acc_node'
7
+ require_relative 'tp_plus/nodes/argument_node'
8
+ require_relative 'tp_plus/nodes/assignment_node'
9
+ require_relative 'tp_plus/nodes/address_node'
10
+ require_relative 'tp_plus/nodes/call_node'
11
+ require_relative 'tp_plus/nodes/case_node'
12
+ require_relative 'tp_plus/nodes/case_condition_node'
13
+ require_relative 'tp_plus/nodes/comment_node'
14
+ require_relative 'tp_plus/nodes/conditional_node'
15
+ require_relative 'tp_plus/nodes/definition_node'
16
+ require_relative 'tp_plus/nodes/digit_node'
17
+ require_relative 'tp_plus/nodes/empty_stmt_node'
18
+ require_relative 'tp_plus/nodes/eval_node'
19
+ require_relative 'tp_plus/nodes/expression_node'
20
+ require_relative 'tp_plus/nodes/for_node'
21
+ require_relative 'tp_plus/nodes/header_node'
22
+ require_relative 'tp_plus/nodes/indirect_node'
23
+ require_relative 'tp_plus/nodes/inline_conditional_node'
24
+ require_relative 'tp_plus/nodes/io_node'
25
+ require_relative 'tp_plus/nodes/io_method_node'
26
+ require_relative 'tp_plus/nodes/jpos_node'
27
+ require_relative 'tp_plus/nodes/jump_node'
28
+ require_relative 'tp_plus/nodes/label_definition_node'
29
+ require_relative 'tp_plus/nodes/lpos_node'
30
+ require_relative 'tp_plus/nodes/motion_node'
31
+ require_relative 'tp_plus/nodes/namespace_node'
32
+ require_relative 'tp_plus/nodes/namespaced_var_node'
33
+ require_relative 'tp_plus/nodes/numreg_node'
34
+ require_relative 'tp_plus/nodes/offset_node'
35
+ require_relative 'tp_plus/nodes/operator_node'
36
+ require_relative 'tp_plus/nodes/paren_expression_node'
37
+ require_relative 'tp_plus/nodes/pause_node'
38
+ require_relative 'tp_plus/nodes/position_node'
39
+ require_relative 'tp_plus/nodes/position_data_node'
40
+ require_relative 'tp_plus/nodes/posreg_node'
41
+ require_relative 'tp_plus/nodes/raise_node'
42
+ require_relative 'tp_plus/nodes/real_node'
43
+ require_relative 'tp_plus/nodes/return_node'
44
+ require_relative 'tp_plus/nodes/set_skip_node'
45
+ require_relative 'tp_plus/nodes/skip_node'
46
+ require_relative 'tp_plus/nodes/speed_node'
47
+ require_relative 'tp_plus/nodes/string_node'
48
+ require_relative 'tp_plus/nodes/string_register_node'
49
+ require_relative 'tp_plus/nodes/termination_node'
50
+ require_relative 'tp_plus/nodes/terminator_node'
51
+ require_relative 'tp_plus/nodes/time_node'
52
+ require_relative 'tp_plus/nodes/timer_node'
53
+ require_relative 'tp_plus/nodes/timer_method_node'
54
+ require_relative 'tp_plus/nodes/unary_expression_node'
55
+ require_relative 'tp_plus/nodes/units_node'
56
+ require_relative 'tp_plus/nodes/use_node'
57
+ require_relative 'tp_plus/nodes/user_alarm_node'
58
+ require_relative 'tp_plus/nodes/var_node'
59
+ require_relative 'tp_plus/nodes/var_method_node'
60
+ require_relative 'tp_plus/nodes/vision_register_node'
61
+ require_relative 'tp_plus/nodes/wait_for_node'
62
+ require_relative 'tp_plus/nodes/wait_until_node'
63
+ require_relative 'tp_plus/nodes/while_node'
64
+
65
+ require_relative 'tp_plus/interpreter'
66
+ require_relative 'tp_plus/namespace'
67
+ require_relative 'tp_plus/parser'
68
+ require_relative 'tp_plus/scanner'
69
+ require_relative 'tp_plus/token'
70
+ require_relative 'tp_plus/version'
71
+
72
+
data/test/test_helper.rb CHANGED
@@ -1,5 +1,5 @@
1
- require 'rubygems'
2
- require 'bundler/setup'
3
-
4
- require 'tp_plus'
5
- require 'test/unit'
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+
4
+ require 'tp_plus'
5
+ require 'test/unit'