Skip to content

Commit 9d5eb48

Browse files
committed
Drop Token#next_token and support comments without preceding space
1 parent d0437f8 commit 9d5eb48

File tree

7 files changed

+10
-19
lines changed

7 files changed

+10
-19
lines changed

lib/graphql/language/lexer.rb

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -993,7 +993,6 @@ def self.record_comment(ts, te, meta)
993993
prev_token: @previous_token,
994994
)
995995

996-
@previous_token.next_token = token if @previous_token
997996
@previous_token = token
998997

999998
meta[:col] += te - ts
@@ -1007,7 +1006,6 @@ def self.emit(token_name, ts, te, meta)
10071006
col: meta[:col],
10081007
prev_token: @previous_token,
10091008
)
1010-
@previous_token.next_token = token if @previous_token
10111009
@previous_token = token
10121010
# Bump the column counter for the next token
10131011
meta[:col] += te - ts
@@ -1050,7 +1048,6 @@ def self.emit_string(ts, te, meta)
10501048
)
10511049
end
10521050

1053-
@previous_token.next_token = token if @previous_token
10541051
@previous_token = token
10551052
meta[:col] += te - ts
10561053
end

lib/graphql/language/lexer.rl

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,6 @@ module GraphQL
148148
prev_token: @previous_token,
149149
)
150150

151-
@previous_token.next_token = token if @previous_token
152151
@previous_token = token
153152

154153
meta[:col] += te - ts
@@ -162,7 +161,6 @@ module GraphQL
162161
col: meta[:col],
163162
prev_token: @previous_token,
164163
)
165-
@previous_token.next_token = token if @previous_token
166164
@previous_token = token
167165
# Bump the column counter for the next token
168166
meta[:col] += te - ts
@@ -205,7 +203,6 @@ module GraphQL
205203
)
206204
end
207205

208-
@previous_token.next_token = token if @previous_token
209206
@previous_token = token
210207
meta[:col] += te - ts
211208
end

lib/graphql/language/parser.rb

Lines changed: 4 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/graphql/language/parser.y

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -376,18 +376,19 @@ def get_description(token)
376376
comments = []
377377

378378
loop do
379+
prev_token = token
379380
token = token.prev_token
380381

381382
break if token.nil?
382383
break if token.name != :COMMENT
383-
break if token.next_token.line != token.line + 1
384+
break if prev_token.line != token.line + 1
384385

385-
comments << token.to_s[2..-1] || ""
386+
comments.unshift(token.to_s.sub(/^#\s*/, ""))
386387
end
387388

388389
return nil if comments.empty?
389390

390-
comments.reverse.join("\n")
391+
comments.join("\n")
391392
end
392393

393394
def on_error(parser_token_id, lexer_token, vstack)

lib/graphql/language/parser_tests.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@ def self.included(test)
302302
BLUE
303303
}
304304
305-
# What a great type
305+
#Comment without preceding space
306306
type Hello {
307307
# And a field to boot
308308
str: String
@@ -344,7 +344,7 @@ def self.included(test)
344344

345345
object_type_definition = document.definitions.shift
346346
assert_equal GraphQL::Language::Nodes::ObjectTypeDefinition, object_type_definition.class
347-
assert_equal 'What a great type', object_type_definition.description
347+
assert_equal 'Comment without preceding space', object_type_definition.description
348348
assert_equal 'And a field to boot', object_type_definition.fields[0].description
349349

350350
input_object_type_definition = document.definitions.shift

lib/graphql/language/token.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ module Language
55
class Token
66
# @return [Symbol] The kind of token this is
77
attr_reader :name, :prev_token, :line
8-
attr_accessor :next_token
98

109
def initialize(value:, name:, line:, col:, prev_token:)
1110
@name = name

spec/graphql/language/lexer_spec.rb

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,6 @@
1515
|}
1616
let(:tokens) { subject.tokenize(query_string) }
1717

18-
it "keeps track of next_token" do
19-
assert_equal tokens[1], tokens[0].next_token
20-
end
21-
2218
it "keeps track of previous_token" do
2319
assert_equal tokens[0], tokens[1].prev_token
2420
end

0 commit comments

Comments
 (0)