iro 0.0.11 → 0.0.12

Sign up to get free protection for your applications and to get access to all the features.
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