質問編集履歴
3
入力例を追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -12,8 +12,8 @@
|
|
12
12
|
result2 = expression
|
13
13
|
return [:if, result,result2]
|
14
14
|
|
15
|
-
このあたりで
|
15
|
+
if 1==1 put aと入力した際、このあたりで
|
16
|
-
[:if ,[
|
16
|
+
[:if ,[:eq,1,1], [:put, a]]のような形になって欲しいのに[:if ,[:eq,1,1], a]になってます。
|
17
17
|
|
18
18
|
```Ruby
|
19
19
|
#!/usr/bin/ruby
|
2
分かりづらいところを書き直した
title
CHANGED
File without changes
|
body
CHANGED
@@ -13,7 +13,7 @@
|
|
13
13
|
return [:if, result,result2]
|
14
14
|
|
15
15
|
このあたりで
|
16
|
-
[:if ,[条件式], [:put, 文字列]]のような形になって欲しいのに[:if ,[条件式], 文字列]
|
16
|
+
[:if ,[条件式], [:put, 文字列]]のような形になって欲しいのに[:if ,[条件式], 文字列]になってます。
|
17
17
|
|
18
18
|
```Ruby
|
19
19
|
#!/usr/bin/ruby
|
@@ -110,7 +110,6 @@
|
|
110
110
|
raise Exception, "unexpected token"
|
111
111
|
elsif token == :put#putsを木構造に
|
112
112
|
result = expression
|
113
|
-
p ['F', [:put, result]]
|
114
113
|
return [:put, result]
|
115
114
|
elsif token == :if#ifを木構造に
|
116
115
|
result = expression
|
1
編集依頼に沿った修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -2,6 +2,19 @@
|
|
2
2
|
ある程度形になってきたのですがRubyでいう所のputsとifを同時に扱うと木構造にする段階でおかしくなってしまいます。
|
3
3
|
どうすればいいのでしょうか?
|
4
4
|
|
5
|
+
具体的には
|
6
|
+
elsif token == :put#putsを木構造に
|
7
|
+
result = expression
|
8
|
+
p ['F', [:put, result]]
|
9
|
+
return [:put, result]
|
10
|
+
elsif token == :if#ifを木構造に
|
11
|
+
result = expression
|
12
|
+
result2 = expression
|
13
|
+
return [:if, result,result2]
|
14
|
+
|
15
|
+
このあたりで
|
16
|
+
[:if ,[条件式], [:put, 文字列]]のような形になって欲しいのに[:if ,[条件式], 文字列]だったり[:if ,[条件式], nil]になったりしてます(すみません、今手元にパソコンがなくちゃんと確認できないです・・・)
|
17
|
+
|
5
18
|
```Ruby
|
6
19
|
#!/usr/bin/ruby
|
7
20
|
require 'strscan'
|