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 +4 -4
- data/lib/iro/ruby/parser.rb +33 -41
- data/lib/iro/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 52a338f817e801fbc24f5b19f6ac5568407f3d7bf61784279870a1b64dce5d76
|
4
|
+
data.tar.gz: c737d5ba10ccaaf542c40418126d9297895d14183767632b39c6114339f54848
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8bb961b4fec7adc8c85f4a6db274736f2e6839140430f304895dac256ff5a85ae70b61cf9acda9c06603f72cd1d9ec84785c6ca2ef2c7f8dfafbe3944a11602e
|
7
|
+
data.tar.gz: 27810a642f837ca6fb88ba0268fd02c7d810c2f2269958bb680a43e14b171009634abcdf1f52b51e95a36bcd3e6618cb5775709c5ddff1429fef2050943c10ca
|
data/lib/iro/ruby/parser.rb
CHANGED
@@ -1,6 +1,16 @@
|
|
1
1
|
module Iro
|
2
2
|
module Ruby
|
3
|
-
class
|
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
|
-
|
100
|
-
|
101
|
-
|
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
|
-
|
106
|
-
|
107
|
-
|
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
|
-
|
112
|
-
|
113
|
-
|
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
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
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
|
-
|
130
|
-
|
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
|
-
|
136
|
-
|
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
|
-
|
143
|
-
|
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
|
-
|
162
|
-
parser.traverse(sexp) unless parser.error?
|
154
|
+
parser.parse
|
163
155
|
parser.tokens
|
164
156
|
end
|
165
157
|
end
|
data/lib/iro/version.rb
CHANGED
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.
|
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-
|
11
|
+
date: 2018-05-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|