質問編集履歴
3
hh
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,6 +2,10 @@
|
|
2
2
|
|
3
3
|
どなたか、ご教示いただけると、嬉しいです。
|
4
4
|
|
5
|
+
|
6
|
+
|
7
|
+
> 追記、解決しました。@asmさん、ありがとうございます。
|
8
|
+
|
5
9
|
```Error
|
6
10
|
|
7
11
|
Traceback (most recent call last):
|
@@ -18,6 +22,22 @@
|
|
18
22
|
|
19
23
|
|
20
24
|
|
25
|
+
以下、新しいエラーです。
|
26
|
+
|
27
|
+
```
|
28
|
+
|
29
|
+
Traceback (most recent call last):
|
30
|
+
|
31
|
+
2: from temp.rb:64:in `<main>'
|
32
|
+
|
33
|
+
1: from /Library/Ruby/Gems/2.6.0/gems/parslet-1.8.2/lib/parslet/atoms/base.rb:49:in `parse'
|
34
|
+
|
35
|
+
/Library/Ruby/Gems/2.6.0/gems/parslet-1.8.2/lib/parslet/cause.rb:70:in `raise': Extra input after last repetition at line 2 char 1. (Parslet::ParseFailed)
|
36
|
+
|
37
|
+
```
|
38
|
+
|
39
|
+
|
40
|
+
|
21
41
|
```parser.rb
|
22
42
|
|
23
43
|
require 'parslet'
|
@@ -64,7 +84,7 @@
|
|
64
84
|
|
65
85
|
rule(:integer) {
|
66
86
|
|
67
|
-
match("[0-9]")
|
87
|
+
match("[0-9]").repeat(1)
|
68
88
|
|
69
89
|
}
|
70
90
|
|
@@ -88,7 +108,7 @@
|
|
88
108
|
|
89
109
|
rule(:func) {
|
90
110
|
|
91
|
-
|
111
|
+
idens.map{|f| str(f)}.inject(:|) >> block
|
92
112
|
|
93
113
|
}
|
94
114
|
|
2
追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -42,7 +42,7 @@
|
|
42
42
|
|
43
43
|
rule(:sprt?){ (return_mark | space).repeat(0)}
|
44
44
|
|
45
|
-
rule(:chars){ str("
|
45
|
+
rule(:chars){ str("a") | str("b") | str("c") | str("d") | str("e") | str("f") | str("g") | str("h") | str("i") | str("j") | str("k") | str("l") | str("m") | str("n") | str("o") | str("p") | str("q") | str("r") | str("s") | str("t") | str("u") | str("v") | str("w") | str("x") | str("y") | str("z") | str("A") | str("B") | str("C") | str("D") | str("E") | str("F") | str("G") | str("H") | str("I") | str("J") | str("K") | str("L") | str("M") | str("N") | str("O") | str("P") | str("Q") | str("R") | str("S") | str("T") | str("U") | str("V") | str("W") | str("X") | str("Y") | str("Z") | str("0") | str("1") | str("2") | str("3") | str("4") | str("5") | str("6") | str("7") | str("8") | str("9") | str(" ") | str("!") | str("\\"") | str("#") | str("$") | str("%") | str("&") | str("\'") | str("(") | str(")") | str("-") | str("^") | str("@") | str("[") | str(";") | str(":") | str("]") | str(",") | str(".") | str("/") | str("\\") | str("=") | str("~") | str("|") | str("`") | str("{") | str("+") | str("*") | str("}") | str("<") | str(">") | str("?") | str("_") | str("\n") | str("\s") | str("\t") }
|
46
46
|
|
47
47
|
|
48
48
|
|
@@ -88,7 +88,7 @@
|
|
88
88
|
|
89
89
|
rule(:func) {
|
90
90
|
|
91
|
-
match("#{idens.join("|")}") >> block
|
91
|
+
match("#{idens.join(" | ")}") >> block
|
92
92
|
|
93
93
|
}
|
94
94
|
|
@@ -146,6 +146,44 @@
|
|
146
146
|
|
147
147
|
f.close
|
148
148
|
|
149
|
-
NumericParser.new.parse(code.join("\n"))
|
149
|
+
NumericParser.new.parse(code.join("\n")+"\n")
|
150
150
|
|
151
151
|
```
|
152
|
+
|
153
|
+
|
154
|
+
|
155
|
+
テストデータです。
|
156
|
+
|
157
|
+
```
|
158
|
+
|
159
|
+
123
|
160
|
+
|
161
|
+
```
|
162
|
+
|
163
|
+
|
164
|
+
|
165
|
+
```
|
166
|
+
|
167
|
+
print(123)
|
168
|
+
|
169
|
+
```
|
170
|
+
|
171
|
+
|
172
|
+
|
173
|
+
```
|
174
|
+
|
175
|
+
print("aiueo")
|
176
|
+
|
177
|
+
```
|
178
|
+
|
179
|
+
|
180
|
+
|
181
|
+
```
|
182
|
+
|
183
|
+
print{
|
184
|
+
|
185
|
+
print("aiueo")
|
186
|
+
|
187
|
+
}
|
188
|
+
|
189
|
+
```
|
1
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -80,7 +80,7 @@
|
|
80
80
|
|
81
81
|
rule(:line) {
|
82
82
|
|
83
|
-
func | assign | value
|
83
|
+
func | assign | value | sprt?
|
84
84
|
|
85
85
|
}
|
86
86
|
|