iro 0.0.11 → 0.0.12

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 686a0dda0a6894ecb60779c7edd25ca607420d5dae8926b10c62f3f154e12800
4
- data.tar.gz: ffa3d305e3fda921d93dcd54d176c20d7067c6758015c6a7188dc5fe19774836
3
+ metadata.gz: 52a338f817e801fbc24f5b19f6ac5568407f3d7bf61784279870a1b64dce5d76
4
+ data.tar.gz: c737d5ba10ccaaf542c40418126d9297895d14183767632b39c6114339f54848
5
5
  SHA512:
6
- metadata.gz: 25e868cf787492742908ee15cf7eee5a142c64a8f28cd8e367b5b77083bb0c04480beab5e9aef4ae70c92ede00b63977d997368f49fc427f9e7d9037474560b0
7
- data.tar.gz: '049870b8a281cc7df26bc623cea6787e724db5d70e416450fc9171e690a2dd8926411e77ef4812f238462353fe80f6bce636d1508b3ca0a55250458406f56033'
6
+ metadata.gz: 8bb961b4fec7adc8c85f4a6db274736f2e6839140430f304895dac256ff5a85ae70b61cf9acda9c06603f72cd1d9ec84785c6ca2ef2c7f8dfafbe3944a11602e
7
+ data.tar.gz: 27810a642f837ca6fb88ba0268fd02c7d810c2f2269958bb680a43e14b171009634abcdf1f52b51e95a36bcd3e6618cb5775709c5ddff1429fef2050943c10ca
@@ -1,6 +1,16 @@
1
1
  module Iro
2
2
  module Ruby
3
- class Parser < Ripper::SexpBuilderPP
3
+ class Base < Ripper
4
+ Ripper::SCANNER_EVENTS.each do |event|
5
+ module_eval(<<-End, __FILE__, __LINE__ + 1)
6
+ def on_#{event}(tok)
7
+ [:@#{event}, tok, [lineno(), column()]]
8
+ end
9
+ End
10
+ end
11
+ end
12
+
13
+ class Parser < Base
4
14
  using RipperWrapper
5
15
 
6
16
  EVENT_NAME_TO_HIGHLIGT_NAME = {
@@ -96,70 +106,52 @@ module Iro
96
106
  end
97
107
 
98
108
  def on_def(name, params, body)
99
- super.tap do
100
- register_scanner_event 'rubyFunction', name
101
- end
109
+ unhighlight! name if name.kw_type?
110
+ register_scanner_event 'rubyFunction', name
111
+ nil
102
112
  end
103
113
 
104
114
  def on_defs(recv, period, name, params, body)
105
- super.tap do
106
- register_scanner_event 'rubyFunction', name
107
- end
115
+ unhighlight! name if name.kw_type?
116
+ register_scanner_event 'rubyFunction', name
117
+ nil
108
118
  end
109
119
 
110
120
  def on_symbol(node)
111
- super.tap do
112
- unhighlight! node if node.gvar_type? || node.ivar_type? || node.cvar_type?
113
- register_scanner_event 'rubySymbol', node
114
- end
121
+ unhighlight! node if node.gvar_type? || node.ivar_type? || node.cvar_type? || node.kw_type?
122
+ register_scanner_event 'rubySymbol', node
123
+ nil
115
124
  end
116
125
 
117
126
  def on_var_ref(name)
118
- super.tap do
119
- case name.type
120
- when :@ident
121
- register_scanner_event 'rubyLocalVariable', name
122
- when :@const
123
- register_scanner_event 'Type', name
124
- end
127
+ case name.type
128
+ when :@ident
129
+ register_scanner_event 'rubyLocalVariable', name
130
+ when :@const
131
+ register_scanner_event 'Type', name
125
132
  end
133
+ nil
126
134
  end
127
135
 
128
136
  def on_var_field(name)
129
- super.tap do
130
- register_scanner_event 'Type', name if name.const_type?
131
- end
137
+ register_scanner_event 'Type', name if name.const_type?
138
+ nil
132
139
  end
133
140
 
134
141
  def on_top_const_ref(name)
135
- super.tap do
136
- register_scanner_event 'Type', name
137
- end
142
+ register_scanner_event 'Type', name
143
+ nil
138
144
  end
139
145
  alias on_const_ref on_top_const_ref
140
146
 
141
147
  def on_const_path_ref(_base, name)
142
- super.tap do
143
- register_scanner_event 'Type', name
144
- end
145
- end
146
-
147
- def traverse(node)
148
- if node.kw_type?
149
- unhighlight!(node)
150
- end
151
-
152
- return if node.scanner_event?
153
-
154
- node.children.each do |child|
155
- traverse(child) if child.is_a?(Array)
156
- end
148
+ register_scanner_event 'Type', name
149
+ nil
157
150
  end
158
151
 
159
152
  def self.tokens(source)
160
153
  parser = self.new(source)
161
- sexp = parser.parse
162
- parser.traverse(sexp) unless parser.error?
154
+ parser.parse
163
155
  parser.tokens
164
156
  end
165
157
  end
@@ -1,3 +1,3 @@
1
1
  module Iro
2
- VERSION = "0.0.11"
2
+ VERSION = "0.0.12"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iro
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.11
4
+ version: 0.0.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Masataka Pocke Kuwabara
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-04-08 00:00:00.000000000 Z
11
+ date: 2018-05-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler