mirror of
https://github.com/github/codeql.git
synced 2025-12-19 18:33:16 +01:00
6078 lines
86 KiB
Plaintext
6078 lines
86 KiB
Plaintext
break_ensure.rb:
|
|
# 1| enter m1
|
|
#-----| -> x
|
|
|
|
# 1| enter break_ensure.rb
|
|
#-----| -> m1
|
|
|
|
# 1| m1
|
|
#-----| -> m2
|
|
|
|
# 1| exit m1
|
|
|
|
# 1| exit break_ensure.rb
|
|
|
|
# 1| exit m1 (abnormal)
|
|
#-----| -> exit m1
|
|
|
|
# 1| exit m1 (normal)
|
|
#-----| -> exit m1
|
|
|
|
# 1| exit break_ensure.rb (normal)
|
|
#-----| -> exit break_ensure.rb
|
|
|
|
# 1| x
|
|
#-----| -> x
|
|
|
|
# 2| while ...
|
|
#-----| -> self
|
|
|
|
# 2| ... < ...
|
|
#-----| false -> while ...
|
|
#-----| true -> x
|
|
#-----| raise -> [ensure: raise] self
|
|
|
|
# 2| x
|
|
#-----| -> 0
|
|
|
|
# 2| 0
|
|
#-----| -> ... < ...
|
|
|
|
# 2| do ...
|
|
#-----| -> x
|
|
|
|
# 3| if ...
|
|
#-----| -> do ...
|
|
|
|
# 3| ... > ...
|
|
#-----| true -> break
|
|
#-----| false -> if ...
|
|
#-----| raise -> while ...
|
|
|
|
# 3| x
|
|
#-----| -> 0
|
|
|
|
# 3| 0
|
|
#-----| -> ... > ...
|
|
|
|
# 4| break
|
|
#-----| break -> while ...
|
|
|
|
# 7| ensure ...
|
|
#-----| -> exit m1 (normal)
|
|
|
|
# 7| [ensure: raise] ensure ...
|
|
#-----| raise -> exit m1 (abnormal)
|
|
|
|
# 8| if ...
|
|
#-----| -> ensure ...
|
|
|
|
# 8| [ensure: raise] if ...
|
|
#-----| -> [ensure: raise] ensure ...
|
|
|
|
# 8| call to nil?
|
|
#-----| false -> if ...
|
|
#-----| true -> self
|
|
|
|
# 8| [ensure: raise] call to nil?
|
|
#-----| false -> [ensure: raise] if ...
|
|
#-----| true -> [ensure: raise] self
|
|
|
|
# 8| call to elements
|
|
#-----| -> call to nil?
|
|
|
|
# 8| [ensure: raise] call to elements
|
|
#-----| -> [ensure: raise] call to nil?
|
|
|
|
# 8| self
|
|
#-----| -> call to elements
|
|
|
|
# 8| [ensure: raise] self
|
|
#-----| -> [ensure: raise] call to elements
|
|
|
|
# 8| then ...
|
|
#-----| -> if ...
|
|
|
|
# 8| [ensure: raise] then ...
|
|
#-----| -> [ensure: raise] if ...
|
|
|
|
# 9| call to puts
|
|
#-----| -> then ...
|
|
|
|
# 9| [ensure: raise] call to puts
|
|
#-----| -> [ensure: raise] then ...
|
|
|
|
# 9| self
|
|
#-----| -> "elements nil"
|
|
|
|
# 9| [ensure: raise] self
|
|
#-----| -> [ensure: raise] "elements nil"
|
|
|
|
# 9| "elements nil"
|
|
#-----| -> call to puts
|
|
|
|
# 9| [ensure: raise] "elements nil"
|
|
#-----| -> [ensure: raise] call to puts
|
|
|
|
# 13| enter m2
|
|
#-----| -> x
|
|
|
|
# 13| m2
|
|
#-----| -> m3
|
|
|
|
# 13| exit m2
|
|
|
|
# 13| exit m2 (normal)
|
|
#-----| -> exit m2
|
|
|
|
# 13| x
|
|
#-----| -> y
|
|
|
|
# 13| y
|
|
#-----| -> x
|
|
|
|
# 14| while ...
|
|
#-----| -> exit m2 (normal)
|
|
|
|
# 14| ... < ...
|
|
#-----| false -> while ...
|
|
#-----| true -> x
|
|
|
|
# 14| x
|
|
#-----| -> 0
|
|
|
|
# 14| 0
|
|
#-----| -> ... < ...
|
|
|
|
# 14| do ...
|
|
#-----| -> x
|
|
|
|
# 16| if ...
|
|
#-----| -> y
|
|
|
|
# 16| ... > ...
|
|
#-----| true -> break
|
|
#-----| false -> if ...
|
|
#-----| raise -> [ensure: raise] y
|
|
|
|
# 16| x
|
|
#-----| -> 0
|
|
|
|
# 16| 0
|
|
#-----| -> ... > ...
|
|
|
|
# 17| break
|
|
#-----| break -> [ensure: break] y
|
|
|
|
# 19| ensure ...
|
|
#-----| -> do ...
|
|
|
|
# 19| [ensure: break] ensure ...
|
|
#-----| break -> while ...
|
|
|
|
# 19| [ensure: raise] ensure ...
|
|
#-----| raise -> while ...
|
|
|
|
# 20| if ...
|
|
#-----| -> ensure ...
|
|
|
|
# 20| [ensure: break] if ...
|
|
#-----| -> [ensure: break] ensure ...
|
|
|
|
# 20| [ensure: raise] if ...
|
|
#-----| -> [ensure: raise] ensure ...
|
|
|
|
# 20| call to nil?
|
|
#-----| false -> if ...
|
|
#-----| true -> self
|
|
|
|
# 20| [ensure: break] call to nil?
|
|
#-----| false -> [ensure: break] if ...
|
|
#-----| true -> [ensure: break] self
|
|
|
|
# 20| [ensure: raise] call to nil?
|
|
#-----| false -> [ensure: raise] if ...
|
|
#-----| true -> [ensure: raise] self
|
|
|
|
# 20| y
|
|
#-----| -> call to nil?
|
|
|
|
# 20| [ensure: break] y
|
|
#-----| -> [ensure: break] call to nil?
|
|
|
|
# 20| [ensure: raise] y
|
|
#-----| -> [ensure: raise] call to nil?
|
|
|
|
# 20| then ...
|
|
#-----| -> if ...
|
|
|
|
# 20| [ensure: break] then ...
|
|
#-----| -> [ensure: break] if ...
|
|
|
|
# 20| [ensure: raise] then ...
|
|
#-----| -> [ensure: raise] if ...
|
|
|
|
# 21| call to puts
|
|
#-----| -> then ...
|
|
|
|
# 21| [ensure: break] call to puts
|
|
#-----| -> [ensure: break] then ...
|
|
|
|
# 21| [ensure: raise] call to puts
|
|
#-----| -> [ensure: raise] then ...
|
|
|
|
# 21| self
|
|
#-----| -> "y nil"
|
|
|
|
# 21| [ensure: break] self
|
|
#-----| -> [ensure: break] "y nil"
|
|
|
|
# 21| [ensure: raise] self
|
|
#-----| -> [ensure: raise] "y nil"
|
|
|
|
# 21| "y nil"
|
|
#-----| -> call to puts
|
|
|
|
# 21| [ensure: break] "y nil"
|
|
#-----| -> [ensure: break] call to puts
|
|
|
|
# 21| [ensure: raise] "y nil"
|
|
#-----| -> [ensure: raise] call to puts
|
|
|
|
# 27| enter m3
|
|
#-----| -> x
|
|
|
|
# 27| m3
|
|
#-----| -> m4
|
|
|
|
# 27| exit m3
|
|
|
|
# 27| exit m3 (abnormal)
|
|
#-----| -> exit m3
|
|
|
|
# 27| exit m3 (normal)
|
|
#-----| -> exit m3
|
|
|
|
# 27| x
|
|
#-----| -> y
|
|
|
|
# 27| y
|
|
#-----| -> x
|
|
|
|
# 29| if ...
|
|
#-----| -> y
|
|
|
|
# 29| call to nil?
|
|
#-----| false -> if ...
|
|
#-----| true -> return
|
|
#-----| raise -> [ensure: raise] y
|
|
|
|
# 29| x
|
|
#-----| -> call to nil?
|
|
|
|
# 30| return
|
|
#-----| return -> [ensure: return] y
|
|
|
|
# 32| ensure ...
|
|
#-----| -> self
|
|
|
|
# 32| [ensure: return] ensure ...
|
|
#-----| return -> exit m3 (normal)
|
|
|
|
# 32| [ensure: raise] ensure ...
|
|
#-----| raise -> exit m3 (abnormal)
|
|
|
|
# 33| while ...
|
|
#-----| -> ensure ...
|
|
|
|
# 33| [ensure: return] while ...
|
|
#-----| -> [ensure: return] ensure ...
|
|
|
|
# 33| [ensure: raise] while ...
|
|
#-----| -> [ensure: raise] ensure ...
|
|
|
|
# 33| ... < ...
|
|
#-----| false -> while ...
|
|
#-----| true -> x
|
|
|
|
# 33| [ensure: return] ... < ...
|
|
#-----| false -> [ensure: return] while ...
|
|
#-----| true -> [ensure: return] x
|
|
|
|
# 33| [ensure: raise] ... < ...
|
|
#-----| false -> [ensure: raise] while ...
|
|
#-----| true -> [ensure: raise] x
|
|
|
|
# 33| y
|
|
#-----| -> 0
|
|
|
|
# 33| [ensure: return] y
|
|
#-----| -> [ensure: return] 0
|
|
|
|
# 33| [ensure: raise] y
|
|
#-----| -> [ensure: raise] 0
|
|
|
|
# 33| 0
|
|
#-----| -> ... < ...
|
|
|
|
# 33| [ensure: return] 0
|
|
#-----| -> [ensure: return] ... < ...
|
|
|
|
# 33| [ensure: raise] 0
|
|
#-----| -> [ensure: raise] ... < ...
|
|
|
|
# 33| do ...
|
|
#-----| -> y
|
|
|
|
# 33| [ensure: return] do ...
|
|
#-----| -> [ensure: return] y
|
|
|
|
# 33| [ensure: raise] do ...
|
|
#-----| -> [ensure: raise] y
|
|
|
|
# 35| if ...
|
|
#-----| -> do ...
|
|
|
|
# 35| [ensure: return] if ...
|
|
#-----| -> [ensure: return] do ...
|
|
|
|
# 35| [ensure: raise] if ...
|
|
#-----| -> [ensure: raise] do ...
|
|
|
|
# 35| ... > ...
|
|
#-----| true -> break
|
|
#-----| false -> if ...
|
|
|
|
# 35| [ensure: return] ... > ...
|
|
#-----| true -> [ensure: return] break
|
|
#-----| false -> [ensure: return] if ...
|
|
|
|
# 35| [ensure: raise] ... > ...
|
|
#-----| true -> [ensure: raise] break
|
|
#-----| false -> [ensure: raise] if ...
|
|
|
|
# 35| x
|
|
#-----| -> 0
|
|
|
|
# 35| [ensure: return] x
|
|
#-----| -> [ensure: return] 0
|
|
|
|
# 35| [ensure: raise] x
|
|
#-----| -> [ensure: raise] 0
|
|
|
|
# 35| 0
|
|
#-----| -> ... > ...
|
|
|
|
# 35| [ensure: return] 0
|
|
#-----| -> [ensure: return] ... > ...
|
|
|
|
# 35| [ensure: raise] 0
|
|
#-----| -> [ensure: raise] ... > ...
|
|
|
|
# 36| break
|
|
#-----| break -> while ...
|
|
|
|
# 36| [ensure: return] break
|
|
#-----| break -> [ensure: return] while ...
|
|
|
|
# 36| [ensure: raise] break
|
|
#-----| break -> [ensure: raise] while ...
|
|
|
|
# 41| call to puts
|
|
#-----| -> exit m3 (normal)
|
|
|
|
# 41| self
|
|
#-----| -> "Done"
|
|
|
|
# 41| "Done"
|
|
#-----| -> call to puts
|
|
|
|
# 44| enter m4
|
|
#-----| -> x
|
|
|
|
# 44| m4
|
|
#-----| -> exit break_ensure.rb (normal)
|
|
|
|
# 44| exit m4
|
|
|
|
# 44| exit m4 (normal)
|
|
#-----| -> exit m4
|
|
|
|
# 44| x
|
|
#-----| -> x
|
|
|
|
# 45| while ...
|
|
#-----| -> exit m4 (normal)
|
|
|
|
# 45| ... < ...
|
|
#-----| false -> while ...
|
|
#-----| true -> x
|
|
|
|
# 45| x
|
|
#-----| -> 0
|
|
|
|
# 45| 0
|
|
#-----| -> ... < ...
|
|
|
|
# 45| do ...
|
|
#-----| -> x
|
|
|
|
# 47| if ...
|
|
#-----| -> x
|
|
|
|
# 47| ... > ...
|
|
#-----| false -> if ...
|
|
#-----| raise -> [ensure: raise] x
|
|
#-----| true -> self
|
|
|
|
# 47| x
|
|
#-----| -> 1
|
|
|
|
# 47| 1
|
|
#-----| -> ... > ...
|
|
|
|
# 48| call to raise
|
|
#-----| raise -> [ensure: raise] x
|
|
|
|
# 48| self
|
|
#-----| -> ""
|
|
|
|
# 48| ""
|
|
#-----| -> call to raise
|
|
|
|
# 50| ensure ...
|
|
#-----| -> do ...
|
|
|
|
# 50| [ensure: raise] ensure ...
|
|
#-----| raise -> while ...
|
|
|
|
# 51| if ...
|
|
#-----| -> ensure ...
|
|
|
|
# 51| [ensure: raise] if ...
|
|
#-----| -> [ensure: raise] ensure ...
|
|
|
|
# 51| ... > ...
|
|
#-----| false -> if ...
|
|
#-----| true -> 10
|
|
|
|
# 51| [ensure: raise] ... > ...
|
|
#-----| false -> [ensure: raise] if ...
|
|
#-----| true -> [ensure: raise] 10
|
|
|
|
# 51| x
|
|
#-----| -> 0
|
|
|
|
# 51| [ensure: raise] x
|
|
#-----| -> [ensure: raise] 0
|
|
|
|
# 51| 0
|
|
#-----| -> ... > ...
|
|
|
|
# 51| [ensure: raise] 0
|
|
#-----| -> [ensure: raise] ... > ...
|
|
|
|
# 52| break
|
|
#-----| break -> while ...
|
|
|
|
# 52| [ensure: raise] break
|
|
#-----| break -> while ...
|
|
|
|
# 52| 10
|
|
#-----| -> break
|
|
|
|
# 52| [ensure: raise] 10
|
|
#-----| -> [ensure: raise] break
|
|
|
|
case.rb:
|
|
# 1| enter if_in_case
|
|
#-----| -> case ...
|
|
|
|
# 1| enter case.rb
|
|
#-----| -> if_in_case
|
|
|
|
# 1| if_in_case
|
|
#-----| -> case_match
|
|
|
|
# 1| exit if_in_case
|
|
|
|
# 1| exit case.rb
|
|
|
|
# 1| exit if_in_case (normal)
|
|
#-----| -> exit if_in_case
|
|
|
|
# 1| exit case.rb (normal)
|
|
#-----| -> exit case.rb
|
|
|
|
# 2| case ...
|
|
#-----| -> self
|
|
|
|
# 2| call to x1
|
|
#-----| -> when ...
|
|
|
|
# 2| self
|
|
#-----| -> call to x1
|
|
|
|
# 3| when ...
|
|
#-----| -> 1
|
|
|
|
# 3| 1
|
|
#-----| no-match -> when ...
|
|
#-----| match -> self
|
|
|
|
# 3| then ...
|
|
#-----| -> exit if_in_case (normal)
|
|
|
|
# 3| ( ... )
|
|
#-----| -> then ...
|
|
|
|
# 3| if ...
|
|
#-----| -> ( ... )
|
|
|
|
# 3| call to x2
|
|
#-----| false -> if ...
|
|
#-----| true -> self
|
|
|
|
# 3| self
|
|
#-----| -> call to x2
|
|
|
|
# 3| then ...
|
|
#-----| -> if ...
|
|
|
|
# 3| call to puts
|
|
#-----| -> then ...
|
|
|
|
# 3| self
|
|
#-----| -> "x2"
|
|
|
|
# 3| "x2"
|
|
#-----| -> call to puts
|
|
|
|
# 4| when ...
|
|
#-----| -> 2
|
|
|
|
# 4| 2
|
|
#-----| match -> self
|
|
#-----| no-match -> exit if_in_case (normal)
|
|
|
|
# 4| then ...
|
|
#-----| -> exit if_in_case (normal)
|
|
|
|
# 4| call to puts
|
|
#-----| -> then ...
|
|
|
|
# 4| self
|
|
#-----| -> "2"
|
|
|
|
# 4| "2"
|
|
#-----| -> call to puts
|
|
|
|
# 8| enter case_match
|
|
#-----| -> value
|
|
|
|
# 8| case_match
|
|
#-----| -> case_match_no_match
|
|
|
|
# 8| exit case_match
|
|
|
|
# 8| exit case_match (normal)
|
|
#-----| -> exit case_match
|
|
|
|
# 8| value
|
|
#-----| -> case ...
|
|
|
|
# 9| case ...
|
|
#-----| -> value
|
|
|
|
# 9| value
|
|
#-----| -> in ... then ...
|
|
|
|
# 10| in ... then ...
|
|
#-----| -> 0
|
|
|
|
# 10| 0
|
|
#-----| no-match -> in ... then ...
|
|
#-----| match -> exit case_match (normal)
|
|
|
|
# 11| in ... then ...
|
|
#-----| -> 1
|
|
|
|
# 11| 1
|
|
#-----| no-match -> in ... then ...
|
|
#-----| match -> 3
|
|
|
|
# 11| then ...
|
|
#-----| -> exit case_match (normal)
|
|
|
|
# 11| 3
|
|
#-----| -> then ...
|
|
|
|
# 12| in ... then ...
|
|
#-----| -> 2
|
|
|
|
# 12| 2
|
|
#-----| no-match -> in ... then ...
|
|
#-----| match -> 4
|
|
|
|
# 12| then ...
|
|
#-----| -> exit case_match (normal)
|
|
|
|
# 13| 4
|
|
#-----| -> then ...
|
|
|
|
# 14| in ... then ...
|
|
#-----| -> x
|
|
|
|
# 14| x
|
|
#-----| match -> x
|
|
|
|
# 14| ... == ...
|
|
#-----| false -> in ... then ...
|
|
#-----| true -> 6
|
|
|
|
# 14| x
|
|
#-----| -> 5
|
|
|
|
# 14| 5
|
|
#-----| -> ... == ...
|
|
|
|
# 14| then ...
|
|
#-----| -> exit case_match (normal)
|
|
|
|
# 14| 6
|
|
#-----| -> then ...
|
|
|
|
# 15| in ... then ...
|
|
#-----| -> x
|
|
|
|
# 15| x
|
|
#-----| match -> x
|
|
|
|
# 15| ... < ...
|
|
#-----| false -> 7
|
|
#-----| true -> 8
|
|
|
|
# 15| x
|
|
#-----| -> 0
|
|
|
|
# 15| 0
|
|
#-----| -> ... < ...
|
|
|
|
# 15| then ...
|
|
#-----| -> exit case_match (normal)
|
|
|
|
# 15| 7
|
|
#-----| -> then ...
|
|
|
|
# 16| else ...
|
|
#-----| -> exit case_match (normal)
|
|
|
|
# 16| 8
|
|
#-----| -> else ...
|
|
|
|
# 20| enter case_match_no_match
|
|
#-----| -> value
|
|
|
|
# 20| case_match_no_match
|
|
#-----| -> case_match_raise
|
|
|
|
# 20| exit case_match_no_match
|
|
|
|
# 20| exit case_match_no_match (abnormal)
|
|
#-----| -> exit case_match_no_match
|
|
|
|
# 20| exit case_match_no_match (normal)
|
|
#-----| -> exit case_match_no_match
|
|
|
|
# 20| value
|
|
#-----| -> case ...
|
|
|
|
# 21| case ...
|
|
#-----| -> value
|
|
|
|
# 21| value
|
|
#-----| -> in ... then ...
|
|
|
|
# 22| in ... then ...
|
|
#-----| -> 1
|
|
|
|
# 22| 1
|
|
#-----| raise -> exit case_match_no_match (abnormal)
|
|
#-----| match -> exit case_match_no_match (normal)
|
|
|
|
# 26| enter case_match_raise
|
|
#-----| -> value
|
|
|
|
# 26| case_match_raise
|
|
#-----| -> case_match_array
|
|
|
|
# 26| exit case_match_raise
|
|
|
|
# 26| exit case_match_raise (abnormal)
|
|
#-----| -> exit case_match_raise
|
|
|
|
# 26| exit case_match_raise (normal)
|
|
#-----| -> exit case_match_raise
|
|
|
|
# 26| value
|
|
#-----| -> case ...
|
|
|
|
# 27| case ...
|
|
#-----| -> value
|
|
|
|
# 27| value
|
|
#-----| -> in ... then ...
|
|
|
|
# 28| in ... then ...
|
|
#-----| -> -> { ... }
|
|
|
|
# 28| enter -> { ... }
|
|
#-----| -> x
|
|
|
|
# 28| -> { ... }
|
|
#-----| raise -> exit case_match_raise (abnormal)
|
|
#-----| match -> exit case_match_raise (normal)
|
|
|
|
# 28| exit -> { ... }
|
|
|
|
# 28| exit -> { ... } (abnormal)
|
|
#-----| -> exit -> { ... }
|
|
|
|
# 28| x
|
|
#-----| -> self
|
|
|
|
# 28| call to raise
|
|
#-----| raise -> exit -> { ... } (abnormal)
|
|
|
|
# 28| self
|
|
#-----| -> "oops"
|
|
|
|
# 28| "oops"
|
|
#-----| -> call to raise
|
|
|
|
# 32| enter case_match_array
|
|
#-----| -> value
|
|
|
|
# 32| case_match_array
|
|
#-----| -> case_match_find
|
|
|
|
# 32| exit case_match_array
|
|
|
|
# 32| exit case_match_array (abnormal)
|
|
#-----| -> exit case_match_array
|
|
|
|
# 32| exit case_match_array (normal)
|
|
#-----| -> exit case_match_array
|
|
|
|
# 32| value
|
|
#-----| -> case ...
|
|
|
|
# 33| case ...
|
|
#-----| -> value
|
|
|
|
# 33| value
|
|
#-----| -> in ... then ...
|
|
|
|
# 34| in ... then ...
|
|
#-----| -> [ ..., * ]
|
|
|
|
# 34| [ ..., * ]
|
|
#-----| no-match -> in ... then ...
|
|
#-----| match -> exit case_match_array (normal)
|
|
|
|
# 35| in ... then ...
|
|
#-----| -> [ ..., * ]
|
|
|
|
# 35| [ ..., * ]
|
|
#-----| no-match -> in ... then ...
|
|
#-----| match -> x
|
|
|
|
# 35| x
|
|
#-----| match -> exit case_match_array (normal)
|
|
|
|
# 36| in ... then ...
|
|
#-----| -> [ ..., * ]
|
|
|
|
# 36| [ ..., * ]
|
|
#-----| no-match -> in ... then ...
|
|
#-----| match -> x
|
|
|
|
# 36| x
|
|
#-----| match -> exit case_match_array (normal)
|
|
|
|
# 37| in ... then ...
|
|
#-----| -> Bar
|
|
|
|
# 37| [ ..., * ]
|
|
#-----| match -> a
|
|
#-----| raise -> exit case_match_array (abnormal)
|
|
|
|
# 37| Bar
|
|
#-----| match -> [ ..., * ]
|
|
#-----| raise -> exit case_match_array (abnormal)
|
|
|
|
# 37| a
|
|
#-----| match -> b
|
|
|
|
# 37| b
|
|
#-----| match -> c
|
|
|
|
# 37| c
|
|
#-----| -> d
|
|
|
|
# 37| d
|
|
#-----| match -> e
|
|
|
|
# 37| e
|
|
#-----| match -> exit case_match_array (normal)
|
|
|
|
# 41| enter case_match_find
|
|
#-----| -> value
|
|
|
|
# 41| case_match_find
|
|
#-----| -> case_match_hash
|
|
|
|
# 41| exit case_match_find
|
|
|
|
# 41| exit case_match_find (abnormal)
|
|
#-----| -> exit case_match_find
|
|
|
|
# 41| exit case_match_find (normal)
|
|
#-----| -> exit case_match_find
|
|
|
|
# 41| value
|
|
#-----| -> case ...
|
|
|
|
# 42| case ...
|
|
#-----| -> value
|
|
|
|
# 42| value
|
|
#-----| -> in ... then ...
|
|
|
|
# 43| in ... then ...
|
|
#-----| -> [ *,...,* ]
|
|
|
|
# 43| [ *,...,* ]
|
|
#-----| match -> x
|
|
#-----| raise -> exit case_match_find (abnormal)
|
|
|
|
# 43| x
|
|
#-----| -> 1
|
|
|
|
# 43| 1
|
|
#-----| match -> 2
|
|
#-----| raise -> exit case_match_find (abnormal)
|
|
|
|
# 43| 2
|
|
#-----| match -> y
|
|
#-----| raise -> exit case_match_find (abnormal)
|
|
|
|
# 43| y
|
|
#-----| -> exit case_match_find (normal)
|
|
|
|
# 47| enter case_match_hash
|
|
#-----| -> value
|
|
|
|
# 47| case_match_hash
|
|
#-----| -> case_match_variable
|
|
|
|
# 47| exit case_match_hash
|
|
|
|
# 47| exit case_match_hash (abnormal)
|
|
#-----| -> exit case_match_hash
|
|
|
|
# 47| exit case_match_hash (normal)
|
|
#-----| -> exit case_match_hash
|
|
|
|
# 47| value
|
|
#-----| -> case ...
|
|
|
|
# 48| case ...
|
|
#-----| -> value
|
|
|
|
# 48| value
|
|
#-----| -> in ... then ...
|
|
|
|
# 49| in ... then ...
|
|
#-----| -> Foo
|
|
|
|
# 49| { ..., ** }
|
|
#-----| no-match -> in ... then ...
|
|
#-----| match -> 1
|
|
|
|
# 49| Foo
|
|
#-----| -> Bar
|
|
|
|
# 49| Bar
|
|
#-----| match -> { ..., ** }
|
|
#-----| no-match -> in ... then ...
|
|
|
|
# 49| 1
|
|
#-----| no-match -> in ... then ...
|
|
#-----| match -> rest
|
|
|
|
# 49| rest
|
|
#-----| -> exit case_match_hash (normal)
|
|
|
|
# 50| in ... then ...
|
|
#-----| -> Bar
|
|
|
|
# 50| { ..., ** }
|
|
#-----| no-match -> in ... then ...
|
|
#-----| match -> 1
|
|
|
|
# 50| Bar
|
|
#-----| match -> { ..., ** }
|
|
#-----| no-match -> in ... then ...
|
|
|
|
# 50| 1
|
|
#-----| no-match -> in ... then ...
|
|
#-----| match -> exit case_match_hash (normal)
|
|
|
|
# 51| in ... then ...
|
|
#-----| -> Bar
|
|
|
|
# 51| { ..., ** }
|
|
#-----| raise -> exit case_match_hash (abnormal)
|
|
#-----| match -> exit case_match_hash (normal)
|
|
|
|
# 51| Bar
|
|
#-----| match -> { ..., ** }
|
|
#-----| raise -> exit case_match_hash (abnormal)
|
|
|
|
# 55| enter case_match_variable
|
|
#-----| -> value
|
|
|
|
# 55| case_match_variable
|
|
#-----| -> case_match_underscore
|
|
|
|
# 55| exit case_match_variable
|
|
|
|
# 55| exit case_match_variable (normal)
|
|
#-----| -> exit case_match_variable
|
|
|
|
# 55| value
|
|
#-----| -> case ...
|
|
|
|
# 56| case ...
|
|
#-----| -> value
|
|
|
|
# 56| value
|
|
#-----| -> in ... then ...
|
|
|
|
# 57| in ... then ...
|
|
#-----| -> 5
|
|
|
|
# 57| 5
|
|
#-----| no-match -> in ... then ...
|
|
#-----| match -> exit case_match_variable (normal)
|
|
|
|
# 58| in ... then ...
|
|
#-----| -> var
|
|
|
|
# 58| var
|
|
#-----| match -> exit case_match_variable (normal)
|
|
|
|
# 63| enter case_match_underscore
|
|
#-----| -> value
|
|
|
|
# 63| case_match_underscore
|
|
#-----| -> case_match_various
|
|
|
|
# 63| exit case_match_underscore
|
|
|
|
# 63| exit case_match_underscore (normal)
|
|
#-----| -> exit case_match_underscore
|
|
|
|
# 63| value
|
|
#-----| -> case ...
|
|
|
|
# 64| case ...
|
|
#-----| -> value
|
|
|
|
# 64| value
|
|
#-----| -> in ... then ...
|
|
|
|
# 65| in ... then ...
|
|
#-----| -> ... | ...
|
|
|
|
# 65| ... | ...
|
|
#-----| -> 5
|
|
|
|
# 65| 5
|
|
#-----| no-match -> _
|
|
#-----| match -> exit case_match_underscore (normal)
|
|
|
|
# 65| _
|
|
#-----| match -> exit case_match_underscore (normal)
|
|
|
|
# 69| enter case_match_various
|
|
#-----| -> value
|
|
|
|
# 69| case_match_various
|
|
#-----| -> case_match_guard_no_else
|
|
|
|
# 69| exit case_match_various
|
|
|
|
# 69| exit case_match_various (abnormal)
|
|
#-----| -> exit case_match_various
|
|
|
|
# 69| exit case_match_various (normal)
|
|
#-----| -> exit case_match_various
|
|
|
|
# 69| value
|
|
#-----| -> foo
|
|
|
|
# 70| ... = ...
|
|
#-----| -> case ...
|
|
|
|
# 70| foo
|
|
#-----| -> 42
|
|
|
|
# 70| 42
|
|
#-----| -> ... = ...
|
|
|
|
# 72| case ...
|
|
#-----| -> value
|
|
|
|
# 72| value
|
|
#-----| -> in ... then ...
|
|
|
|
# 73| in ... then ...
|
|
#-----| -> 5
|
|
|
|
# 73| 5
|
|
#-----| no-match -> in ... then ...
|
|
#-----| match -> exit case_match_various (normal)
|
|
|
|
# 74| in ... then ...
|
|
#-----| -> ^...
|
|
|
|
# 74| ^...
|
|
#-----| -> foo
|
|
|
|
# 74| foo
|
|
#-----| no-match -> in ... then ...
|
|
#-----| match -> exit case_match_various (normal)
|
|
|
|
# 75| in ... then ...
|
|
#-----| -> "string"
|
|
|
|
# 75| "string"
|
|
#-----| no-match -> in ... then ...
|
|
#-----| match -> exit case_match_various (normal)
|
|
|
|
# 76| in ... then ...
|
|
#-----| -> Array
|
|
|
|
# 76| call to []
|
|
#-----| no-match -> in ... then ...
|
|
#-----| match -> exit case_match_various (normal)
|
|
|
|
# 76| Array
|
|
#-----| -> "foo"
|
|
|
|
# 76| "foo"
|
|
#-----| -> "bar"
|
|
|
|
# 76| "bar"
|
|
#-----| -> call to []
|
|
|
|
# 77| in ... then ...
|
|
#-----| -> Array
|
|
|
|
# 77| call to []
|
|
#-----| no-match -> in ... then ...
|
|
#-----| match -> exit case_match_various (normal)
|
|
|
|
# 77| Array
|
|
#-----| -> :"foo"
|
|
|
|
# 77| :"foo"
|
|
#-----| -> :"bar"
|
|
|
|
# 77| :"bar"
|
|
#-----| -> call to []
|
|
|
|
# 78| in ... then ...
|
|
#-----| -> /.*abc[0-9]/
|
|
|
|
# 78| /.*abc[0-9]/
|
|
#-----| no-match -> in ... then ...
|
|
#-----| match -> exit case_match_various (normal)
|
|
|
|
# 79| in ... then ...
|
|
#-----| -> 5
|
|
|
|
# 79| 5
|
|
#-----| -> 10
|
|
|
|
# 79| _ .. _
|
|
#-----| no-match -> in ... then ...
|
|
#-----| match -> exit case_match_various (normal)
|
|
|
|
# 79| 10
|
|
#-----| -> _ .. _
|
|
|
|
# 80| in ... then ...
|
|
#-----| -> 10
|
|
|
|
# 80| _ .. _
|
|
#-----| no-match -> in ... then ...
|
|
#-----| match -> exit case_match_various (normal)
|
|
|
|
# 80| 10
|
|
#-----| -> _ .. _
|
|
|
|
# 81| in ... then ...
|
|
#-----| -> 5
|
|
|
|
# 81| 5
|
|
#-----| -> _ .. _
|
|
|
|
# 81| _ .. _
|
|
#-----| no-match -> in ... then ...
|
|
#-----| match -> exit case_match_various (normal)
|
|
|
|
# 82| in ... then ...
|
|
#-----| -> ... => ...
|
|
|
|
# 82| ... => ...
|
|
#-----| -> 5
|
|
|
|
# 82| 5
|
|
#-----| no-match -> in ... then ...
|
|
#-----| match -> x
|
|
|
|
# 82| x
|
|
#-----| -> exit case_match_various (normal)
|
|
|
|
# 83| in ... then ...
|
|
#-----| -> ... | ...
|
|
|
|
# 83| ... | ...
|
|
#-----| -> 5
|
|
|
|
# 83| 5
|
|
#-----| no-match -> ^...
|
|
#-----| match -> exit case_match_various (normal)
|
|
|
|
# 83| ^...
|
|
#-----| -> foo
|
|
|
|
# 83| foo
|
|
#-----| no-match -> "string"
|
|
#-----| match -> exit case_match_various (normal)
|
|
|
|
# 83| "string"
|
|
#-----| no-match -> in ... then ...
|
|
#-----| match -> exit case_match_various (normal)
|
|
|
|
# 84| in ... then ...
|
|
#-----| -> Foo
|
|
|
|
# 84| Bar
|
|
#-----| no-match -> in ... then ...
|
|
#-----| match -> exit case_match_various (normal)
|
|
|
|
# 84| Foo
|
|
#-----| -> Bar
|
|
|
|
# 85| in ... then ...
|
|
#-----| -> -> { ... }
|
|
|
|
# 85| enter -> { ... }
|
|
#-----| -> x
|
|
|
|
# 85| -> { ... }
|
|
#-----| no-match -> in ... then ...
|
|
#-----| match -> exit case_match_various (normal)
|
|
|
|
# 85| exit -> { ... }
|
|
|
|
# 85| exit -> { ... } (normal)
|
|
#-----| -> exit -> { ... }
|
|
|
|
# 85| x
|
|
#-----| -> x
|
|
|
|
# 85| ... == ...
|
|
#-----| -> exit -> { ... } (normal)
|
|
|
|
# 85| x
|
|
#-----| -> 10
|
|
|
|
# 85| 10
|
|
#-----| -> ... == ...
|
|
|
|
# 86| in ... then ...
|
|
#-----| -> :foo
|
|
|
|
# 86| :foo
|
|
#-----| no-match -> in ... then ...
|
|
#-----| match -> exit case_match_various (normal)
|
|
|
|
# 87| in ... then ...
|
|
#-----| -> :"foo bar"
|
|
|
|
# 87| :"foo bar"
|
|
#-----| no-match -> in ... then ...
|
|
#-----| match -> exit case_match_various (normal)
|
|
|
|
# 88| in ... then ...
|
|
#-----| -> ... | ...
|
|
|
|
# 88| ... | ...
|
|
#-----| -> 5
|
|
|
|
# 88| - ...
|
|
#-----| no-match -> 10
|
|
#-----| match -> exit case_match_various (normal)
|
|
|
|
# 88| 5
|
|
#-----| -> - ...
|
|
|
|
# 88| + ...
|
|
#-----| no-match -> in ... then ...
|
|
#-----| match -> exit case_match_various (normal)
|
|
|
|
# 88| 10
|
|
#-----| -> + ...
|
|
|
|
# 89| in ... then ...
|
|
#-----| -> ... | ...
|
|
|
|
# 89| ... | ...
|
|
#-----| -> nil
|
|
|
|
# 89| nil
|
|
#-----| no-match -> self
|
|
#-----| match -> exit case_match_various (normal)
|
|
|
|
# 89| self
|
|
#-----| no-match -> true
|
|
#-----| match -> exit case_match_various (normal)
|
|
|
|
# 89| true
|
|
#-----| no-match -> false
|
|
#-----| match -> exit case_match_various (normal)
|
|
|
|
# 89| false
|
|
#-----| no-match -> __LINE__
|
|
#-----| match -> exit case_match_various (normal)
|
|
|
|
# 89| __LINE__
|
|
#-----| no-match -> __FILE__
|
|
#-----| match -> exit case_match_various (normal)
|
|
|
|
# 89| __FILE__
|
|
#-----| no-match -> __ENCODING__
|
|
#-----| match -> exit case_match_various (normal)
|
|
|
|
# 89| __ENCODING__
|
|
#-----| no-match -> in ... then ...
|
|
#-----| match -> exit case_match_various (normal)
|
|
|
|
# 90| in ... then ...
|
|
#-----| -> ( ... )
|
|
|
|
# 90| ( ... )
|
|
#-----| -> 1
|
|
|
|
# 90| 1
|
|
#-----| -> _ .. _
|
|
|
|
# 90| _ .. _
|
|
#-----| no-match -> in ... then ...
|
|
#-----| match -> exit case_match_various (normal)
|
|
|
|
# 91| in ... then ...
|
|
#-----| -> ( ... )
|
|
|
|
# 91| ( ... )
|
|
#-----| -> ... | ...
|
|
|
|
# 91| ... | ...
|
|
#-----| -> 0
|
|
|
|
# 91| 0
|
|
#-----| no-match -> ""
|
|
#-----| match -> exit case_match_various (normal)
|
|
|
|
# 91| ""
|
|
#-----| no-match -> [ ..., * ]
|
|
#-----| match -> exit case_match_various (normal)
|
|
|
|
# 91| [ ..., * ]
|
|
#-----| no-match -> { ..., ** }
|
|
#-----| match -> exit case_match_various (normal)
|
|
|
|
# 91| { ..., ** }
|
|
#-----| raise -> exit case_match_various (abnormal)
|
|
#-----| match -> exit case_match_various (normal)
|
|
|
|
# 95| enter case_match_guard_no_else
|
|
#-----| -> value
|
|
|
|
# 95| case_match_guard_no_else
|
|
#-----| -> exit case.rb (normal)
|
|
|
|
# 95| exit case_match_guard_no_else
|
|
|
|
# 95| exit case_match_guard_no_else (abnormal)
|
|
#-----| -> exit case_match_guard_no_else
|
|
|
|
# 95| exit case_match_guard_no_else (normal)
|
|
#-----| -> exit case_match_guard_no_else
|
|
|
|
# 95| value
|
|
#-----| -> case ...
|
|
|
|
# 96| case ...
|
|
#-----| -> value
|
|
|
|
# 96| value
|
|
#-----| -> in ... then ...
|
|
|
|
# 97| in ... then ...
|
|
#-----| -> x
|
|
|
|
# 97| x
|
|
#-----| match -> x
|
|
|
|
# 97| ... == ...
|
|
#-----| true -> 6
|
|
#-----| raise -> exit case_match_guard_no_else (abnormal)
|
|
|
|
# 97| x
|
|
#-----| -> 5
|
|
|
|
# 97| 5
|
|
#-----| -> ... == ...
|
|
|
|
# 97| then ...
|
|
#-----| -> exit case_match_guard_no_else (normal)
|
|
|
|
# 97| 6
|
|
#-----| -> then ...
|
|
|
|
cfg.html.erb:
|
|
# 5| enter cfg.html.erb
|
|
#-----| -> @title
|
|
|
|
# 5| @title
|
|
#-----| -> self
|
|
|
|
# 5| exit cfg.html.erb
|
|
|
|
# 5| exit cfg.html.erb (normal)
|
|
#-----| -> exit cfg.html.erb
|
|
|
|
# 6| call to stylesheet_link_tag
|
|
#-----| -> self
|
|
|
|
# 6| self
|
|
#-----| -> "application"
|
|
|
|
# 6| "application"
|
|
#-----| -> :media
|
|
|
|
# 6| Pair
|
|
#-----| -> call to stylesheet_link_tag
|
|
|
|
# 6| :media
|
|
#-----| -> "all"
|
|
|
|
# 6| "all"
|
|
#-----| -> Pair
|
|
|
|
# 12| call to link_to
|
|
#-----| -> self
|
|
|
|
# 12| self
|
|
#-----| -> "A"
|
|
|
|
# 12| "A"
|
|
#-----| -> self
|
|
|
|
# 12| call to a
|
|
#-----| -> :id
|
|
|
|
# 12| self
|
|
#-----| -> call to a
|
|
|
|
# 12| :id
|
|
#-----| -> "a"
|
|
|
|
# 12| Pair
|
|
#-----| -> call to link_to
|
|
|
|
# 12| "a"
|
|
#-----| -> Pair
|
|
|
|
# 15| call to link_to
|
|
#-----| -> self
|
|
|
|
# 15| self
|
|
#-----| -> "B"
|
|
|
|
# 15| "B"
|
|
#-----| -> self
|
|
|
|
# 15| call to a
|
|
#-----| -> call to link_to
|
|
|
|
# 15| self
|
|
#-----| -> call to a
|
|
|
|
# 16| call to link_to
|
|
#-----| -> self
|
|
|
|
# 16| self
|
|
#-----| -> "C"
|
|
|
|
# 16| "C"
|
|
#-----| -> self
|
|
|
|
# 16| call to b
|
|
#-----| -> call to link_to
|
|
|
|
# 16| self
|
|
#-----| -> call to b
|
|
|
|
# 18| if ...
|
|
#-----| -> self
|
|
|
|
# 18| call to admin?
|
|
#-----| true -> self
|
|
#-----| false -> self
|
|
|
|
# 18| self
|
|
#-----| -> call to admin?
|
|
|
|
# 18| then ...
|
|
#-----| -> if ...
|
|
|
|
# 19| call to link_to
|
|
#-----| -> then ...
|
|
|
|
# 19| self
|
|
#-----| -> "D"
|
|
|
|
# 19| "D"
|
|
#-----| -> self
|
|
|
|
# 19| call to d
|
|
#-----| -> call to link_to
|
|
|
|
# 19| self
|
|
#-----| -> call to d
|
|
|
|
# 20| else ...
|
|
#-----| -> if ...
|
|
|
|
# 21| call to link_to
|
|
#-----| -> else ...
|
|
|
|
# 21| self
|
|
#-----| -> "E"
|
|
|
|
# 21| "E"
|
|
#-----| -> self
|
|
|
|
# 21| call to e
|
|
#-----| -> call to link_to
|
|
|
|
# 21| self
|
|
#-----| -> call to e
|
|
|
|
# 29| call to each
|
|
#-----| -> exit cfg.html.erb (normal)
|
|
|
|
# 29| call to collection
|
|
#-----| -> do ... end
|
|
|
|
# 29| self
|
|
#-----| -> call to collection
|
|
|
|
# 29| enter do ... end
|
|
#-----| -> key
|
|
|
|
# 29| do ... end
|
|
#-----| -> call to each
|
|
|
|
# 29| exit do ... end
|
|
|
|
# 29| exit do ... end (normal)
|
|
#-----| -> exit do ... end
|
|
|
|
# 29| key
|
|
#-----| -> value
|
|
|
|
# 29| value
|
|
#-----| -> key
|
|
|
|
# 30| key
|
|
#-----| -> value
|
|
|
|
# 30| value
|
|
#-----| -> exit do ... end (normal)
|
|
|
|
cfg.rb:
|
|
# 1| enter cfg.rb
|
|
#-----| -> self
|
|
|
|
# 1| bar
|
|
#-----| -> alias ...
|
|
|
|
# 1| exit cfg.rb
|
|
|
|
# 1| exit cfg.rb (normal)
|
|
#-----| -> exit cfg.rb
|
|
|
|
# 3| alias ...
|
|
#-----| -> foo
|
|
|
|
# 3| foo
|
|
#-----| -> bar
|
|
|
|
# 3| bar
|
|
#-----| -> b
|
|
|
|
# 5| ... = ...
|
|
#-----| -> Array
|
|
|
|
# 5| b
|
|
#-----| -> 42
|
|
|
|
# 5| 42
|
|
#-----| -> ... = ...
|
|
|
|
# 7| call to []
|
|
#-----| -> Array
|
|
|
|
# 7| Array
|
|
#-----| -> b
|
|
|
|
# 7| :"one#{...}"
|
|
#-----| -> :"another"
|
|
|
|
# 7| #{...}
|
|
#-----| -> :"one#{...}"
|
|
|
|
# 7| b
|
|
#-----| -> #{...}
|
|
|
|
# 7| :"another"
|
|
#-----| -> call to []
|
|
|
|
# 9| call to []
|
|
#-----| -> self
|
|
|
|
# 9| Array
|
|
#-----| -> b
|
|
|
|
# 9| "one#{...}"
|
|
#-----| -> "another"
|
|
|
|
# 9| #{...}
|
|
#-----| -> "one#{...}"
|
|
|
|
# 9| b
|
|
#-----| -> #{...}
|
|
|
|
# 9| "another"
|
|
#-----| -> call to []
|
|
|
|
# 12| call to puts
|
|
#-----| -> END { ... }
|
|
|
|
# 12| self
|
|
#-----| -> 4
|
|
|
|
# 12| 4
|
|
#-----| -> call to puts
|
|
|
|
# 15| BEGIN { ... }
|
|
#-----| -> bar
|
|
|
|
# 16| call to puts
|
|
#-----| -> BEGIN { ... }
|
|
|
|
# 16| self
|
|
#-----| -> "hello"
|
|
|
|
# 16| "hello"
|
|
#-----| -> call to puts
|
|
|
|
# 19| END { ... }
|
|
#-----| -> 41
|
|
|
|
# 23| ... + ...
|
|
#-----| -> 2
|
|
|
|
# 23| 41
|
|
#-----| -> 1
|
|
|
|
# 23| 1
|
|
#-----| -> ... + ...
|
|
|
|
# 25| call to times
|
|
#-----| -> self
|
|
|
|
# 25| 2
|
|
#-----| -> { ... }
|
|
|
|
# 25| enter { ... }
|
|
#-----| -> x
|
|
|
|
# 25| { ... }
|
|
#-----| -> call to times
|
|
|
|
# 25| exit { ... }
|
|
|
|
# 25| exit { ... } (normal)
|
|
#-----| -> exit { ... }
|
|
|
|
# 25| x
|
|
#-----| -> self
|
|
|
|
# 25| call to puts
|
|
#-----| -> exit { ... } (normal)
|
|
|
|
# 25| self
|
|
#-----| -> x
|
|
|
|
# 25| x
|
|
#-----| -> call to puts
|
|
|
|
# 27| call to puts
|
|
#-----| -> Proc
|
|
|
|
# 27| self
|
|
#-----| -> :puts
|
|
|
|
# 27| &...
|
|
#-----| -> call to puts
|
|
|
|
# 27| :puts
|
|
#-----| -> &...
|
|
|
|
# 29| call to new
|
|
#-----| -> true
|
|
|
|
# 29| Proc
|
|
#-----| -> { ... }
|
|
|
|
# 29| enter { ... }
|
|
#-----| -> x
|
|
|
|
# 29| { ... }
|
|
#-----| -> call to new
|
|
|
|
# 29| exit { ... }
|
|
|
|
# 29| exit { ... } (normal)
|
|
#-----| -> exit { ... }
|
|
|
|
# 29| x
|
|
#-----| -> x
|
|
|
|
# 29| call to call
|
|
#-----| -> exit { ... } (normal)
|
|
|
|
# 29| x
|
|
#-----| -> call to call
|
|
|
|
# 31| while ...
|
|
#-----| -> false
|
|
|
|
# 31| true
|
|
#-----| true -> 1
|
|
|
|
# 32| break
|
|
#-----| break -> while ...
|
|
|
|
# 32| 1
|
|
#-----| -> break
|
|
|
|
# 35| if ...
|
|
#-----| -> self
|
|
|
|
# 35| false
|
|
#-----| false -> if ...
|
|
|
|
# 39| call to puts
|
|
#-----| -> case ...
|
|
|
|
# 39| self
|
|
#-----| -> 42
|
|
|
|
# 39| 42
|
|
#-----| -> call to puts
|
|
|
|
# 41| case ...
|
|
#-----| -> 10
|
|
|
|
# 41| 10
|
|
#-----| -> when ...
|
|
|
|
# 42| when ...
|
|
#-----| -> 1
|
|
|
|
# 42| 1
|
|
#-----| no-match -> when ...
|
|
#-----| match -> self
|
|
|
|
# 42| then ...
|
|
#-----| -> case ...
|
|
|
|
# 42| call to puts
|
|
#-----| -> then ...
|
|
|
|
# 42| self
|
|
#-----| -> "one"
|
|
|
|
# 42| "one"
|
|
#-----| -> call to puts
|
|
|
|
# 43| when ...
|
|
#-----| -> 2
|
|
|
|
# 43| 2
|
|
#-----| no-match -> 3
|
|
#-----| match -> self
|
|
|
|
# 43| 3
|
|
#-----| no-match -> 4
|
|
#-----| match -> self
|
|
|
|
# 43| 4
|
|
#-----| match -> self
|
|
#-----| no-match -> self
|
|
|
|
# 43| then ...
|
|
#-----| -> case ...
|
|
|
|
# 43| call to puts
|
|
#-----| -> then ...
|
|
|
|
# 43| self
|
|
#-----| -> "some"
|
|
|
|
# 43| "some"
|
|
#-----| -> call to puts
|
|
|
|
# 44| else ...
|
|
#-----| -> case ...
|
|
|
|
# 44| call to puts
|
|
#-----| -> else ...
|
|
|
|
# 44| self
|
|
#-----| -> "many"
|
|
|
|
# 44| "many"
|
|
#-----| -> call to puts
|
|
|
|
# 47| case ...
|
|
#-----| -> when ...
|
|
|
|
# 48| when ...
|
|
#-----| -> b
|
|
|
|
# 48| ... == ...
|
|
#-----| false -> when ...
|
|
#-----| true -> self
|
|
|
|
# 48| b
|
|
#-----| -> 1
|
|
|
|
# 48| 1
|
|
#-----| -> ... == ...
|
|
|
|
# 48| then ...
|
|
#-----| -> chained
|
|
|
|
# 48| call to puts
|
|
#-----| -> then ...
|
|
|
|
# 48| self
|
|
#-----| -> "one"
|
|
|
|
# 48| "one"
|
|
#-----| -> call to puts
|
|
|
|
# 49| when ...
|
|
#-----| -> b
|
|
|
|
# 49| ... == ...
|
|
#-----| false -> b
|
|
#-----| true -> self
|
|
|
|
# 49| b
|
|
#-----| -> 0
|
|
|
|
# 49| 0
|
|
#-----| -> ... == ...
|
|
|
|
# 49| ... > ...
|
|
#-----| false -> chained
|
|
#-----| true -> self
|
|
|
|
# 49| b
|
|
#-----| -> 1
|
|
|
|
# 49| 1
|
|
#-----| -> ... > ...
|
|
|
|
# 49| then ...
|
|
#-----| -> chained
|
|
|
|
# 49| call to puts
|
|
#-----| -> then ...
|
|
|
|
# 49| self
|
|
#-----| -> "some"
|
|
|
|
# 49| "some"
|
|
#-----| -> call to puts
|
|
|
|
# 52| ... = ...
|
|
#-----| -> character
|
|
|
|
# 52| chained
|
|
#-----| -> "a"
|
|
|
|
# 52| "a"
|
|
#-----| -> chained
|
|
|
|
# 52| "#{...}"
|
|
#-----| -> "string"
|
|
|
|
# 52| #{...}
|
|
#-----| -> "#{...}"
|
|
|
|
# 52| chained
|
|
#-----| -> #{...}
|
|
|
|
# 52| "string"
|
|
#-----| -> ... = ...
|
|
|
|
# 54| ... = ...
|
|
#-----| -> Silly
|
|
|
|
# 54| character
|
|
#-----| -> ?\x40
|
|
|
|
# 54| ?\x40
|
|
#-----| -> ... = ...
|
|
|
|
# 58| Silly
|
|
#-----| -> Object
|
|
|
|
# 58| Object
|
|
#-----| -> complex
|
|
|
|
# 59| ... = ...
|
|
#-----| -> conditional
|
|
|
|
# 59| complex
|
|
#-----| -> 10-2i
|
|
|
|
# 59| 10-2i
|
|
#-----| -> ... = ...
|
|
|
|
# 60| ... = ...
|
|
#-----| -> C
|
|
|
|
# 60| conditional
|
|
#-----| -> self
|
|
|
|
# 60| ... < ...
|
|
#-----| true -> "hello"
|
|
#-----| false -> "bye"
|
|
|
|
# 60| ... ? ... : ...
|
|
#-----| -> ... = ...
|
|
|
|
# 60| call to b
|
|
#-----| -> 10
|
|
|
|
# 60| self
|
|
#-----| -> call to b
|
|
|
|
# 60| 10
|
|
#-----| -> ... < ...
|
|
|
|
# 60| "hello"
|
|
#-----| -> ... ? ... : ...
|
|
|
|
# 60| "bye"
|
|
#-----| -> ... ? ... : ...
|
|
|
|
# 61| ... = ...
|
|
#-----| -> __synth__0
|
|
|
|
# 61| C
|
|
#-----| -> "constant"
|
|
|
|
# 61| "constant"
|
|
#-----| -> ... = ...
|
|
|
|
# 62| ...
|
|
#-----| -> pattern
|
|
|
|
# 62| x
|
|
#-----| -> __synth__0
|
|
|
|
# 62| ... = ...
|
|
#-----| -> __synth__0__1
|
|
|
|
# 62| call to []
|
|
#-----| -> ... = ...
|
|
|
|
# 62| 0
|
|
#-----| -> call to []
|
|
|
|
# 62| __synth__0
|
|
#-----| -> 0
|
|
|
|
# 62| call to []
|
|
#-----| -> * ...
|
|
|
|
# 62| ...
|
|
#-----| -> ...
|
|
|
|
# 62| 1
|
|
#-----| -> call to []
|
|
|
|
# 62| __synth__0
|
|
#-----| -> 1
|
|
|
|
# 62| ... = ...
|
|
#-----| -> y
|
|
|
|
# 62| * ...
|
|
#-----| -> ... = ...
|
|
|
|
# 62| __synth__0__1
|
|
#-----| -> __synth__0
|
|
|
|
# 62| y
|
|
#-----| -> __synth__0__1
|
|
|
|
# 62| ... = ...
|
|
#-----| -> z
|
|
|
|
# 62| call to []
|
|
#-----| -> ... = ...
|
|
|
|
# 62| 0
|
|
#-----| -> call to []
|
|
|
|
# 62| __synth__0__1
|
|
#-----| -> 0
|
|
|
|
# 62| z
|
|
#-----| -> __synth__0__1
|
|
|
|
# 62| ... = ...
|
|
#-----| -> ...
|
|
|
|
# 62| call to []
|
|
#-----| -> ... = ...
|
|
|
|
# 62| 1
|
|
#-----| -> call to []
|
|
|
|
# 62| __synth__0__1
|
|
#-----| -> 1
|
|
|
|
# 62| call to []
|
|
#-----| -> * ...
|
|
|
|
# 62| ... = ...
|
|
#-----| -> x
|
|
|
|
# 62| Array
|
|
#-----| -> 1
|
|
|
|
# 62| * ...
|
|
#-----| -> ... = ...
|
|
|
|
# 62| __synth__0
|
|
#-----| -> Array
|
|
|
|
# 62| 1
|
|
#-----| -> Array
|
|
|
|
# 62| call to []
|
|
#-----| -> call to []
|
|
|
|
# 62| Array
|
|
#-----| -> 2
|
|
|
|
# 62| 2
|
|
#-----| -> 3
|
|
|
|
# 62| 3
|
|
#-----| -> call to []
|
|
|
|
# 63| enter pattern
|
|
#-----| -> a
|
|
|
|
# 63| pattern
|
|
#-----| -> items
|
|
|
|
# 63| exit pattern
|
|
|
|
# 63| exit pattern (normal)
|
|
#-----| -> exit pattern
|
|
|
|
# 63| (..., ...)
|
|
#-----| -> self
|
|
|
|
# 63| a
|
|
#-----| -> b
|
|
|
|
# 63| b
|
|
#-----| -> (..., ...)
|
|
|
|
# 64| call to puts
|
|
#-----| -> self
|
|
|
|
# 64| self
|
|
#-----| -> a
|
|
|
|
# 64| a
|
|
#-----| -> call to puts
|
|
|
|
# 65| call to puts
|
|
#-----| -> exit pattern (normal)
|
|
|
|
# 65| self
|
|
#-----| -> b
|
|
|
|
# 65| b
|
|
#-----| -> call to puts
|
|
|
|
# 67| ... = ...
|
|
#-----| -> self
|
|
|
|
# 67| items
|
|
#-----| -> Array
|
|
|
|
# 67| call to []
|
|
#-----| -> ... = ...
|
|
|
|
# 67| Array
|
|
#-----| -> 1
|
|
|
|
# 67| 1
|
|
#-----| -> 2
|
|
|
|
# 67| 2
|
|
#-----| -> 3
|
|
|
|
# 67| 3
|
|
#-----| -> call to []
|
|
|
|
# 68| call to puts
|
|
#-----| -> print
|
|
|
|
# 68| self
|
|
#-----| -> items
|
|
|
|
# 68| ...[...]
|
|
#-----| -> call to puts
|
|
|
|
# 68| items
|
|
#-----| -> 2
|
|
|
|
# 68| 2
|
|
#-----| -> ...[...]
|
|
|
|
# 69| enter print
|
|
#-----| -> self
|
|
|
|
# 69| print
|
|
#-----| -> x
|
|
|
|
# 69| exit print
|
|
|
|
# 69| exit print (normal)
|
|
#-----| -> exit print
|
|
|
|
# 70| call to puts
|
|
#-----| -> exit print (normal)
|
|
|
|
# 70| self
|
|
#-----| -> "silly"
|
|
|
|
# 70| "silly"
|
|
#-----| -> call to puts
|
|
|
|
# 74| ... = ...
|
|
#-----| -> x
|
|
|
|
# 74| x
|
|
#-----| -> 42
|
|
|
|
# 74| 42
|
|
#-----| -> ... = ...
|
|
|
|
# 75| if ...
|
|
#-----| -> ;
|
|
|
|
# 75| ... < ...
|
|
#-----| true -> 0
|
|
#-----| false -> x
|
|
|
|
# 75| x
|
|
#-----| -> 0
|
|
|
|
# 75| 0
|
|
#-----| -> ... < ...
|
|
|
|
# 75| then ...
|
|
#-----| -> if ...
|
|
|
|
# 75| 0
|
|
#-----| -> then ...
|
|
|
|
# 75| elsif ...
|
|
#-----| -> if ...
|
|
|
|
# 75| ... > ...
|
|
#-----| true -> 10
|
|
#-----| false -> x
|
|
|
|
# 75| x
|
|
#-----| -> 10
|
|
|
|
# 75| 10
|
|
#-----| -> ... > ...
|
|
|
|
# 75| then ...
|
|
#-----| -> elsif ...
|
|
|
|
# 75| 10
|
|
#-----| -> then ...
|
|
|
|
# 75| else ...
|
|
#-----| -> elsif ...
|
|
|
|
# 75| x
|
|
#-----| -> else ...
|
|
|
|
# 78| ;
|
|
#-----| -> self
|
|
|
|
# 82| else ...
|
|
#-----| -> self
|
|
|
|
# 83| call to puts
|
|
#-----| -> else ...
|
|
|
|
# 83| self
|
|
#-----| -> "ok"
|
|
|
|
# 83| "ok"
|
|
#-----| -> call to puts
|
|
|
|
# 84| ensure ...
|
|
#-----| -> escape
|
|
|
|
# 85| call to puts
|
|
#-----| -> ensure ...
|
|
|
|
# 85| self
|
|
#-----| -> "end"
|
|
|
|
# 85| "end"
|
|
#-----| -> call to puts
|
|
|
|
# 88| ... = ...
|
|
#-----| -> Array
|
|
|
|
# 88| escape
|
|
#-----| -> x
|
|
|
|
# 88| "\u1234#{...}\n"
|
|
#-----| -> ... = ...
|
|
|
|
# 88| #{...}
|
|
#-----| -> "\u1234#{...}\n"
|
|
|
|
# 88| x
|
|
#-----| -> #{...}
|
|
|
|
# 90| enter { ... }
|
|
#-----| -> __synth__0__1
|
|
|
|
# 90| call to each
|
|
#-----| -> $global
|
|
|
|
# 90| { ... }
|
|
#-----| -> call to each
|
|
|
|
# 90| ... = ...
|
|
#-----| -> x
|
|
|
|
# 90| __synth__0__1
|
|
#-----| -> x
|
|
|
|
# 90| __synth__0__1
|
|
#-----| -> ... = ...
|
|
|
|
# 90| exit { ... }
|
|
|
|
# 90| exit { ... } (normal)
|
|
#-----| -> exit { ... }
|
|
|
|
# 90| x
|
|
#-----| -> __synth__0__1
|
|
|
|
# 90| call to []
|
|
#-----| -> { ... }
|
|
|
|
# 90| Array
|
|
#-----| -> 1.4
|
|
|
|
# 90| 1.4
|
|
#-----| -> 2.5
|
|
|
|
# 90| 2.5
|
|
#-----| -> 3.4e5
|
|
|
|
# 90| 3.4e5
|
|
#-----| -> call to []
|
|
|
|
# 91| if ...
|
|
#-----| -> self
|
|
|
|
# 91| ... > ...
|
|
#-----| false -> if ...
|
|
#-----| true -> next
|
|
|
|
# 91| x
|
|
#-----| -> 3
|
|
|
|
# 91| 3
|
|
#-----| -> ... > ...
|
|
|
|
# 91| next
|
|
#-----| next -> exit { ... } (normal)
|
|
|
|
# 92| call to puts
|
|
#-----| -> exit { ... } (normal)
|
|
|
|
# 92| self
|
|
#-----| -> x
|
|
|
|
# 92| x
|
|
#-----| -> call to puts
|
|
|
|
# 95| ... = ...
|
|
#-----| -> map1
|
|
|
|
# 95| $global
|
|
#-----| -> 42
|
|
|
|
# 95| 42
|
|
#-----| -> ... = ...
|
|
|
|
# 97| ... = ...
|
|
#-----| -> map2
|
|
|
|
# 97| map1
|
|
#-----| -> "a"
|
|
|
|
# 97| {...}
|
|
#-----| -> ... = ...
|
|
|
|
# 97| Pair
|
|
#-----| -> "c"
|
|
|
|
# 97| "a"
|
|
#-----| -> "b"
|
|
|
|
# 97| "b"
|
|
#-----| -> Pair
|
|
|
|
# 97| Pair
|
|
#-----| -> :e
|
|
|
|
# 97| "c"
|
|
#-----| -> "d"
|
|
|
|
# 97| "d"
|
|
#-----| -> Pair
|
|
|
|
# 97| :e
|
|
#-----| -> "f"
|
|
|
|
# 97| Pair
|
|
#-----| -> {...}
|
|
|
|
# 97| "f"
|
|
#-----| -> Pair
|
|
|
|
# 98| ... = ...
|
|
#-----| -> parameters
|
|
|
|
# 98| map2
|
|
#-----| -> map1
|
|
|
|
# 98| {...}
|
|
#-----| -> ... = ...
|
|
|
|
# 98| ** ...
|
|
#-----| -> "x"
|
|
|
|
# 98| map1
|
|
#-----| -> ** ...
|
|
|
|
# 98| Pair
|
|
#-----| -> map1
|
|
|
|
# 98| "x"
|
|
#-----| -> "y"
|
|
|
|
# 98| "y"
|
|
#-----| -> Pair
|
|
|
|
# 98| ** ...
|
|
#-----| -> {...}
|
|
|
|
# 98| map1
|
|
#-----| -> ** ...
|
|
|
|
# 101| enter parameters
|
|
#-----| -> value
|
|
|
|
# 101| parameters
|
|
#-----| -> type
|
|
|
|
# 101| exit parameters
|
|
|
|
# 101| exit parameters (normal)
|
|
#-----| -> exit parameters
|
|
|
|
# 101| value
|
|
#-----| no-match -> 42
|
|
#-----| match -> key
|
|
|
|
# 101| 42
|
|
#-----| -> key
|
|
|
|
# 101| key
|
|
#-----| -> kwargs
|
|
|
|
# 101| kwargs
|
|
#-----| -> self
|
|
|
|
# 102| call to puts
|
|
#-----| -> kwargs
|
|
|
|
# 102| self
|
|
#-----| -> value
|
|
|
|
# 102| value
|
|
#-----| -> call to puts
|
|
|
|
# 103| return
|
|
#-----| return -> exit parameters (normal)
|
|
|
|
# 103| ...[...]
|
|
#-----| -> return
|
|
|
|
# 103| kwargs
|
|
#-----| -> key
|
|
|
|
# 103| key
|
|
#-----| -> ...[...]
|
|
|
|
# 106| ... = ...
|
|
#-----| -> table
|
|
|
|
# 106| type
|
|
#-----| -> "healthy"
|
|
|
|
# 106| "healthy"
|
|
#-----| -> ... = ...
|
|
|
|
# 107| ... = ...
|
|
#-----| -> self
|
|
|
|
# 107| table
|
|
#-----| -> "food"
|
|
|
|
# 107| "food"
|
|
#-----| -> ... = ...
|
|
|
|
# 108| call to puts
|
|
#-----| -> b
|
|
|
|
# 108| self
|
|
#-----| -> <<SQL
|
|
|
|
# 108| ( ... )
|
|
#-----| -> call to puts
|
|
|
|
# 108| <<SQL
|
|
#-----| -> table
|
|
|
|
# 109| #{...}
|
|
#-----| -> type
|
|
|
|
# 109| table
|
|
#-----| -> #{...}
|
|
|
|
# 110| #{...}
|
|
#-----| -> ( ... )
|
|
|
|
# 110| type
|
|
#-----| -> #{...}
|
|
|
|
# 113| call to puts
|
|
#-----| -> ... if ...
|
|
|
|
# 113| ... if ...
|
|
#-----| -> C
|
|
|
|
# 113| self
|
|
#-----| -> "hi"
|
|
|
|
# 113| "hi"
|
|
#-----| -> call to puts
|
|
|
|
# 113| ... > ...
|
|
#-----| false -> ... if ...
|
|
#-----| true -> self
|
|
|
|
# 113| b
|
|
#-----| -> 10
|
|
|
|
# 113| 10
|
|
#-----| -> ... > ...
|
|
|
|
# 115| C
|
|
#-----| -> @field
|
|
|
|
# 116| ... = ...
|
|
#-----| -> @@static_field
|
|
|
|
# 116| @field
|
|
#-----| -> 42
|
|
|
|
# 116| 42
|
|
#-----| -> ... = ...
|
|
|
|
# 117| ... = ...
|
|
#-----| -> swap
|
|
|
|
# 117| @@static_field
|
|
#-----| -> 10
|
|
|
|
# 117| 10
|
|
#-----| -> ... = ...
|
|
|
|
# 120| ... = ...
|
|
#-----| -> M
|
|
|
|
# 120| swap
|
|
#-----| -> -> { ... }
|
|
|
|
# 120| enter -> { ... }
|
|
#-----| -> x
|
|
|
|
# 120| -> { ... }
|
|
#-----| -> ... = ...
|
|
|
|
# 120| exit -> { ... }
|
|
|
|
# 120| exit -> { ... } (normal)
|
|
#-----| -> exit -> { ... }
|
|
|
|
# 120| (..., ...)
|
|
#-----| -> Array
|
|
|
|
# 120| x
|
|
#-----| -> y
|
|
|
|
# 120| y
|
|
#-----| -> (..., ...)
|
|
|
|
# 120| call to []
|
|
#-----| -> exit -> { ... } (normal)
|
|
|
|
# 120| Array
|
|
#-----| -> y
|
|
|
|
# 120| y
|
|
#-----| -> x
|
|
|
|
# 120| x
|
|
#-----| -> call to []
|
|
|
|
# 122| M
|
|
#-----| -> nothing
|
|
|
|
# 123| ... = ...
|
|
#-----| -> some
|
|
|
|
# 123| nothing
|
|
#-----| -> nil
|
|
|
|
# 123| nil
|
|
#-----| -> ... = ...
|
|
|
|
# 124| ... = ...
|
|
#-----| -> some
|
|
|
|
# 124| some
|
|
#-----| -> 2
|
|
|
|
# 124| 2
|
|
#-----| -> ... = ...
|
|
|
|
# 125| some
|
|
#-----| -> some
|
|
|
|
# 125| ... = ...
|
|
#-----| -> last
|
|
|
|
# 125| some
|
|
#-----| -> 10
|
|
|
|
# 125| ... + ...
|
|
#-----| -> ... = ...
|
|
|
|
# 125| 10
|
|
#-----| -> ... + ...
|
|
|
|
# 126| ... = ...
|
|
#-----| -> range
|
|
|
|
# 126| last
|
|
#-----| -> 2
|
|
|
|
# 126| ( ... )
|
|
#-----| -> ... = ...
|
|
|
|
# 126| 2
|
|
#-----| -> 4
|
|
|
|
# 126| 4
|
|
#-----| -> 7
|
|
|
|
# 126| 7
|
|
#-----| -> ( ... )
|
|
|
|
# 127| ... = ...
|
|
#-----| -> half
|
|
|
|
# 127| range
|
|
#-----| -> 0
|
|
|
|
# 127| 0
|
|
#-----| -> 9
|
|
|
|
# 127| _ .. _
|
|
#-----| -> ... = ...
|
|
|
|
# 127| 9
|
|
#-----| -> _ .. _
|
|
|
|
# 128| ... = ...
|
|
#-----| -> regex
|
|
|
|
# 128| half
|
|
#-----| -> 1
|
|
|
|
# 128| ... + ...
|
|
#-----| -> ... = ...
|
|
|
|
# 128| ... / ...
|
|
#-----| -> 1
|
|
|
|
# 128| 1
|
|
#-----| -> 3r
|
|
|
|
# 128| 3r
|
|
#-----| -> ... / ...
|
|
|
|
# 128| ... / ...
|
|
#-----| -> ... + ...
|
|
|
|
# 128| 1
|
|
#-----| -> 6r
|
|
|
|
# 128| 6r
|
|
#-----| -> ... / ...
|
|
|
|
# 129| ... = ...
|
|
#-----| -> Constant
|
|
|
|
# 129| regex
|
|
#-----| -> range
|
|
|
|
# 129| /hello\s+[#{...}]/
|
|
#-----| -> ... = ...
|
|
|
|
# 129| #{...}
|
|
#-----| -> /hello\s+[#{...}]/
|
|
|
|
# 129| range
|
|
#-----| -> #{...}
|
|
|
|
# 130| ... = ...
|
|
#-----| -> EmptyClass
|
|
|
|
# 130| Constant
|
|
#-----| -> 5
|
|
|
|
# 130| 5
|
|
#-----| -> ... = ...
|
|
|
|
# 133| EmptyClass
|
|
#-----| -> EmptyModule
|
|
|
|
# 134| EmptyModule
|
|
#-----| -> ... rescue ...
|
|
|
|
# 136| ... / ...
|
|
#-----| raise -> self
|
|
#-----| -> __synth__0
|
|
|
|
# 136| 1
|
|
#-----| -> 0
|
|
|
|
# 136| ... rescue ...
|
|
#-----| -> 1
|
|
|
|
# 136| 0
|
|
#-----| -> ... / ...
|
|
|
|
# 136| call to puts
|
|
#-----| -> __synth__0
|
|
|
|
# 136| self
|
|
#-----| -> "div by zero"
|
|
|
|
# 136| "div by zero"
|
|
#-----| -> call to puts
|
|
|
|
# 138| ...
|
|
#-----| -> M
|
|
|
|
# 138| init
|
|
#-----| -> __synth__0
|
|
|
|
# 138| ... = ...
|
|
#-----| -> last
|
|
|
|
# 138| call to []
|
|
#-----| -> ... = ...
|
|
|
|
# 138| _ .. _
|
|
#-----| -> call to []
|
|
|
|
# 138| __synth__0
|
|
#-----| -> 0
|
|
|
|
# 138| 0
|
|
#-----| -> -2
|
|
|
|
# 138| -2
|
|
#-----| -> _ .. _
|
|
|
|
# 138| last
|
|
#-----| -> __synth__0
|
|
|
|
# 138| ... = ...
|
|
#-----| -> ...
|
|
|
|
# 138| call to []
|
|
#-----| -> ... = ...
|
|
|
|
# 138| -1
|
|
#-----| -> call to []
|
|
|
|
# 138| __synth__0
|
|
#-----| -> -1
|
|
|
|
# 138| 1
|
|
#-----| -> 2
|
|
|
|
# 138| ... = ...
|
|
#-----| -> init
|
|
|
|
# 138| * ...
|
|
#-----| -> ... = ...
|
|
|
|
# 138| __synth__0
|
|
#-----| -> 1
|
|
|
|
# 138| 2
|
|
#-----| -> 3
|
|
|
|
# 138| 3
|
|
#-----| -> * ...
|
|
|
|
# 140| M
|
|
#-----| -> Constant
|
|
|
|
# 140| Constant
|
|
#-----| -> M
|
|
|
|
# 141| call to itself
|
|
#-----| -> Constant
|
|
|
|
# 141| M
|
|
#-----| -> call to itself
|
|
|
|
# 141| Constant
|
|
#-----| -> Silly
|
|
|
|
# 143| class << ...
|
|
#-----| -> silly
|
|
|
|
# 143| call to itself
|
|
#-----| -> setter=
|
|
|
|
# 143| Silly
|
|
#-----| -> call to itself
|
|
|
|
# 144| setter=
|
|
#-----| -> print
|
|
|
|
# 145| enter print
|
|
#-----| -> self
|
|
|
|
# 145| print
|
|
#-----| -> class << ...
|
|
|
|
# 145| exit print
|
|
|
|
# 145| exit print (normal)
|
|
#-----| -> exit print
|
|
|
|
# 146| call to puts
|
|
#-----| -> self
|
|
|
|
# 146| self
|
|
#-----| -> "singleton"
|
|
|
|
# 146| "singleton"
|
|
#-----| -> call to puts
|
|
|
|
# 147| call to puts
|
|
#-----| -> exit print (normal)
|
|
|
|
# 147| self
|
|
#-----| -> call to super
|
|
|
|
# 147| call to print
|
|
#-----| -> call to puts
|
|
|
|
# 147| call to super
|
|
#-----| -> call to print
|
|
|
|
# 151| ... = ...
|
|
#-----| -> silly
|
|
|
|
# 151| silly
|
|
#-----| -> Silly
|
|
|
|
# 151| call to new
|
|
#-----| -> ... = ...
|
|
|
|
# 151| Silly
|
|
#-----| -> call to new
|
|
|
|
# 152| enter method
|
|
#-----| -> x
|
|
|
|
# 152| method
|
|
#-----| -> two_parameters
|
|
|
|
# 152| exit method
|
|
|
|
# 152| exit method (normal)
|
|
#-----| -> exit method
|
|
|
|
# 152| silly
|
|
#-----| -> method
|
|
|
|
# 152| x
|
|
#-----| -> self
|
|
|
|
# 153| call to puts
|
|
#-----| -> exit method (normal)
|
|
|
|
# 153| self
|
|
#-----| -> x
|
|
|
|
# 153| x
|
|
#-----| -> call to puts
|
|
|
|
# 156| enter two_parameters
|
|
#-----| -> a
|
|
|
|
# 156| two_parameters
|
|
#-----| -> self
|
|
|
|
# 156| exit two_parameters
|
|
|
|
# 156| exit two_parameters (normal)
|
|
#-----| -> exit two_parameters
|
|
|
|
# 156| a
|
|
#-----| -> b
|
|
|
|
# 156| b
|
|
#-----| -> exit two_parameters (normal)
|
|
|
|
# 158| call to two_parameters
|
|
#-----| -> scriptfile
|
|
|
|
# 158| self
|
|
#-----| -> Array
|
|
|
|
# 158| * ...
|
|
#-----| -> call to two_parameters
|
|
|
|
# 158| call to []
|
|
#-----| -> * ...
|
|
|
|
# 158| Array
|
|
#-----| -> 1
|
|
|
|
# 158| 1
|
|
#-----| -> 2
|
|
|
|
# 158| 2
|
|
#-----| -> call to []
|
|
|
|
# 160| ... = ...
|
|
#-----| -> symbol
|
|
|
|
# 160| scriptfile
|
|
#-----| -> self
|
|
|
|
# 160| `cat "#{...}"`
|
|
#-----| -> ... = ...
|
|
|
|
# 160| #{...}
|
|
#-----| -> `cat "#{...}"`
|
|
|
|
# 160| call to __FILE__
|
|
#-----| -> #{...}
|
|
|
|
# 160| self
|
|
#-----| -> call to __FILE__
|
|
|
|
# 162| ... = ...
|
|
#-----| -> delimited_symbol
|
|
|
|
# 162| symbol
|
|
#-----| -> :hello
|
|
|
|
# 162| :hello
|
|
#-----| -> ... = ...
|
|
|
|
# 164| ... = ...
|
|
#-----| -> x
|
|
|
|
# 164| delimited_symbol
|
|
#-----| -> 12
|
|
|
|
# 164| :"goodbye-#{...}"
|
|
#-----| -> ... = ...
|
|
|
|
# 164| #{...}
|
|
#-----| -> :"goodbye-#{...}"
|
|
|
|
# 164| ... + ...
|
|
#-----| -> #{...}
|
|
|
|
# 164| 12
|
|
#-----| -> 13
|
|
|
|
# 164| 13
|
|
#-----| -> ... + ...
|
|
|
|
# 166| ... = ...
|
|
#-----| -> x
|
|
|
|
# 166| x
|
|
#-----| -> true
|
|
|
|
# 166| true
|
|
#-----| -> ... = ...
|
|
|
|
# 167| ... = ...
|
|
#-----| -> x
|
|
|
|
# 167| x
|
|
#-----| -> true
|
|
|
|
# 167| ! ...
|
|
#-----| -> ... = ...
|
|
|
|
# 167| true
|
|
#-----| -> ! ...
|
|
|
|
# 168| ... = ...
|
|
#-----| -> undef ...
|
|
|
|
# 168| x
|
|
#-----| -> 42
|
|
|
|
# 168| - ...
|
|
#-----| -> ... = ...
|
|
|
|
# 168| 42
|
|
#-----| -> - ...
|
|
|
|
# 170| undef ...
|
|
#-----| -> two_parameters
|
|
|
|
# 170| two_parameters
|
|
#-----| -> x
|
|
|
|
# 172| unless ...
|
|
#-----| -> x
|
|
|
|
# 172| ... == ...
|
|
#-----| false -> self
|
|
#-----| true -> self
|
|
|
|
# 172| x
|
|
#-----| -> 10
|
|
|
|
# 172| 10
|
|
#-----| -> ... == ...
|
|
|
|
# 172| then ...
|
|
#-----| -> unless ...
|
|
|
|
# 172| call to puts
|
|
#-----| -> then ...
|
|
|
|
# 172| self
|
|
#-----| -> "hi"
|
|
|
|
# 172| "hi"
|
|
#-----| -> call to puts
|
|
|
|
# 172| else ...
|
|
#-----| -> unless ...
|
|
|
|
# 172| call to puts
|
|
#-----| -> else ...
|
|
|
|
# 172| self
|
|
#-----| -> "bye"
|
|
|
|
# 172| "bye"
|
|
#-----| -> call to puts
|
|
|
|
# 174| call to puts
|
|
#-----| -> ... unless ...
|
|
|
|
# 174| ... unless ...
|
|
#-----| -> x
|
|
|
|
# 174| self
|
|
#-----| -> "hi"
|
|
|
|
# 174| "hi"
|
|
#-----| -> call to puts
|
|
|
|
# 174| ... == ...
|
|
#-----| true -> ... unless ...
|
|
#-----| false -> self
|
|
|
|
# 174| x
|
|
#-----| -> 0
|
|
|
|
# 174| 0
|
|
#-----| -> ... == ...
|
|
|
|
# 176| until ...
|
|
#-----| -> i
|
|
|
|
# 176| ... > ...
|
|
#-----| true -> until ...
|
|
#-----| false -> x
|
|
|
|
# 176| x
|
|
#-----| -> 10
|
|
|
|
# 176| 10
|
|
#-----| -> ... > ...
|
|
|
|
# 176| do ...
|
|
#-----| -> x
|
|
|
|
# 176| x
|
|
#-----| -> x
|
|
|
|
# 176| ... = ...
|
|
#-----| -> self
|
|
|
|
# 176| x
|
|
#-----| -> 10
|
|
|
|
# 176| ... + ...
|
|
#-----| -> ... = ...
|
|
|
|
# 176| 10
|
|
#-----| -> ... + ...
|
|
|
|
# 176| call to puts
|
|
#-----| -> do ...
|
|
|
|
# 176| self
|
|
#-----| -> "hello"
|
|
|
|
# 176| "hello"
|
|
#-----| -> call to puts
|
|
|
|
# 178| ... = ...
|
|
#-----| -> i
|
|
|
|
# 178| i
|
|
#-----| -> 0
|
|
|
|
# 178| 0
|
|
#-----| -> ... = ...
|
|
|
|
# 179| ( ... )
|
|
#-----| -> i
|
|
|
|
# 179| ... until ...
|
|
#-----| -> x
|
|
|
|
# 179| call to puts
|
|
#-----| -> i
|
|
|
|
# 179| self
|
|
#-----| -> "hello"
|
|
|
|
# 179| "hello"
|
|
#-----| -> call to puts
|
|
|
|
# 179| i
|
|
#-----| -> i
|
|
|
|
# 179| ... = ...
|
|
#-----| -> ( ... )
|
|
|
|
# 179| i
|
|
#-----| -> 1
|
|
|
|
# 179| ... + ...
|
|
#-----| -> ... = ...
|
|
|
|
# 179| 1
|
|
#-----| -> ... + ...
|
|
|
|
# 179| ... == ...
|
|
#-----| true -> ... until ...
|
|
#-----| false -> self
|
|
|
|
# 179| i
|
|
#-----| -> 10
|
|
|
|
# 179| 10
|
|
#-----| -> ... == ...
|
|
|
|
# 181| ... = ...
|
|
#-----| -> x
|
|
|
|
# 181| x
|
|
#-----| -> 0
|
|
|
|
# 181| 0
|
|
#-----| -> ... = ...
|
|
|
|
# 182| while ...
|
|
#-----| -> i
|
|
|
|
# 182| ... < ...
|
|
#-----| false -> while ...
|
|
#-----| true -> x
|
|
|
|
# 182| x
|
|
#-----| -> 10
|
|
|
|
# 182| 10
|
|
#-----| -> ... < ...
|
|
|
|
# 182| do ...
|
|
#-----| -> x
|
|
|
|
# 183| x
|
|
#-----| -> x
|
|
|
|
# 183| ... = ...
|
|
#-----| -> x
|
|
|
|
# 183| x
|
|
#-----| -> 1
|
|
|
|
# 183| ... + ...
|
|
#-----| -> ... = ...
|
|
|
|
# 183| 1
|
|
#-----| -> ... + ...
|
|
|
|
# 184| if ...
|
|
#-----| -> self
|
|
|
|
# 184| ... == ...
|
|
#-----| false -> if ...
|
|
#-----| true -> redo
|
|
|
|
# 184| x
|
|
#-----| -> 5
|
|
|
|
# 184| 5
|
|
#-----| -> ... == ...
|
|
|
|
# 184| redo
|
|
#-----| redo -> x
|
|
|
|
# 185| call to puts
|
|
#-----| -> do ...
|
|
|
|
# 185| self
|
|
#-----| -> x
|
|
|
|
# 185| x
|
|
#-----| -> call to puts
|
|
|
|
# 188| ( ... )
|
|
#-----| -> i
|
|
|
|
# 188| ... while ...
|
|
#-----| -> run_block
|
|
|
|
# 188| call to puts
|
|
#-----| -> i
|
|
|
|
# 188| self
|
|
#-----| -> "hello"
|
|
|
|
# 188| "hello"
|
|
#-----| -> call to puts
|
|
|
|
# 188| i
|
|
#-----| -> i
|
|
|
|
# 188| ... = ...
|
|
#-----| -> ( ... )
|
|
|
|
# 188| i
|
|
#-----| -> 1
|
|
|
|
# 188| ... - ...
|
|
#-----| -> ... = ...
|
|
|
|
# 188| 1
|
|
#-----| -> ... - ...
|
|
|
|
# 188| ... != ...
|
|
#-----| false -> ... while ...
|
|
#-----| true -> self
|
|
|
|
# 188| i
|
|
#-----| -> 0
|
|
|
|
# 188| 0
|
|
#-----| -> ... != ...
|
|
|
|
# 190| enter run_block
|
|
#-----| -> 42
|
|
|
|
# 190| run_block
|
|
#-----| -> self
|
|
|
|
# 190| exit run_block
|
|
|
|
# 190| exit run_block (normal)
|
|
#-----| -> exit run_block
|
|
|
|
# 191| yield ...
|
|
#-----| -> exit run_block (normal)
|
|
|
|
# 191| 42
|
|
#-----| -> yield ...
|
|
|
|
# 194| call to run_block
|
|
#-----| -> forward_param
|
|
|
|
# 194| self
|
|
#-----| -> { ... }
|
|
|
|
# 194| enter { ... }
|
|
#-----| -> x
|
|
|
|
# 194| { ... }
|
|
#-----| -> call to run_block
|
|
|
|
# 194| exit { ... }
|
|
|
|
# 194| exit { ... } (normal)
|
|
#-----| -> exit { ... }
|
|
|
|
# 194| x
|
|
#-----| -> self
|
|
|
|
# 194| call to puts
|
|
#-----| -> exit { ... } (normal)
|
|
|
|
# 194| self
|
|
#-----| -> x
|
|
|
|
# 194| x
|
|
#-----| -> call to puts
|
|
|
|
# 196| enter forward_param
|
|
#-----| -> a
|
|
|
|
# 196| forward_param
|
|
#-----| -> exit cfg.rb (normal)
|
|
|
|
# 196| exit forward_param
|
|
|
|
# 196| exit forward_param (normal)
|
|
#-----| -> exit forward_param
|
|
|
|
# 196| a
|
|
#-----| -> b
|
|
|
|
# 196| b
|
|
#-----| -> ...
|
|
|
|
# 196| ...
|
|
#-----| -> self
|
|
|
|
# 197| call to bar
|
|
#-----| -> exit forward_param (normal)
|
|
|
|
# 197| self
|
|
#-----| -> b
|
|
|
|
# 197| b
|
|
#-----| -> call to bar
|
|
|
|
desugar.rb:
|
|
# 1| enter m1
|
|
#-----| -> x
|
|
|
|
# 1| enter desugar.rb
|
|
#-----| -> m1
|
|
|
|
# 1| m1
|
|
#-----| -> m2
|
|
|
|
# 1| exit m1
|
|
|
|
# 1| exit desugar.rb
|
|
|
|
# 1| exit m1 (normal)
|
|
#-----| -> exit m1
|
|
|
|
# 1| exit desugar.rb (normal)
|
|
#-----| -> exit desugar.rb
|
|
|
|
# 1| x
|
|
#-----| -> x
|
|
|
|
# 2| x
|
|
#-----| -> x
|
|
|
|
# 2| ... = ...
|
|
#-----| -> exit m1 (normal)
|
|
|
|
# 2| x
|
|
#-----| -> 1
|
|
|
|
# 2| ... + ...
|
|
#-----| -> ... = ...
|
|
|
|
# 2| 1
|
|
#-----| -> ... + ...
|
|
|
|
# 5| enter m2
|
|
#-----| -> x
|
|
|
|
# 5| m2
|
|
#-----| -> m3
|
|
|
|
# 5| exit m2
|
|
|
|
# 5| exit m2 (normal)
|
|
#-----| -> exit m2
|
|
|
|
# 5| x
|
|
#-----| -> x
|
|
|
|
# 6| call to foo
|
|
#-----| -> __synth__0
|
|
|
|
# 6| x
|
|
#-----| -> call to foo
|
|
|
|
# 6| ...
|
|
#-----| -> exit m2 (normal)
|
|
|
|
# 6| call to count=
|
|
#-----| -> __synth__0
|
|
|
|
# 6| __synth__0
|
|
#-----| -> ...
|
|
|
|
# 6| ... = ...
|
|
#-----| -> call to count=
|
|
|
|
# 6| __synth__0
|
|
#-----| -> 1
|
|
|
|
# 6| 1
|
|
#-----| -> ... = ...
|
|
|
|
# 9| enter m3
|
|
#-----| -> x
|
|
|
|
# 9| m3
|
|
#-----| -> m4
|
|
|
|
# 9| exit m3
|
|
|
|
# 9| exit m3 (normal)
|
|
#-----| -> exit m3
|
|
|
|
# 9| x
|
|
#-----| -> x
|
|
|
|
# 10| call to foo
|
|
#-----| -> 0
|
|
|
|
# 10| x
|
|
#-----| -> call to foo
|
|
|
|
# 10| ...
|
|
#-----| -> exit m3 (normal)
|
|
|
|
# 10| call to []=
|
|
#-----| -> __synth__0
|
|
|
|
# 10| __synth__0
|
|
#-----| -> ...
|
|
|
|
# 10| ... = ...
|
|
#-----| -> call to []=
|
|
|
|
# 10| __synth__0
|
|
#-----| -> 1
|
|
|
|
# 10| 0
|
|
#-----| -> __synth__0
|
|
|
|
# 10| 1
|
|
#-----| -> ... = ...
|
|
|
|
# 13| enter m4
|
|
#-----| -> x
|
|
|
|
# 13| m4
|
|
#-----| -> m5
|
|
|
|
# 13| exit m4
|
|
|
|
# 13| exit m4 (normal)
|
|
#-----| -> exit m4
|
|
|
|
# 13| x
|
|
#-----| -> __synth__0
|
|
|
|
# 14| call to foo
|
|
#-----| -> ... = ...
|
|
|
|
# 14| x
|
|
#-----| -> call to foo
|
|
|
|
# 14| ...
|
|
#-----| -> exit m4 (normal)
|
|
|
|
# 14| ... = ...
|
|
#-----| -> __synth__1
|
|
|
|
# 14| call to count=
|
|
#-----| -> __synth__1
|
|
|
|
# 14| __synth__0
|
|
#-----| -> x
|
|
|
|
# 14| __synth__0
|
|
#-----| -> __synth__1
|
|
|
|
# 14| call to count
|
|
#-----| -> 1
|
|
|
|
# 14| __synth__0
|
|
#-----| -> call to count
|
|
|
|
# 14| ... = ...
|
|
#-----| -> __synth__0
|
|
|
|
# 14| __synth__1
|
|
#-----| -> ...
|
|
|
|
# 14| ... + ...
|
|
#-----| -> ... = ...
|
|
|
|
# 14| __synth__1
|
|
#-----| -> __synth__0
|
|
|
|
# 14| __synth__1
|
|
#-----| -> call to count=
|
|
|
|
# 14| 1
|
|
#-----| -> ... + ...
|
|
|
|
# 17| enter m5
|
|
#-----| -> x
|
|
|
|
# 17| m5
|
|
#-----| -> m6
|
|
|
|
# 17| exit m5
|
|
|
|
# 17| exit m5 (normal)
|
|
#-----| -> exit m5
|
|
|
|
# 17| x
|
|
#-----| -> y
|
|
|
|
# 17| y
|
|
#-----| -> __synth__0
|
|
|
|
# 18| call to foo
|
|
#-----| -> ... = ...
|
|
|
|
# 18| x
|
|
#-----| -> call to foo
|
|
|
|
# 18| ...
|
|
#-----| -> exit m5 (normal)
|
|
|
|
# 18| ... = ...
|
|
#-----| -> __synth__1
|
|
|
|
# 18| call to []=
|
|
#-----| -> __synth__4
|
|
|
|
# 18| __synth__0
|
|
#-----| -> x
|
|
|
|
# 18| __synth__0
|
|
#-----| -> __synth__1
|
|
|
|
# 18| call to []
|
|
#-----| -> 1
|
|
|
|
# 18| __synth__0
|
|
#-----| -> __synth__1
|
|
|
|
# 18| 0
|
|
#-----| -> ... = ...
|
|
|
|
# 18| ... = ...
|
|
#-----| -> __synth__2
|
|
|
|
# 18| __synth__1
|
|
#-----| -> 0
|
|
|
|
# 18| __synth__1
|
|
#-----| -> __synth__2
|
|
|
|
# 18| __synth__1
|
|
#-----| -> __synth__2
|
|
|
|
# 18| call to bar
|
|
#-----| -> ... = ...
|
|
|
|
# 18| y
|
|
#-----| -> call to bar
|
|
|
|
# 18| ... = ...
|
|
#-----| -> __synth__3
|
|
|
|
# 18| __synth__2
|
|
#-----| -> y
|
|
|
|
# 18| __synth__2
|
|
#-----| -> __synth__3
|
|
|
|
# 18| __synth__2
|
|
#-----| -> __synth__3
|
|
|
|
# 18| call to baz
|
|
#-----| -> 3
|
|
|
|
# 18| ... + ...
|
|
#-----| -> ... = ...
|
|
|
|
# 18| x
|
|
#-----| -> call to baz
|
|
|
|
# 18| ... = ...
|
|
#-----| -> __synth__4
|
|
|
|
# 18| __synth__3
|
|
#-----| -> x
|
|
|
|
# 18| __synth__3
|
|
#-----| -> __synth__4
|
|
|
|
# 18| __synth__3
|
|
#-----| -> call to []
|
|
|
|
# 18| 3
|
|
#-----| -> ... + ...
|
|
|
|
# 18| ... = ...
|
|
#-----| -> __synth__0
|
|
|
|
# 18| __synth__4
|
|
#-----| -> ...
|
|
|
|
# 18| ... + ...
|
|
#-----| -> ... = ...
|
|
|
|
# 18| __synth__4
|
|
#-----| -> __synth__0
|
|
|
|
# 18| __synth__4
|
|
#-----| -> call to []=
|
|
|
|
# 18| 1
|
|
#-----| -> ... + ...
|
|
|
|
# 21| enter m6
|
|
#-----| -> __synth__0
|
|
|
|
# 21| m6
|
|
#-----| -> m7
|
|
|
|
# 21| exit m6
|
|
|
|
# 21| exit m6 (normal)
|
|
#-----| -> exit m6
|
|
|
|
# 22| x
|
|
#-----| -> __synth__0
|
|
|
|
# 22| ...
|
|
#-----| -> exit m6 (normal)
|
|
|
|
# 22| ... = ...
|
|
#-----| -> y
|
|
|
|
# 22| call to []
|
|
#-----| -> ... = ...
|
|
|
|
# 22| 0
|
|
#-----| -> call to []
|
|
|
|
# 22| __synth__0
|
|
#-----| -> 0
|
|
|
|
# 22| y
|
|
#-----| -> __synth__0
|
|
|
|
# 22| ... = ...
|
|
#-----| -> self
|
|
|
|
# 22| call to []
|
|
#-----| -> ... = ...
|
|
|
|
# 22| _ .. _
|
|
#-----| -> call to []
|
|
|
|
# 22| __synth__0
|
|
#-----| -> 1
|
|
|
|
# 22| 1
|
|
#-----| -> -2
|
|
|
|
# 22| -2
|
|
#-----| -> _ .. _
|
|
|
|
# 22| call to z
|
|
#-----| -> __synth__0__1
|
|
|
|
# 22| self
|
|
#-----| -> call to z
|
|
|
|
# 22| call to []
|
|
#-----| -> ... = ...
|
|
|
|
# 22| ...
|
|
#-----| -> ...
|
|
|
|
# 22| -1
|
|
#-----| -> call to []
|
|
|
|
# 22| __synth__0
|
|
#-----| -> -1
|
|
|
|
# 22| call to bar=
|
|
#-----| -> __synth__0__1
|
|
|
|
# 22| __synth__0__1
|
|
#-----| -> ...
|
|
|
|
# 22| ... = ...
|
|
#-----| -> call to bar=
|
|
|
|
# 22| __synth__0__1
|
|
#-----| -> __synth__0
|
|
|
|
# 22| call to []
|
|
#-----| -> * ...
|
|
|
|
# 22| ... = ...
|
|
#-----| -> x
|
|
|
|
# 22| Array
|
|
#-----| -> 1
|
|
|
|
# 22| * ...
|
|
#-----| -> ... = ...
|
|
|
|
# 22| __synth__0
|
|
#-----| -> Array
|
|
|
|
# 22| 1
|
|
#-----| -> 2
|
|
|
|
# 22| 2
|
|
#-----| -> 3
|
|
|
|
# 22| 3
|
|
#-----| -> 4
|
|
|
|
# 22| 4
|
|
#-----| -> call to []
|
|
|
|
# 25| enter m7
|
|
#-----| -> __synth__0
|
|
|
|
# 25| m7
|
|
#-----| -> X
|
|
|
|
# 25| exit m7
|
|
|
|
# 25| exit m7 (normal)
|
|
#-----| -> exit m7
|
|
|
|
# 26| x
|
|
#-----| -> __synth__0
|
|
|
|
# 26| ...
|
|
#-----| -> exit m7 (normal)
|
|
|
|
# 26| ... = ...
|
|
#-----| -> __synth__0__1
|
|
|
|
# 26| call to []
|
|
#-----| -> ... = ...
|
|
|
|
# 26| 0
|
|
#-----| -> call to []
|
|
|
|
# 26| __synth__0
|
|
#-----| -> 0
|
|
|
|
# 26| call to []
|
|
#-----| -> * ...
|
|
|
|
# 26| ...
|
|
#-----| -> ...
|
|
|
|
# 26| 1
|
|
#-----| -> call to []
|
|
|
|
# 26| __synth__0
|
|
#-----| -> 1
|
|
|
|
# 26| ... = ...
|
|
#-----| -> y
|
|
|
|
# 26| * ...
|
|
#-----| -> ... = ...
|
|
|
|
# 26| __synth__0__1
|
|
#-----| -> __synth__0
|
|
|
|
# 26| y
|
|
#-----| -> __synth__0__1
|
|
|
|
# 26| ... = ...
|
|
#-----| -> z
|
|
|
|
# 26| call to []
|
|
#-----| -> ... = ...
|
|
|
|
# 26| 0
|
|
#-----| -> call to []
|
|
|
|
# 26| __synth__0__1
|
|
#-----| -> 0
|
|
|
|
# 26| z
|
|
#-----| -> __synth__0__1
|
|
|
|
# 26| ... = ...
|
|
#-----| -> ...
|
|
|
|
# 26| call to []
|
|
#-----| -> ... = ...
|
|
|
|
# 26| 1
|
|
#-----| -> call to []
|
|
|
|
# 26| __synth__0__1
|
|
#-----| -> 1
|
|
|
|
# 26| call to []
|
|
#-----| -> * ...
|
|
|
|
# 26| ... = ...
|
|
#-----| -> x
|
|
|
|
# 26| Array
|
|
#-----| -> 1
|
|
|
|
# 26| * ...
|
|
#-----| -> ... = ...
|
|
|
|
# 26| __synth__0
|
|
#-----| -> Array
|
|
|
|
# 26| 1
|
|
#-----| -> Array
|
|
|
|
# 26| call to []
|
|
#-----| -> call to []
|
|
|
|
# 26| Array
|
|
#-----| -> 2
|
|
|
|
# 26| 2
|
|
#-----| -> 3
|
|
|
|
# 26| 3
|
|
#-----| -> call to []
|
|
|
|
# 29| X
|
|
#-----| -> @x
|
|
|
|
# 30| ... = ...
|
|
#-----| -> @x
|
|
|
|
# 30| @x
|
|
#-----| -> 1
|
|
|
|
# 30| 1
|
|
#-----| -> ... = ...
|
|
|
|
# 31| @x
|
|
#-----| -> @x
|
|
|
|
# 31| ... = ...
|
|
#-----| -> @@y
|
|
|
|
# 31| @x
|
|
#-----| -> 2
|
|
|
|
# 31| ... + ...
|
|
#-----| -> ... = ...
|
|
|
|
# 31| 2
|
|
#-----| -> ... + ...
|
|
|
|
# 33| ... = ...
|
|
#-----| -> @@y
|
|
|
|
# 33| @@y
|
|
#-----| -> 3
|
|
|
|
# 33| 3
|
|
#-----| -> ... = ...
|
|
|
|
# 34| @@y
|
|
#-----| -> @@y
|
|
|
|
# 34| ... = ...
|
|
#-----| -> $global_var
|
|
|
|
# 34| @@y
|
|
#-----| -> 4
|
|
|
|
# 34| ... / ...
|
|
#-----| -> ... = ...
|
|
|
|
# 34| 4
|
|
#-----| -> ... / ...
|
|
|
|
# 37| ... = ...
|
|
#-----| -> $global_var
|
|
|
|
# 37| $global_var
|
|
#-----| -> 5
|
|
|
|
# 37| 5
|
|
#-----| -> ... = ...
|
|
|
|
# 38| $global_var
|
|
#-----| -> $global_var
|
|
|
|
# 38| ... = ...
|
|
#-----| -> exit desugar.rb (normal)
|
|
|
|
# 38| $global_var
|
|
#-----| -> 6
|
|
|
|
# 38| ... * ...
|
|
#-----| -> ... = ...
|
|
|
|
# 38| 6
|
|
#-----| -> ... * ...
|
|
|
|
exit.rb:
|
|
# 1| enter m1
|
|
#-----| -> x
|
|
|
|
# 1| enter exit.rb
|
|
#-----| -> m1
|
|
|
|
# 1| m1
|
|
#-----| -> m2
|
|
|
|
# 1| exit m1
|
|
|
|
# 1| exit exit.rb
|
|
|
|
# 1| exit m1 (abnormal)
|
|
#-----| -> exit m1
|
|
|
|
# 1| exit m1 (normal)
|
|
#-----| -> exit m1
|
|
|
|
# 1| exit exit.rb (normal)
|
|
#-----| -> exit exit.rb
|
|
|
|
# 1| x
|
|
#-----| -> x
|
|
|
|
# 2| if ...
|
|
#-----| -> self
|
|
|
|
# 2| ... > ...
|
|
#-----| false -> if ...
|
|
#-----| true -> self
|
|
|
|
# 2| x
|
|
#-----| -> 2
|
|
|
|
# 2| 2
|
|
#-----| -> ... > ...
|
|
|
|
# 3| call to exit
|
|
#-----| exit -> exit m1 (abnormal)
|
|
|
|
# 3| self
|
|
#-----| -> 1
|
|
|
|
# 3| 1
|
|
#-----| -> call to exit
|
|
|
|
# 5| call to puts
|
|
#-----| -> exit m1 (normal)
|
|
|
|
# 5| self
|
|
#-----| -> "x <= 2"
|
|
|
|
# 5| "x <= 2"
|
|
#-----| -> call to puts
|
|
|
|
# 8| enter m2
|
|
#-----| -> x
|
|
|
|
# 8| m2
|
|
#-----| -> exit exit.rb (normal)
|
|
|
|
# 8| exit m2
|
|
|
|
# 8| exit m2 (abnormal)
|
|
#-----| -> exit m2
|
|
|
|
# 8| exit m2 (normal)
|
|
#-----| -> exit m2
|
|
|
|
# 8| x
|
|
#-----| -> x
|
|
|
|
# 9| if ...
|
|
#-----| -> self
|
|
|
|
# 9| ... > ...
|
|
#-----| false -> if ...
|
|
#-----| true -> self
|
|
|
|
# 9| x
|
|
#-----| -> 2
|
|
|
|
# 9| 2
|
|
#-----| -> ... > ...
|
|
|
|
# 10| call to abort
|
|
#-----| exit -> exit m2 (abnormal)
|
|
|
|
# 10| self
|
|
#-----| -> "abort!"
|
|
|
|
# 10| "abort!"
|
|
#-----| -> call to abort
|
|
|
|
# 12| call to puts
|
|
#-----| -> exit m2 (normal)
|
|
|
|
# 12| self
|
|
#-----| -> "x <= 2"
|
|
|
|
# 12| "x <= 2"
|
|
#-----| -> call to puts
|
|
|
|
heredoc.rb:
|
|
# 1| enter double_heredoc
|
|
#-----| -> self
|
|
|
|
# 1| enter heredoc.rb
|
|
#-----| -> double_heredoc
|
|
|
|
# 1| double_heredoc
|
|
#-----| -> exit heredoc.rb (normal)
|
|
|
|
# 1| exit double_heredoc
|
|
|
|
# 1| exit heredoc.rb
|
|
|
|
# 1| exit double_heredoc (normal)
|
|
#-----| -> exit double_heredoc
|
|
|
|
# 1| exit heredoc.rb (normal)
|
|
#-----| -> exit heredoc.rb
|
|
|
|
# 2| call to puts
|
|
#-----| -> exit double_heredoc (normal)
|
|
|
|
# 2| self
|
|
#-----| -> <<A
|
|
|
|
# 2| <<A
|
|
#-----| -> <<A
|
|
|
|
# 2| <<A
|
|
#-----| -> call to puts
|
|
|
|
ifs.rb:
|
|
# 1| enter m1
|
|
#-----| -> x
|
|
|
|
# 1| enter ifs.rb
|
|
#-----| -> m1
|
|
|
|
# 1| m1
|
|
#-----| -> m2
|
|
|
|
# 1| exit m1
|
|
|
|
# 1| exit ifs.rb
|
|
|
|
# 1| exit m1 (normal)
|
|
#-----| -> exit m1
|
|
|
|
# 1| exit ifs.rb (normal)
|
|
#-----| -> exit ifs.rb
|
|
|
|
# 1| x
|
|
#-----| -> x
|
|
|
|
# 2| if ...
|
|
#-----| -> exit m1 (normal)
|
|
|
|
# 2| ... > ...
|
|
#-----| false -> x
|
|
#-----| true -> self
|
|
|
|
# 2| x
|
|
#-----| -> 2
|
|
|
|
# 2| 2
|
|
#-----| -> ... > ...
|
|
|
|
# 2| then ...
|
|
#-----| -> if ...
|
|
|
|
# 3| call to puts
|
|
#-----| -> then ...
|
|
|
|
# 3| self
|
|
#-----| -> "x is greater than 2"
|
|
|
|
# 3| "x is greater than 2"
|
|
#-----| -> call to puts
|
|
|
|
# 4| elsif ...
|
|
#-----| -> if ...
|
|
|
|
# 4| ... <= ...
|
|
#-----| false -> [false] ... and ...
|
|
#-----| true -> x
|
|
|
|
# 4| [false] ... and ...
|
|
#-----| false -> self
|
|
|
|
# 4| [true] ... and ...
|
|
#-----| true -> self
|
|
|
|
# 4| [false] ... and ...
|
|
#-----| false -> [false] ... and ...
|
|
|
|
# 4| [true] ... and ...
|
|
#-----| true -> x
|
|
|
|
# 4| x
|
|
#-----| -> 2
|
|
|
|
# 4| 2
|
|
#-----| -> ... <= ...
|
|
|
|
# 4| ... > ...
|
|
#-----| false -> [false] ... and ...
|
|
#-----| true -> [true] ... and ...
|
|
|
|
# 4| x
|
|
#-----| -> 0
|
|
|
|
# 4| 0
|
|
#-----| -> ... > ...
|
|
|
|
# 4| [false] ! ...
|
|
#-----| false -> [false] ... and ...
|
|
|
|
# 4| [true] ! ...
|
|
#-----| true -> [true] ... and ...
|
|
|
|
# 4| [false] ( ... )
|
|
#-----| false -> [true] ! ...
|
|
|
|
# 4| [true] ( ... )
|
|
#-----| true -> [false] ! ...
|
|
|
|
# 4| ... == ...
|
|
#-----| false -> [false] ( ... )
|
|
#-----| true -> [true] ( ... )
|
|
|
|
# 4| x
|
|
#-----| -> 5
|
|
|
|
# 4| 5
|
|
#-----| -> ... == ...
|
|
|
|
# 4| then ...
|
|
#-----| -> elsif ...
|
|
|
|
# 5| call to puts
|
|
#-----| -> then ...
|
|
|
|
# 5| self
|
|
#-----| -> "x is 1"
|
|
|
|
# 5| "x is 1"
|
|
#-----| -> call to puts
|
|
|
|
# 6| else ...
|
|
#-----| -> elsif ...
|
|
|
|
# 7| call to puts
|
|
#-----| -> else ...
|
|
|
|
# 7| self
|
|
#-----| -> "I can't guess the number"
|
|
|
|
# 7| "I can't guess the number"
|
|
#-----| -> call to puts
|
|
|
|
# 11| enter m2
|
|
#-----| -> b
|
|
|
|
# 11| m2
|
|
#-----| -> m3
|
|
|
|
# 11| exit m2
|
|
|
|
# 11| exit m2 (normal)
|
|
#-----| -> exit m2
|
|
|
|
# 11| b
|
|
#-----| -> b
|
|
|
|
# 12| if ...
|
|
#-----| -> 1
|
|
|
|
# 12| b
|
|
#-----| false -> if ...
|
|
#-----| true -> 0
|
|
|
|
# 13| return
|
|
#-----| return -> exit m2 (normal)
|
|
|
|
# 13| 0
|
|
#-----| -> return
|
|
|
|
# 15| return
|
|
#-----| return -> exit m2 (normal)
|
|
|
|
# 15| 1
|
|
#-----| -> return
|
|
|
|
# 18| enter m3
|
|
#-----| -> x
|
|
|
|
# 18| m3
|
|
#-----| -> m4
|
|
|
|
# 18| exit m3
|
|
|
|
# 18| exit m3 (normal)
|
|
#-----| -> exit m3
|
|
|
|
# 18| x
|
|
#-----| -> x
|
|
|
|
# 19| if ...
|
|
#-----| -> self
|
|
|
|
# 19| ... < ...
|
|
#-----| false -> if ...
|
|
#-----| true -> x
|
|
|
|
# 19| x
|
|
#-----| -> 0
|
|
|
|
# 19| 0
|
|
#-----| -> ... < ...
|
|
|
|
# 19| then ...
|
|
#-----| -> if ...
|
|
|
|
# 20| ... = ...
|
|
#-----| -> x
|
|
|
|
# 20| x
|
|
#-----| -> x
|
|
|
|
# 20| - ...
|
|
#-----| -> ... = ...
|
|
|
|
# 20| x
|
|
#-----| -> - ...
|
|
|
|
# 21| if ...
|
|
#-----| -> then ...
|
|
|
|
# 21| ... > ...
|
|
#-----| false -> if ...
|
|
#-----| true -> x
|
|
|
|
# 21| x
|
|
#-----| -> 10
|
|
|
|
# 21| 10
|
|
#-----| -> ... > ...
|
|
|
|
# 21| then ...
|
|
#-----| -> if ...
|
|
|
|
# 22| ... = ...
|
|
#-----| -> then ...
|
|
|
|
# 22| x
|
|
#-----| -> x
|
|
|
|
# 22| ... - ...
|
|
#-----| -> ... = ...
|
|
|
|
# 22| x
|
|
#-----| -> 1
|
|
|
|
# 22| 1
|
|
#-----| -> ... - ...
|
|
|
|
# 25| call to puts
|
|
#-----| -> exit m3 (normal)
|
|
|
|
# 25| self
|
|
#-----| -> x
|
|
|
|
# 25| x
|
|
#-----| -> call to puts
|
|
|
|
# 28| enter m4
|
|
#-----| -> b1
|
|
|
|
# 28| m4
|
|
#-----| -> m5
|
|
|
|
# 28| exit m4
|
|
|
|
# 28| exit m4 (normal)
|
|
#-----| -> exit m4
|
|
|
|
# 28| b1
|
|
#-----| -> b2
|
|
|
|
# 28| b2
|
|
#-----| -> b3
|
|
|
|
# 28| b3
|
|
#-----| -> b1
|
|
|
|
# 29| return
|
|
#-----| return -> exit m4 (normal)
|
|
|
|
# 29| [false] ( ... )
|
|
#-----| false -> "!b2 || !b3"
|
|
|
|
# 29| [true] ( ... )
|
|
#-----| true -> "b2 || b3"
|
|
|
|
# 29| ... ? ... : ...
|
|
#-----| -> return
|
|
|
|
# 29| [false] ... ? ... : ...
|
|
#-----| false -> [false] ( ... )
|
|
|
|
# 29| [true] ... ? ... : ...
|
|
#-----| true -> [true] ( ... )
|
|
|
|
# 29| b1
|
|
#-----| true -> b2
|
|
#-----| false -> b3
|
|
|
|
# 29| b2
|
|
#-----| false -> [false] ... ? ... : ...
|
|
#-----| true -> [true] ... ? ... : ...
|
|
|
|
# 29| b3
|
|
#-----| false -> [false] ... ? ... : ...
|
|
#-----| true -> [true] ... ? ... : ...
|
|
|
|
# 29| "b2 || b3"
|
|
#-----| -> ... ? ... : ...
|
|
|
|
# 29| "!b2 || !b3"
|
|
#-----| -> ... ? ... : ...
|
|
|
|
# 32| enter m5
|
|
#-----| -> b1
|
|
|
|
# 32| m5
|
|
#-----| -> 1
|
|
|
|
# 32| exit m5
|
|
|
|
# 32| exit m5 (normal)
|
|
#-----| -> exit m5
|
|
|
|
# 32| b1
|
|
#-----| -> b2
|
|
|
|
# 32| b2
|
|
#-----| -> b3
|
|
|
|
# 32| b3
|
|
#-----| -> b4
|
|
|
|
# 32| b4
|
|
#-----| -> b5
|
|
|
|
# 32| b5
|
|
#-----| -> b1
|
|
|
|
# 33| if ...
|
|
#-----| -> exit m5 (normal)
|
|
|
|
# 33| [false] ( ... )
|
|
#-----| false -> "!b2 || !b4 || !b5"
|
|
|
|
# 33| [true] ( ... )
|
|
#-----| true -> "b2 || b4 || b5"
|
|
|
|
# 33| [false] if ...
|
|
#-----| false -> [false] ( ... )
|
|
|
|
# 33| [true] if ...
|
|
#-----| true -> [true] ( ... )
|
|
|
|
# 33| b1
|
|
#-----| true -> b2
|
|
#-----| false -> b3
|
|
|
|
# 33| [false] then ...
|
|
#-----| false -> [false] if ...
|
|
|
|
# 33| [true] then ...
|
|
#-----| true -> [true] if ...
|
|
|
|
# 33| b2
|
|
#-----| false -> [false] then ...
|
|
#-----| true -> [true] then ...
|
|
|
|
# 33| [false] elsif ...
|
|
#-----| false -> [false] if ...
|
|
|
|
# 33| [true] elsif ...
|
|
#-----| true -> [true] if ...
|
|
|
|
# 33| b3
|
|
#-----| true -> b4
|
|
#-----| false -> b5
|
|
|
|
# 33| [false] then ...
|
|
#-----| false -> [false] elsif ...
|
|
|
|
# 33| [true] then ...
|
|
#-----| true -> [true] elsif ...
|
|
|
|
# 33| b4
|
|
#-----| false -> [false] then ...
|
|
#-----| true -> [true] then ...
|
|
|
|
# 33| [false] else ...
|
|
#-----| false -> [false] elsif ...
|
|
|
|
# 33| [true] else ...
|
|
#-----| true -> [true] elsif ...
|
|
|
|
# 33| b5
|
|
#-----| false -> [false] else ...
|
|
#-----| true -> [true] else ...
|
|
|
|
# 33| then ...
|
|
#-----| -> if ...
|
|
|
|
# 33| "b2 || b4 || b5"
|
|
#-----| -> then ...
|
|
|
|
# 33| else ...
|
|
#-----| -> if ...
|
|
|
|
# 33| "!b2 || !b4 || !b5"
|
|
#-----| -> else ...
|
|
|
|
# 36| enter conditional_method_def
|
|
#-----| -> self
|
|
|
|
# 36| conditional_method_def
|
|
#-----| -> ... unless ...
|
|
|
|
# 36| ... unless ...
|
|
#-----| -> constant_condition
|
|
|
|
# 36| exit conditional_method_def
|
|
|
|
# 36| exit conditional_method_def (normal)
|
|
#-----| -> exit conditional_method_def
|
|
|
|
# 37| call to puts
|
|
#-----| -> exit conditional_method_def (normal)
|
|
|
|
# 37| self
|
|
#-----| -> "bla"
|
|
|
|
# 37| "bla"
|
|
#-----| -> call to puts
|
|
|
|
# 38| ... == ...
|
|
#-----| false -> conditional_method_def
|
|
#-----| true -> ... unless ...
|
|
|
|
# 38| 1
|
|
#-----| -> 2
|
|
|
|
# 38| 2
|
|
#-----| -> ... == ...
|
|
|
|
# 40| enter constant_condition
|
|
#-----| -> true
|
|
|
|
# 40| constant_condition
|
|
#-----| -> empty_else
|
|
|
|
# 40| exit constant_condition
|
|
|
|
# 40| exit constant_condition (normal)
|
|
#-----| -> exit constant_condition
|
|
|
|
# 41| if ...
|
|
#-----| -> exit constant_condition (normal)
|
|
|
|
# 41| [false] ! ...
|
|
#-----| false -> if ...
|
|
|
|
# 41| true
|
|
#-----| true -> [false] ! ...
|
|
|
|
# 46| enter empty_else
|
|
#-----| -> b
|
|
|
|
# 46| empty_else
|
|
#-----| -> disjunct
|
|
|
|
# 46| exit empty_else
|
|
|
|
# 46| exit empty_else (normal)
|
|
#-----| -> exit empty_else
|
|
|
|
# 46| b
|
|
#-----| -> b
|
|
|
|
# 47| if ...
|
|
#-----| -> self
|
|
|
|
# 47| b
|
|
#-----| false -> else ...
|
|
#-----| true -> self
|
|
|
|
# 47| then ...
|
|
#-----| -> if ...
|
|
|
|
# 48| call to puts
|
|
#-----| -> then ...
|
|
|
|
# 48| self
|
|
#-----| -> "true"
|
|
|
|
# 48| "true"
|
|
#-----| -> call to puts
|
|
|
|
# 49| else ...
|
|
#-----| -> if ...
|
|
|
|
# 51| call to puts
|
|
#-----| -> exit empty_else (normal)
|
|
|
|
# 51| self
|
|
#-----| -> "done"
|
|
|
|
# 51| "done"
|
|
#-----| -> call to puts
|
|
|
|
# 54| enter disjunct
|
|
#-----| -> b1
|
|
|
|
# 54| disjunct
|
|
#-----| -> exit ifs.rb (normal)
|
|
|
|
# 54| exit disjunct
|
|
|
|
# 54| exit disjunct (normal)
|
|
#-----| -> exit disjunct
|
|
|
|
# 54| b1
|
|
#-----| -> b2
|
|
|
|
# 54| b2
|
|
#-----| -> b1
|
|
|
|
# 55| if ...
|
|
#-----| -> exit disjunct (normal)
|
|
|
|
# 55| [false] ( ... )
|
|
#-----| false -> if ...
|
|
|
|
# 55| [true] ( ... )
|
|
#-----| true -> self
|
|
|
|
# 55| [false] ... || ...
|
|
#-----| false -> [false] ( ... )
|
|
|
|
# 55| [true] ... || ...
|
|
#-----| true -> [true] ( ... )
|
|
|
|
# 55| b1
|
|
#-----| true -> [true] ... || ...
|
|
#-----| false -> b2
|
|
|
|
# 55| b2
|
|
#-----| false -> [false] ... || ...
|
|
#-----| true -> [true] ... || ...
|
|
|
|
# 55| then ...
|
|
#-----| -> if ...
|
|
|
|
# 56| call to puts
|
|
#-----| -> then ...
|
|
|
|
# 56| self
|
|
#-----| -> "b1 or b2"
|
|
|
|
# 56| "b1 or b2"
|
|
#-----| -> call to puts
|
|
|
|
loops.rb:
|
|
# 1| enter m1
|
|
#-----| -> x
|
|
|
|
# 1| enter loops.rb
|
|
#-----| -> m1
|
|
|
|
# 1| m1
|
|
#-----| -> m2
|
|
|
|
# 1| exit m1
|
|
|
|
# 1| exit loops.rb
|
|
|
|
# 1| exit m1 (normal)
|
|
#-----| -> exit m1
|
|
|
|
# 1| exit loops.rb (normal)
|
|
#-----| -> exit loops.rb
|
|
|
|
# 1| x
|
|
#-----| -> x
|
|
|
|
# 2| while ...
|
|
#-----| -> exit m1 (normal)
|
|
|
|
# 2| ... >= ...
|
|
#-----| false -> while ...
|
|
#-----| true -> self
|
|
|
|
# 2| x
|
|
#-----| -> 0
|
|
|
|
# 2| 0
|
|
#-----| -> ... >= ...
|
|
|
|
# 2| do ...
|
|
#-----| -> x
|
|
|
|
# 3| call to puts
|
|
#-----| -> x
|
|
|
|
# 3| self
|
|
#-----| -> x
|
|
|
|
# 3| x
|
|
#-----| -> call to puts
|
|
|
|
# 4| x
|
|
#-----| -> x
|
|
|
|
# 4| ... = ...
|
|
#-----| -> do ...
|
|
|
|
# 4| x
|
|
#-----| -> 1
|
|
|
|
# 4| ... - ...
|
|
#-----| -> ... = ...
|
|
|
|
# 4| 1
|
|
#-----| -> ... - ...
|
|
|
|
# 8| enter m2
|
|
#-----| -> x
|
|
|
|
# 8| m2
|
|
#-----| -> m3
|
|
|
|
# 8| exit m2
|
|
|
|
# 8| exit m2 (normal)
|
|
#-----| -> exit m2
|
|
|
|
# 8| x
|
|
#-----| -> x
|
|
|
|
# 9| while ...
|
|
#-----| -> self
|
|
|
|
# 9| ... >= ...
|
|
#-----| false -> while ...
|
|
#-----| true -> self
|
|
|
|
# 9| x
|
|
#-----| -> 0
|
|
|
|
# 9| 0
|
|
#-----| -> ... >= ...
|
|
|
|
# 9| do ...
|
|
#-----| -> x
|
|
|
|
# 10| call to puts
|
|
#-----| -> x
|
|
|
|
# 10| self
|
|
#-----| -> x
|
|
|
|
# 10| x
|
|
#-----| -> call to puts
|
|
|
|
# 11| x
|
|
#-----| -> x
|
|
|
|
# 11| ... = ...
|
|
#-----| -> x
|
|
|
|
# 11| x
|
|
#-----| -> 1
|
|
|
|
# 11| ... - ...
|
|
#-----| -> ... = ...
|
|
|
|
# 11| 1
|
|
#-----| -> ... - ...
|
|
|
|
# 12| if ...
|
|
#-----| -> self
|
|
|
|
# 12| ... > ...
|
|
#-----| true -> break
|
|
#-----| false -> x
|
|
|
|
# 12| x
|
|
#-----| -> 100
|
|
|
|
# 12| 100
|
|
#-----| -> ... > ...
|
|
|
|
# 13| break
|
|
#-----| break -> while ...
|
|
|
|
# 14| elsif ...
|
|
#-----| -> if ...
|
|
|
|
# 14| ... > ...
|
|
#-----| true -> next
|
|
#-----| false -> x
|
|
|
|
# 14| x
|
|
#-----| -> 50
|
|
|
|
# 14| 50
|
|
#-----| -> ... > ...
|
|
|
|
# 15| next
|
|
#-----| next -> x
|
|
|
|
# 16| elsif ...
|
|
#-----| -> elsif ...
|
|
|
|
# 16| ... > ...
|
|
#-----| false -> elsif ...
|
|
#-----| true -> redo
|
|
|
|
# 16| x
|
|
#-----| -> 10
|
|
|
|
# 16| 10
|
|
#-----| -> ... > ...
|
|
|
|
# 17| redo
|
|
#-----| redo -> self
|
|
|
|
# 19| call to puts
|
|
#-----| -> do ...
|
|
|
|
# 19| self
|
|
#-----| -> "Iter"
|
|
|
|
# 19| "Iter"
|
|
#-----| -> call to puts
|
|
|
|
# 21| call to puts
|
|
#-----| -> exit m2 (normal)
|
|
|
|
# 21| self
|
|
#-----| -> "Done"
|
|
|
|
# 21| "Done"
|
|
#-----| -> call to puts
|
|
|
|
# 24| enter m3
|
|
#-----| -> Array
|
|
|
|
# 24| m3
|
|
#-----| -> m4
|
|
|
|
# 24| exit m3
|
|
|
|
# 24| exit m3 (normal)
|
|
#-----| -> exit m3
|
|
|
|
# 25| call to each
|
|
#-----| -> exit m3 (normal)
|
|
|
|
# 25| call to []
|
|
#-----| -> do ... end
|
|
|
|
# 25| Array
|
|
#-----| -> 1
|
|
|
|
# 25| 1
|
|
#-----| -> 2
|
|
|
|
# 25| 2
|
|
#-----| -> 3
|
|
|
|
# 25| 3
|
|
#-----| -> call to []
|
|
|
|
# 25| enter do ... end
|
|
#-----| -> x
|
|
|
|
# 25| do ... end
|
|
#-----| -> call to each
|
|
|
|
# 25| exit do ... end
|
|
|
|
# 25| exit do ... end (normal)
|
|
#-----| -> exit do ... end
|
|
|
|
# 25| x
|
|
#-----| -> self
|
|
|
|
# 26| call to puts
|
|
#-----| -> exit do ... end (normal)
|
|
|
|
# 26| self
|
|
#-----| -> x
|
|
|
|
# 26| x
|
|
#-----| -> call to puts
|
|
|
|
# 30| enter m4
|
|
#-----| -> x
|
|
|
|
# 30| m4
|
|
#-----| -> exit loops.rb (normal)
|
|
|
|
# 30| exit m4
|
|
|
|
# 30| exit m4 (normal)
|
|
#-----| -> exit m4
|
|
|
|
# 30| x
|
|
#-----| -> y
|
|
|
|
# 30| y
|
|
#-----| -> x
|
|
|
|
# 31| while ...
|
|
#-----| -> exit m4 (normal)
|
|
|
|
# 31| ... < ...
|
|
#-----| true -> do ...
|
|
#-----| false -> while ...
|
|
|
|
# 31| x
|
|
#-----| -> y
|
|
|
|
# 31| y
|
|
#-----| -> ... < ...
|
|
|
|
# 31| do ...
|
|
#-----| -> x
|
|
|
|
raise.rb:
|
|
# 1| enter raise.rb
|
|
#-----| -> ExceptionA
|
|
|
|
# 1| ExceptionA
|
|
#-----| -> Exception
|
|
|
|
# 1| exit raise.rb
|
|
|
|
# 1| exit raise.rb (normal)
|
|
#-----| -> exit raise.rb
|
|
|
|
# 1| Exception
|
|
#-----| -> ExceptionB
|
|
|
|
# 4| ExceptionB
|
|
#-----| -> Exception
|
|
|
|
# 4| Exception
|
|
#-----| -> m1
|
|
|
|
# 7| enter m1
|
|
#-----| -> x
|
|
|
|
# 7| m1
|
|
#-----| -> m2
|
|
|
|
# 7| exit m1
|
|
|
|
# 7| exit m1 (abnormal)
|
|
#-----| -> exit m1
|
|
|
|
# 7| exit m1 (normal)
|
|
#-----| -> exit m1
|
|
|
|
# 7| x
|
|
#-----| -> x
|
|
|
|
# 8| if ...
|
|
#-----| -> self
|
|
|
|
# 8| ... > ...
|
|
#-----| false -> if ...
|
|
#-----| true -> self
|
|
|
|
# 8| x
|
|
#-----| -> 2
|
|
|
|
# 8| 2
|
|
#-----| -> ... > ...
|
|
|
|
# 9| call to raise
|
|
#-----| raise -> exit m1 (abnormal)
|
|
|
|
# 9| self
|
|
#-----| -> "x > 2"
|
|
|
|
# 9| "x > 2"
|
|
#-----| -> call to raise
|
|
|
|
# 11| call to puts
|
|
#-----| -> exit m1 (normal)
|
|
|
|
# 11| self
|
|
#-----| -> "x <= 2"
|
|
|
|
# 11| "x <= 2"
|
|
#-----| -> call to puts
|
|
|
|
# 14| enter m2
|
|
#-----| -> b
|
|
|
|
# 14| m2
|
|
#-----| -> m3
|
|
|
|
# 14| exit m2
|
|
|
|
# 14| exit m2 (abnormal)
|
|
#-----| -> exit m2
|
|
|
|
# 14| exit m2 (normal)
|
|
#-----| -> exit m2
|
|
|
|
# 14| b
|
|
#-----| -> b
|
|
|
|
# 16| if ...
|
|
#-----| -> self
|
|
|
|
# 16| b
|
|
#-----| false -> if ...
|
|
#-----| true -> self
|
|
|
|
# 17| call to raise
|
|
#-----| raise -> rescue ...
|
|
|
|
# 17| self
|
|
#-----| -> ExceptionA
|
|
|
|
# 17| ExceptionA
|
|
#-----| -> call to raise
|
|
|
|
# 19| rescue ...
|
|
#-----| -> ExceptionA
|
|
|
|
# 19| ExceptionA
|
|
#-----| match -> self
|
|
#-----| raise -> exit m2 (abnormal)
|
|
|
|
# 19| then ...
|
|
#-----| -> self
|
|
|
|
# 20| call to puts
|
|
#-----| -> then ...
|
|
|
|
# 20| self
|
|
#-----| -> "Rescued"
|
|
|
|
# 20| "Rescued"
|
|
#-----| -> call to puts
|
|
|
|
# 22| call to puts
|
|
#-----| -> exit m2 (normal)
|
|
|
|
# 22| self
|
|
#-----| -> "End m2"
|
|
|
|
# 22| "End m2"
|
|
#-----| -> call to puts
|
|
|
|
# 25| enter m3
|
|
#-----| -> b
|
|
|
|
# 25| m3
|
|
#-----| -> m4
|
|
|
|
# 25| exit m3
|
|
|
|
# 25| exit m3 (normal)
|
|
#-----| -> exit m3
|
|
|
|
# 25| b
|
|
#-----| -> b
|
|
|
|
# 27| if ...
|
|
#-----| -> self
|
|
|
|
# 27| b
|
|
#-----| false -> if ...
|
|
#-----| true -> self
|
|
|
|
# 28| call to raise
|
|
#-----| raise -> rescue ...
|
|
|
|
# 28| self
|
|
#-----| -> ExceptionA
|
|
|
|
# 28| ExceptionA
|
|
#-----| -> call to raise
|
|
|
|
# 30| rescue ...
|
|
#-----| -> self
|
|
|
|
# 30| then ...
|
|
#-----| -> self
|
|
|
|
# 31| call to puts
|
|
#-----| -> then ...
|
|
|
|
# 31| self
|
|
#-----| -> "Rescued"
|
|
|
|
# 31| "Rescued"
|
|
#-----| -> call to puts
|
|
|
|
# 33| call to puts
|
|
#-----| -> exit m3 (normal)
|
|
|
|
# 33| self
|
|
#-----| -> "End m3"
|
|
|
|
# 33| "End m3"
|
|
#-----| -> call to puts
|
|
|
|
# 36| enter m4
|
|
#-----| -> b
|
|
|
|
# 36| m4
|
|
#-----| -> m5
|
|
|
|
# 36| exit m4
|
|
|
|
# 36| exit m4 (normal)
|
|
#-----| -> exit m4
|
|
|
|
# 36| b
|
|
#-----| -> b
|
|
|
|
# 38| if ...
|
|
#-----| -> self
|
|
|
|
# 38| b
|
|
#-----| false -> if ...
|
|
#-----| true -> self
|
|
|
|
# 39| call to raise
|
|
#-----| raise -> rescue ...
|
|
|
|
# 39| self
|
|
#-----| -> ExceptionA
|
|
|
|
# 39| ExceptionA
|
|
#-----| -> call to raise
|
|
|
|
# 41| rescue ...
|
|
#-----| -> e
|
|
|
|
# 41| e
|
|
#-----| -> self
|
|
|
|
# 41| then ...
|
|
#-----| -> self
|
|
|
|
# 42| call to puts
|
|
#-----| -> then ...
|
|
|
|
# 42| self
|
|
#-----| -> "Rescued {e}"
|
|
|
|
# 42| "Rescued {e}"
|
|
#-----| -> call to puts
|
|
|
|
# 44| call to puts
|
|
#-----| -> exit m4 (normal)
|
|
|
|
# 44| self
|
|
#-----| -> "End m4"
|
|
|
|
# 44| "End m4"
|
|
#-----| -> call to puts
|
|
|
|
# 47| enter m5
|
|
#-----| -> b
|
|
|
|
# 47| m5
|
|
#-----| -> m6
|
|
|
|
# 47| exit m5
|
|
|
|
# 47| exit m5 (normal)
|
|
#-----| -> exit m5
|
|
|
|
# 47| b
|
|
#-----| -> b
|
|
|
|
# 49| if ...
|
|
#-----| -> self
|
|
|
|
# 49| b
|
|
#-----| false -> if ...
|
|
#-----| true -> self
|
|
|
|
# 50| call to raise
|
|
#-----| raise -> rescue ...
|
|
|
|
# 50| self
|
|
#-----| -> ExceptionA
|
|
|
|
# 50| ExceptionA
|
|
#-----| -> call to raise
|
|
|
|
# 52| rescue ...
|
|
#-----| -> e
|
|
|
|
# 52| e
|
|
#-----| -> self
|
|
|
|
# 54| call to puts
|
|
#-----| -> exit m5 (normal)
|
|
|
|
# 54| self
|
|
#-----| -> "End m5"
|
|
|
|
# 54| "End m5"
|
|
#-----| -> call to puts
|
|
|
|
# 57| enter m6
|
|
#-----| -> b
|
|
|
|
# 57| m6
|
|
#-----| -> m7
|
|
|
|
# 57| exit m6
|
|
|
|
# 57| exit m6 (abnormal)
|
|
#-----| -> exit m6
|
|
|
|
# 57| exit m6 (normal)
|
|
#-----| -> exit m6
|
|
|
|
# 57| b
|
|
#-----| -> b
|
|
|
|
# 59| if ...
|
|
#-----| -> self
|
|
|
|
# 59| b
|
|
#-----| false -> if ...
|
|
#-----| true -> self
|
|
|
|
# 60| call to raise
|
|
#-----| raise -> rescue ...
|
|
|
|
# 60| self
|
|
#-----| -> ExceptionA
|
|
|
|
# 60| ExceptionA
|
|
#-----| -> call to raise
|
|
|
|
# 62| rescue ...
|
|
#-----| -> ExceptionA
|
|
|
|
# 62| ExceptionA
|
|
#-----| no-match -> ExceptionB
|
|
#-----| match -> e
|
|
|
|
# 62| ExceptionB
|
|
#-----| match -> e
|
|
#-----| raise -> exit m6 (abnormal)
|
|
|
|
# 62| e
|
|
#-----| -> self
|
|
|
|
# 62| then ...
|
|
#-----| -> self
|
|
|
|
# 63| call to puts
|
|
#-----| -> then ...
|
|
|
|
# 63| self
|
|
#-----| -> "Rescued {e}"
|
|
|
|
# 63| "Rescued {e}"
|
|
#-----| -> call to puts
|
|
|
|
# 65| call to puts
|
|
#-----| -> exit m6 (normal)
|
|
|
|
# 65| self
|
|
#-----| -> "End m6"
|
|
|
|
# 65| "End m6"
|
|
#-----| -> call to puts
|
|
|
|
# 68| enter m7
|
|
#-----| -> x
|
|
|
|
# 68| m7
|
|
#-----| -> m8
|
|
|
|
# 68| exit m7
|
|
|
|
# 68| exit m7 (abnormal)
|
|
#-----| -> exit m7
|
|
|
|
# 68| exit m7 (normal)
|
|
#-----| -> exit m7
|
|
|
|
# 68| x
|
|
#-----| -> x
|
|
|
|
# 69| if ...
|
|
#-----| -> self
|
|
|
|
# 69| ... > ...
|
|
#-----| false -> x
|
|
#-----| true -> self
|
|
#-----| raise -> [ensure: raise] self
|
|
|
|
# 69| x
|
|
#-----| -> 2
|
|
|
|
# 69| 2
|
|
#-----| -> ... > ...
|
|
|
|
# 70| call to raise
|
|
#-----| raise -> [ensure: raise] self
|
|
|
|
# 70| self
|
|
#-----| -> "x > 2"
|
|
|
|
# 70| "x > 2"
|
|
#-----| -> call to raise
|
|
|
|
# 71| elsif ...
|
|
#-----| -> if ...
|
|
|
|
# 71| ... < ...
|
|
#-----| false -> elsif ...
|
|
#-----| true -> "x < 0"
|
|
#-----| raise -> [ensure: raise] self
|
|
|
|
# 71| x
|
|
#-----| -> 0
|
|
|
|
# 71| 0
|
|
#-----| -> ... < ...
|
|
|
|
# 72| return
|
|
#-----| return -> [ensure: return] self
|
|
|
|
# 72| "x < 0"
|
|
#-----| -> return
|
|
|
|
# 74| call to puts
|
|
#-----| -> self
|
|
#-----| raise -> [ensure: raise] self
|
|
|
|
# 74| self
|
|
#-----| -> "0 <= x <= 2"
|
|
|
|
# 74| "0 <= x <= 2"
|
|
#-----| -> call to puts
|
|
|
|
# 75| ensure ...
|
|
#-----| -> exit m7 (normal)
|
|
|
|
# 75| [ensure: return] ensure ...
|
|
#-----| return -> exit m7 (normal)
|
|
|
|
# 75| [ensure: raise] ensure ...
|
|
#-----| raise -> exit m7 (abnormal)
|
|
|
|
# 76| call to puts
|
|
#-----| -> ensure ...
|
|
|
|
# 76| [ensure: return] call to puts
|
|
#-----| -> [ensure: return] ensure ...
|
|
|
|
# 76| [ensure: raise] call to puts
|
|
#-----| -> [ensure: raise] ensure ...
|
|
|
|
# 76| self
|
|
#-----| -> "ensure"
|
|
|
|
# 76| [ensure: return] self
|
|
#-----| -> [ensure: return] "ensure"
|
|
|
|
# 76| [ensure: raise] self
|
|
#-----| -> [ensure: raise] "ensure"
|
|
|
|
# 76| "ensure"
|
|
#-----| -> call to puts
|
|
|
|
# 76| [ensure: return] "ensure"
|
|
#-----| -> [ensure: return] call to puts
|
|
|
|
# 76| [ensure: raise] "ensure"
|
|
#-----| -> [ensure: raise] call to puts
|
|
|
|
# 79| enter m8
|
|
#-----| -> x
|
|
|
|
# 79| m8
|
|
#-----| -> m9
|
|
|
|
# 79| exit m8
|
|
|
|
# 79| exit m8 (abnormal)
|
|
#-----| -> exit m8
|
|
|
|
# 79| exit m8 (normal)
|
|
#-----| -> exit m8
|
|
|
|
# 79| x
|
|
#-----| -> self
|
|
|
|
# 80| call to puts
|
|
#-----| -> x
|
|
|
|
# 80| self
|
|
#-----| -> "Begin m8"
|
|
|
|
# 80| "Begin m8"
|
|
#-----| -> call to puts
|
|
|
|
# 82| if ...
|
|
#-----| -> self
|
|
|
|
# 82| ... > ...
|
|
#-----| false -> x
|
|
#-----| true -> self
|
|
#-----| raise -> [ensure: raise] self
|
|
|
|
# 82| x
|
|
#-----| -> 2
|
|
|
|
# 82| 2
|
|
#-----| -> ... > ...
|
|
|
|
# 83| call to raise
|
|
#-----| raise -> [ensure: raise] self
|
|
|
|
# 83| self
|
|
#-----| -> "x > 2"
|
|
|
|
# 83| "x > 2"
|
|
#-----| -> call to raise
|
|
|
|
# 84| elsif ...
|
|
#-----| -> if ...
|
|
|
|
# 84| ... < ...
|
|
#-----| false -> elsif ...
|
|
#-----| true -> "x < 0"
|
|
#-----| raise -> [ensure: raise] self
|
|
|
|
# 84| x
|
|
#-----| -> 0
|
|
|
|
# 84| 0
|
|
#-----| -> ... < ...
|
|
|
|
# 85| return
|
|
#-----| return -> [ensure: return] self
|
|
|
|
# 85| "x < 0"
|
|
#-----| -> return
|
|
|
|
# 87| call to puts
|
|
#-----| -> self
|
|
#-----| raise -> [ensure: raise] self
|
|
|
|
# 87| self
|
|
#-----| -> "0 <= x <= 2"
|
|
|
|
# 87| "0 <= x <= 2"
|
|
#-----| -> call to puts
|
|
|
|
# 88| ensure ...
|
|
#-----| -> self
|
|
|
|
# 88| [ensure: return] ensure ...
|
|
#-----| return -> exit m8 (normal)
|
|
|
|
# 88| [ensure: raise] ensure ...
|
|
#-----| raise -> exit m8 (abnormal)
|
|
|
|
# 89| call to puts
|
|
#-----| -> ensure ...
|
|
|
|
# 89| [ensure: return] call to puts
|
|
#-----| -> [ensure: return] ensure ...
|
|
|
|
# 89| [ensure: raise] call to puts
|
|
#-----| -> [ensure: raise] ensure ...
|
|
|
|
# 89| self
|
|
#-----| -> "ensure"
|
|
|
|
# 89| [ensure: return] self
|
|
#-----| -> [ensure: return] "ensure"
|
|
|
|
# 89| [ensure: raise] self
|
|
#-----| -> [ensure: raise] "ensure"
|
|
|
|
# 89| "ensure"
|
|
#-----| -> call to puts
|
|
|
|
# 89| [ensure: return] "ensure"
|
|
#-----| -> [ensure: return] call to puts
|
|
|
|
# 89| [ensure: raise] "ensure"
|
|
#-----| -> [ensure: raise] call to puts
|
|
|
|
# 91| call to puts
|
|
#-----| -> exit m8 (normal)
|
|
|
|
# 91| self
|
|
#-----| -> "End m8"
|
|
|
|
# 91| "End m8"
|
|
#-----| -> call to puts
|
|
|
|
# 94| enter m9
|
|
#-----| -> x
|
|
|
|
# 94| m9
|
|
#-----| -> m10
|
|
|
|
# 94| exit m9
|
|
|
|
# 94| exit m9 (abnormal)
|
|
#-----| -> exit m9
|
|
|
|
# 94| exit m9 (normal)
|
|
#-----| -> exit m9
|
|
|
|
# 94| x
|
|
#-----| -> b1
|
|
|
|
# 94| b1
|
|
#-----| -> b2
|
|
|
|
# 94| b2
|
|
#-----| -> self
|
|
|
|
# 95| call to puts
|
|
#-----| -> x
|
|
#-----| raise -> [ensure: raise] self
|
|
|
|
# 95| self
|
|
#-----| -> "Begin m9"
|
|
|
|
# 95| "Begin m9"
|
|
#-----| -> call to puts
|
|
|
|
# 97| if ...
|
|
#-----| -> self
|
|
|
|
# 97| ... > ...
|
|
#-----| false -> x
|
|
#-----| true -> self
|
|
#-----| raise -> [ensure: raise] self
|
|
|
|
# 97| x
|
|
#-----| -> 2
|
|
|
|
# 97| 2
|
|
#-----| -> ... > ...
|
|
|
|
# 98| call to raise
|
|
#-----| raise -> [ensure: raise] self
|
|
|
|
# 98| self
|
|
#-----| -> "x > 2"
|
|
|
|
# 98| "x > 2"
|
|
#-----| -> call to raise
|
|
|
|
# 99| elsif ...
|
|
#-----| -> if ...
|
|
|
|
# 99| ... < ...
|
|
#-----| false -> elsif ...
|
|
#-----| true -> "x < 0"
|
|
#-----| raise -> [ensure: raise] self
|
|
|
|
# 99| x
|
|
#-----| -> 0
|
|
|
|
# 99| 0
|
|
#-----| -> ... < ...
|
|
|
|
# 100| return
|
|
#-----| return -> [ensure: return] self
|
|
|
|
# 100| "x < 0"
|
|
#-----| -> return
|
|
|
|
# 102| call to puts
|
|
#-----| -> self
|
|
#-----| raise -> [ensure: raise] self
|
|
|
|
# 102| self
|
|
#-----| -> "0 <= x <= 2"
|
|
|
|
# 102| "0 <= x <= 2"
|
|
#-----| -> call to puts
|
|
|
|
# 103| ensure ...
|
|
#-----| -> self
|
|
|
|
# 103| [ensure: return] ensure ...
|
|
#-----| return -> [ensure: return] self
|
|
|
|
# 103| [ensure: raise] ensure ...
|
|
#-----| raise -> [ensure: raise] self
|
|
|
|
# 104| call to puts
|
|
#-----| -> b1
|
|
#-----| raise -> [ensure: raise] self
|
|
|
|
# 104| [ensure: return] call to puts
|
|
#-----| -> [ensure: return] b1
|
|
#-----| raise -> [ensure: raise] self
|
|
|
|
# 104| [ensure: raise] call to puts
|
|
#-----| -> [ensure: raise] b1
|
|
#-----| raise -> [ensure: raise] self
|
|
|
|
# 104| self
|
|
#-----| -> "outer ensure"
|
|
|
|
# 104| [ensure: return] self
|
|
#-----| -> [ensure: return] "outer ensure"
|
|
|
|
# 104| [ensure: raise] self
|
|
#-----| -> [ensure: raise] "outer ensure"
|
|
|
|
# 104| "outer ensure"
|
|
#-----| -> call to puts
|
|
|
|
# 104| [ensure: return] "outer ensure"
|
|
#-----| -> [ensure: return] call to puts
|
|
|
|
# 104| [ensure: raise] "outer ensure"
|
|
#-----| -> [ensure: raise] call to puts
|
|
|
|
# 106| if ...
|
|
#-----| -> self
|
|
|
|
# 106| [ensure: return] if ...
|
|
#-----| -> [ensure: return] self
|
|
|
|
# 106| [ensure: raise] if ...
|
|
#-----| -> [ensure: raise] self
|
|
|
|
# 106| b1
|
|
#-----| false -> if ...
|
|
#-----| true -> self
|
|
|
|
# 106| [ensure: return] b1
|
|
#-----| false -> [ensure: return] if ...
|
|
#-----| true -> [ensure: return] self
|
|
|
|
# 106| [ensure: raise] b1
|
|
#-----| false -> [ensure: raise] if ...
|
|
#-----| true -> [ensure: raise] self
|
|
|
|
# 107| call to raise
|
|
#-----| raise -> [ensure(1): raise] self
|
|
|
|
# 107| [ensure: return] call to raise
|
|
#-----| raise -> [ensure: return, ensure(1): raise] self
|
|
|
|
# 107| [ensure: raise] call to raise
|
|
#-----| raise -> [ensure: raise, ensure(1): raise] self
|
|
|
|
# 107| self
|
|
#-----| -> "b1 is true"
|
|
|
|
# 107| [ensure: return] self
|
|
#-----| -> [ensure: return] "b1 is true"
|
|
|
|
# 107| [ensure: raise] self
|
|
#-----| -> [ensure: raise] "b1 is true"
|
|
|
|
# 107| "b1 is true"
|
|
#-----| -> call to raise
|
|
|
|
# 107| [ensure: return] "b1 is true"
|
|
#-----| -> [ensure: return] call to raise
|
|
|
|
# 107| [ensure: raise] "b1 is true"
|
|
#-----| -> [ensure: raise] call to raise
|
|
|
|
# 109| ensure ...
|
|
#-----| -> ensure ...
|
|
|
|
# 109| [ensure(1): raise] ensure ...
|
|
#-----| raise -> [ensure: raise] self
|
|
|
|
# 109| [ensure: return] ensure ...
|
|
#-----| -> [ensure: return] ensure ...
|
|
|
|
# 109| [ensure: return, ensure(1): raise] ensure ...
|
|
#-----| raise -> [ensure: raise] self
|
|
|
|
# 109| [ensure: raise] ensure ...
|
|
#-----| -> [ensure: raise] ensure ...
|
|
|
|
# 109| [ensure: raise, ensure(1): raise] ensure ...
|
|
#-----| raise -> [ensure: raise] self
|
|
|
|
# 110| call to puts
|
|
#-----| -> ensure ...
|
|
#-----| raise -> [ensure: raise] self
|
|
|
|
# 110| [ensure(1): raise] call to puts
|
|
#-----| -> [ensure(1): raise] ensure ...
|
|
#-----| raise -> [ensure: raise] self
|
|
|
|
# 110| [ensure: return] call to puts
|
|
#-----| -> [ensure: return] ensure ...
|
|
#-----| raise -> [ensure: raise] self
|
|
|
|
# 110| [ensure: return, ensure(1): raise] call to puts
|
|
#-----| -> [ensure: return, ensure(1): raise] ensure ...
|
|
#-----| raise -> [ensure: raise] self
|
|
|
|
# 110| [ensure: raise] call to puts
|
|
#-----| -> [ensure: raise] ensure ...
|
|
#-----| raise -> [ensure: raise] self
|
|
|
|
# 110| [ensure: raise, ensure(1): raise] call to puts
|
|
#-----| -> [ensure: raise, ensure(1): raise] ensure ...
|
|
#-----| raise -> [ensure: raise] self
|
|
|
|
# 110| self
|
|
#-----| -> "inner ensure"
|
|
|
|
# 110| [ensure(1): raise] self
|
|
#-----| -> [ensure(1): raise] "inner ensure"
|
|
|
|
# 110| [ensure: return] self
|
|
#-----| -> [ensure: return] "inner ensure"
|
|
|
|
# 110| [ensure: return, ensure(1): raise] self
|
|
#-----| -> [ensure: return, ensure(1): raise] "inner ensure"
|
|
|
|
# 110| [ensure: raise] self
|
|
#-----| -> [ensure: raise] "inner ensure"
|
|
|
|
# 110| [ensure: raise, ensure(1): raise] self
|
|
#-----| -> [ensure: raise, ensure(1): raise] "inner ensure"
|
|
|
|
# 110| "inner ensure"
|
|
#-----| -> call to puts
|
|
|
|
# 110| [ensure(1): raise] "inner ensure"
|
|
#-----| -> [ensure(1): raise] call to puts
|
|
|
|
# 110| [ensure: return] "inner ensure"
|
|
#-----| -> [ensure: return] call to puts
|
|
|
|
# 110| [ensure: return, ensure(1): raise] "inner ensure"
|
|
#-----| -> [ensure: return, ensure(1): raise] call to puts
|
|
|
|
# 110| [ensure: raise] "inner ensure"
|
|
#-----| -> [ensure: raise] call to puts
|
|
|
|
# 110| [ensure: raise, ensure(1): raise] "inner ensure"
|
|
#-----| -> [ensure: raise, ensure(1): raise] call to puts
|
|
|
|
# 113| call to puts
|
|
#-----| -> self
|
|
#-----| raise -> [ensure: raise] self
|
|
|
|
# 113| self
|
|
#-----| -> "End m9"
|
|
|
|
# 113| "End m9"
|
|
#-----| -> call to puts
|
|
|
|
# 114| ensure ...
|
|
#-----| -> exit m9 (normal)
|
|
|
|
# 114| [ensure: return] ensure ...
|
|
#-----| return -> exit m9 (normal)
|
|
|
|
# 114| [ensure: raise] ensure ...
|
|
#-----| raise -> exit m9 (abnormal)
|
|
|
|
# 115| call to puts
|
|
#-----| -> b2
|
|
|
|
# 115| [ensure: return] call to puts
|
|
#-----| -> [ensure: return] b2
|
|
|
|
# 115| [ensure: raise] call to puts
|
|
#-----| -> [ensure: raise] b2
|
|
|
|
# 115| self
|
|
#-----| -> "method ensure"
|
|
|
|
# 115| [ensure: return] self
|
|
#-----| -> [ensure: return] "method ensure"
|
|
|
|
# 115| [ensure: raise] self
|
|
#-----| -> [ensure: raise] "method ensure"
|
|
|
|
# 115| "method ensure"
|
|
#-----| -> call to puts
|
|
|
|
# 115| [ensure: return] "method ensure"
|
|
#-----| -> [ensure: return] call to puts
|
|
|
|
# 115| [ensure: raise] "method ensure"
|
|
#-----| -> [ensure: raise] call to puts
|
|
|
|
# 116| if ...
|
|
#-----| -> ensure ...
|
|
|
|
# 116| [ensure: return] if ...
|
|
#-----| -> [ensure: return] ensure ...
|
|
|
|
# 116| [ensure: raise] if ...
|
|
#-----| -> [ensure: raise] ensure ...
|
|
|
|
# 116| b2
|
|
#-----| false -> if ...
|
|
#-----| true -> self
|
|
|
|
# 116| [ensure: return] b2
|
|
#-----| false -> [ensure: return] if ...
|
|
#-----| true -> [ensure: return] self
|
|
|
|
# 116| [ensure: raise] b2
|
|
#-----| false -> [ensure: raise] if ...
|
|
#-----| true -> [ensure: raise] self
|
|
|
|
# 117| call to raise
|
|
#-----| raise -> exit m9 (abnormal)
|
|
|
|
# 117| [ensure: return] call to raise
|
|
#-----| raise -> exit m9 (abnormal)
|
|
|
|
# 117| [ensure: raise] call to raise
|
|
#-----| raise -> exit m9 (abnormal)
|
|
|
|
# 117| self
|
|
#-----| -> "b2 is true"
|
|
|
|
# 117| [ensure: return] self
|
|
#-----| -> [ensure: return] "b2 is true"
|
|
|
|
# 117| [ensure: raise] self
|
|
#-----| -> [ensure: raise] "b2 is true"
|
|
|
|
# 117| "b2 is true"
|
|
#-----| -> call to raise
|
|
|
|
# 117| [ensure: return] "b2 is true"
|
|
#-----| -> [ensure: return] call to raise
|
|
|
|
# 117| [ensure: raise] "b2 is true"
|
|
#-----| -> [ensure: raise] call to raise
|
|
|
|
# 121| enter m10
|
|
#-----| -> p
|
|
|
|
# 121| m10
|
|
#-----| -> m11
|
|
|
|
# 121| exit m10
|
|
|
|
# 121| exit m10 (abnormal)
|
|
#-----| -> exit m10
|
|
|
|
# 121| exit m10 (normal)
|
|
#-----| -> exit m10
|
|
|
|
# 121| p
|
|
#-----| no-match -> self
|
|
#-----| match -> self
|
|
|
|
# 121| call to raise
|
|
#-----| raise -> exit m10 (abnormal)
|
|
|
|
# 121| self
|
|
#-----| -> "Exception"
|
|
|
|
# 121| "Exception"
|
|
#-----| -> call to raise
|
|
|
|
# 124| ensure ...
|
|
#-----| -> exit m10 (normal)
|
|
|
|
# 125| call to puts
|
|
#-----| -> ensure ...
|
|
|
|
# 125| self
|
|
#-----| -> "Will not get executed if p is..."
|
|
|
|
# 125| "Will not get executed if p is..."
|
|
#-----| -> call to puts
|
|
|
|
# 128| enter m11
|
|
#-----| -> b
|
|
|
|
# 128| m11
|
|
#-----| -> m12
|
|
|
|
# 128| exit m11
|
|
|
|
# 128| exit m11 (abnormal)
|
|
#-----| -> exit m11
|
|
|
|
# 128| exit m11 (normal)
|
|
#-----| -> exit m11
|
|
|
|
# 128| b
|
|
#-----| -> b
|
|
|
|
# 130| if ...
|
|
#-----| -> self
|
|
|
|
# 130| b
|
|
#-----| false -> if ...
|
|
#-----| true -> self
|
|
|
|
# 131| call to raise
|
|
#-----| raise -> rescue ...
|
|
|
|
# 131| self
|
|
#-----| -> ExceptionA
|
|
|
|
# 131| ExceptionA
|
|
#-----| -> call to raise
|
|
|
|
# 133| rescue ...
|
|
#-----| -> ExceptionA
|
|
|
|
# 133| ExceptionA
|
|
#-----| no-match -> rescue ...
|
|
#-----| match -> self
|
|
|
|
# 134| rescue ...
|
|
#-----| -> ExceptionB
|
|
|
|
# 134| ExceptionB
|
|
#-----| match -> self
|
|
#-----| raise -> [ensure: raise] self
|
|
|
|
# 134| then ...
|
|
#-----| -> self
|
|
|
|
# 135| call to puts
|
|
#-----| -> then ...
|
|
|
|
# 135| self
|
|
#-----| -> "ExceptionB"
|
|
|
|
# 135| "ExceptionB"
|
|
#-----| -> call to puts
|
|
|
|
# 136| ensure ...
|
|
#-----| -> self
|
|
|
|
# 136| [ensure: raise] ensure ...
|
|
#-----| raise -> exit m11 (abnormal)
|
|
|
|
# 137| call to puts
|
|
#-----| -> ensure ...
|
|
|
|
# 137| [ensure: raise] call to puts
|
|
#-----| -> [ensure: raise] ensure ...
|
|
|
|
# 137| self
|
|
#-----| -> "Ensure"
|
|
|
|
# 137| [ensure: raise] self
|
|
#-----| -> [ensure: raise] "Ensure"
|
|
|
|
# 137| "Ensure"
|
|
#-----| -> call to puts
|
|
|
|
# 137| [ensure: raise] "Ensure"
|
|
#-----| -> [ensure: raise] call to puts
|
|
|
|
# 139| call to puts
|
|
#-----| -> exit m11 (normal)
|
|
|
|
# 139| self
|
|
#-----| -> "End m11"
|
|
|
|
# 139| "End m11"
|
|
#-----| -> call to puts
|
|
|
|
# 142| enter m12
|
|
#-----| -> b
|
|
|
|
# 142| m12
|
|
#-----| -> m13
|
|
|
|
# 142| exit m12
|
|
|
|
# 142| exit m12 (normal)
|
|
#-----| -> exit m12
|
|
|
|
# 142| b
|
|
#-----| -> b
|
|
|
|
# 143| if ...
|
|
#-----| -> 3
|
|
|
|
# 143| b
|
|
#-----| false -> if ...
|
|
#-----| true -> self
|
|
|
|
# 144| call to raise
|
|
#-----| raise -> [ensure: raise] 3
|
|
|
|
# 144| self
|
|
#-----| -> ""
|
|
|
|
# 144| ""
|
|
#-----| -> call to raise
|
|
|
|
# 147| return
|
|
#-----| return -> exit m12 (normal)
|
|
|
|
# 147| [ensure: raise] return
|
|
#-----| return -> exit m12 (normal)
|
|
|
|
# 147| 3
|
|
#-----| -> return
|
|
|
|
# 147| [ensure: raise] 3
|
|
#-----| -> [ensure: raise] return
|
|
|
|
# 150| enter m13
|
|
#-----| -> ensure ...
|
|
|
|
# 150| m13
|
|
#-----| -> m14
|
|
|
|
# 150| exit m13
|
|
|
|
# 150| exit m13 (normal)
|
|
#-----| -> exit m13
|
|
|
|
# 151| ensure ...
|
|
#-----| -> exit m13 (normal)
|
|
|
|
# 154| enter m14
|
|
#-----| -> element
|
|
|
|
# 154| m14
|
|
#-----| -> m15
|
|
|
|
# 154| exit m14
|
|
|
|
# 154| exit m14 (normal)
|
|
#-----| -> exit m14
|
|
|
|
# 154| element
|
|
#-----| -> element
|
|
|
|
# 155| call to each
|
|
#-----| -> exit m14 (normal)
|
|
|
|
# 155| element
|
|
#-----| -> { ... }
|
|
|
|
# 155| enter { ... }
|
|
#-----| -> elem
|
|
|
|
# 155| { ... }
|
|
#-----| -> call to each
|
|
|
|
# 155| exit { ... }
|
|
|
|
# 155| exit { ... } (abnormal)
|
|
#-----| -> exit { ... }
|
|
|
|
# 155| exit { ... } (normal)
|
|
#-----| -> exit { ... }
|
|
|
|
# 155| elem
|
|
#-----| -> element
|
|
|
|
# 155| call to raise
|
|
#-----| raise -> exit { ... } (abnormal)
|
|
|
|
# 155| ... if ...
|
|
#-----| -> exit { ... } (normal)
|
|
|
|
# 155| self
|
|
#-----| -> ""
|
|
|
|
# 155| ""
|
|
#-----| -> call to raise
|
|
|
|
# 155| call to nil?
|
|
#-----| false -> ... if ...
|
|
#-----| true -> self
|
|
|
|
# 155| element
|
|
#-----| -> call to nil?
|
|
|
|
# 158| enter m15
|
|
#-----| -> self
|
|
|
|
# 158| m15
|
|
#-----| -> C
|
|
|
|
# 158| exit m15
|
|
|
|
# 158| exit m15 (normal)
|
|
#-----| -> exit m15
|
|
|
|
# 159| call to foo
|
|
#-----| -> exit m15 (normal)
|
|
|
|
# 159| self
|
|
#-----| -> do ... end
|
|
|
|
# 159| enter do ... end
|
|
#-----| -> self
|
|
|
|
# 159| do ... end
|
|
#-----| -> call to foo
|
|
|
|
# 159| exit do ... end
|
|
|
|
# 159| exit do ... end (normal)
|
|
#-----| -> exit do ... end
|
|
|
|
# 160| call to bar
|
|
#-----| -> exit do ... end (normal)
|
|
|
|
# 160| self
|
|
#-----| -> -> { ... }
|
|
|
|
# 160| enter -> { ... }
|
|
#-----| -> x
|
|
|
|
# 160| -> { ... }
|
|
#-----| -> call to bar
|
|
|
|
# 160| exit -> { ... }
|
|
|
|
# 160| exit -> { ... } (abnormal)
|
|
#-----| -> exit -> { ... }
|
|
|
|
# 160| exit -> { ... } (normal)
|
|
#-----| -> exit -> { ... }
|
|
|
|
# 160| x
|
|
#-----| -> x
|
|
|
|
# 161| call to raise
|
|
#-----| raise -> exit -> { ... } (abnormal)
|
|
|
|
# 161| ... unless ...
|
|
#-----| -> exit -> { ... } (normal)
|
|
|
|
# 161| self
|
|
#-----| -> ""
|
|
|
|
# 161| ""
|
|
#-----| -> call to raise
|
|
|
|
# 161| x
|
|
#-----| true -> ... unless ...
|
|
#-----| false -> self
|
|
|
|
# 166| C
|
|
#-----| -> self
|
|
|
|
# 167| enter m
|
|
#-----| -> self
|
|
|
|
# 167| m
|
|
#-----| -> exit raise.rb (normal)
|
|
|
|
# 167| exit m
|
|
|
|
# 167| exit m (abnormal)
|
|
#-----| -> exit m
|
|
|
|
# 167| self
|
|
#-----| -> m
|
|
|
|
# 168| call to raise
|
|
#-----| raise -> exit m (abnormal)
|
|
|
|
# 168| self
|
|
#-----| -> ""
|
|
|
|
# 168| ""
|
|
#-----| -> call to raise
|