Skip to content

Commit 875d017

Browse files
committed
Auto-format ruby code
1 parent d9db413 commit 875d017

1 file changed

Lines changed: 35 additions & 35 deletions

File tree

ports-r/parser.rb

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,120 +1,120 @@
1-
require 'json'
1+
require "json"
22

33
def tokenize(expression)
44
pattern = /\s*(,@|[('`,)]|"(?:\\.|[^\\"])*"|;.*|[^\s('"`;,)]*)(.*)/
55
tokens = []
6-
6+
77
expression.split("\n").each do |line|
88
part = line
9-
while match = part.match(pattern) and match[0] != ''
9+
while match = part.match(pattern) and match[0] != ""
1010
token = match[1]
11-
if token && token != '' && !token.start_with?(';')
11+
if token && token != "" && !token.start_with?(";")
1212
tokens << token
1313
end
1414
part = match[2]
1515
end
1616
end
17-
return tokens
17+
tokens
1818
end
1919

2020
def parse_tokens(tokens)
2121
return [] if tokens.empty?
2222

2323
token = tokens.shift
24-
if token == '('
24+
if token == "("
2525
list = []
26-
while tokens[0] != ')'
26+
while tokens[0] != ")"
2727
list << parse_tokens(tokens)
2828
end
2929
tokens.shift # Remove ')'
30-
return list
31-
elsif token == ')'
30+
list
31+
elsif token == ")"
3232
raise "Unexpected ')'"
3333
elsif token == "'"
34-
return [:quote, parse_tokens(tokens)]
34+
[:quote, parse_tokens(tokens)]
3535
elsif token == "`"
36-
return [:quasiquote, parse_tokens(tokens)]
36+
[:quasiquote, parse_tokens(tokens)]
3737
elsif token == ","
38-
return [:unquote, parse_tokens(tokens)]
38+
[:unquote, parse_tokens(tokens)]
3939
elsif token == ",@"
40-
return [:"unquote-splicing", parse_tokens(tokens)]
40+
[:"unquote-splicing", parse_tokens(tokens)]
4141
else
42-
return parse_atom(token)
42+
parse_atom(token)
4343
end
4444
end
4545

4646
def parse_atom(token)
4747
lower_token = token.downcase
48-
if lower_token == '#t' || lower_token == '#true'
48+
if lower_token == "#t" || lower_token == "#true"
4949
return true
5050
end
51-
if lower_token == '#f' || lower_token == '#false'
51+
if lower_token == "#f" || lower_token == "#false"
5252
return false
5353
end
5454
if token[0] == '"'
5555
raw_string = token[1..-2]
56-
return raw_string.gsub(/\\n/, "\n")
57-
.gsub(/\\r/, "\r")
58-
.gsub(/\\t/, "\t")
56+
return raw_string.gsub("\\n", "\n")
57+
.gsub("\\r", "\r")
58+
.gsub("\\t", "\t")
5959
end
60-
60+
6161
# Try to parse as integer
6262
begin
6363
integer = Integer(token)
6464
return integer
6565
rescue ArgumentError
6666
# Not an integer
6767
end
68-
68+
6969
# Try to parse as float
7070
begin
7171
float = Float(token)
7272
return float
7373
rescue ArgumentError
7474
# Not a number
7575
end
76-
77-
return token.to_sym # Use Ruby's built-in symbols
76+
77+
token.to_sym # Use Ruby's built-in symbols
7878
end
7979

8080
def parse_without_expand(input_string)
8181
tokens = tokenize(input_string)
82-
return parse_tokens(tokens)
82+
parse_tokens(tokens)
8383
end
8484

8585
def matches(structure, target)
8686
if target.is_a?(Array)
8787
return false unless structure.is_a?(Array)
8888
return false unless structure.length == target.length
89-
89+
9090
result = true
9191
target.each_with_index do |t, i|
92-
result = result && matches(structure[i], t)
92+
result &&= matches(structure[i], t)
9393
end
94-
return result
94+
result
9595
elsif target == "Boolean"
96-
return structure == true || structure == false
96+
structure == true || structure == false
9797
elsif target == "String"
98-
return structure.is_a?(String)
98+
structure.is_a?(String)
9999
elsif target == "Character"
100-
return structure.is_a?(String) && structure.length == 1
100+
structure.is_a?(String) && structure.length == 1
101101
elsif target == "Symbol"
102-
return structure.is_a?(Symbol) # Check against Ruby's built-in Symbol class
102+
structure.is_a?(Symbol) # Check against Ruby's built-in Symbol class
103103
elsif target == "Number"
104-
return structure.is_a?(Numeric)
104+
structure.is_a?(Numeric)
105105
end
106106
end
107107

108108
if __FILE__ == $PROGRAM_NAME
109-
test_table = JSON.parse(File.read('ports/syntax-tests.json'))
110-
109+
test_table = JSON.parse(File.read("ports/syntax-tests.json"))
110+
111111
test_table.each do |entry|
112112
if entry.is_a?(String)
113113
puts "\n"
114114
puts entry
115115
next
116116
end
117-
117+
118118
parse_result = parse_without_expand(entry[0])
119119
if matches(parse_result, entry[1])
120120
puts "✅: #{entry}"

0 commit comments

Comments
 (0)