質問するログイン新規登録

質問編集履歴

3

入力例を追加

2020/02/01 07:18

投稿

snowman
snowman

スコア25

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 ,[条件式], [:put, 文字列]]のような形になって欲しいのに[:if ,[条件式], 文字列]になってます。
16
+ [:if ,[:eq,1,1], [:put, a]]のような形になって欲しいのに[:if ,[:eq,1,1], a]になってます。
17
17
 
18
18
  ```Ruby
19
19
  #!/usr/bin/ruby

2

分かりづらいところを書き直した

2020/02/01 07:17

投稿

snowman
snowman

スコア25

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 ,[条件式], 文字列]だったり[:if ,[条件式], nil]になったりしてます(すみません、今手元にパソコンがなくちゃんと確認できないです・・・)
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

編集依頼に沿った修正

2020/01/31 14:56

投稿

snowman
snowman

スコア25

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'