diff options
author | Eduardo Julian | 2019-04-12 21:47:02 -0400 |
---|---|---|
committer | Eduardo Julian | 2019-04-12 21:47:02 -0400 |
commit | d2d6e69133ccfe7b2ee1723d1785e8cb3458678d (patch) | |
tree | 58868bcd846167022cd151f165836912d9ef45bc /lux-ruby/source | |
parent | f2937706edb6887c5eb1a6a0b6668b1334f5ef3b (diff) |
Added some debugging machinery.
Diffstat (limited to 'lux-ruby/source')
-rw-r--r-- | lux-ruby/source/program.lux | 58 |
1 files changed, 2 insertions, 56 deletions
diff --git a/lux-ruby/source/program.lux b/lux-ruby/source/program.lux index b9b576f29..0eeed48ec 100644 --- a/lux-ruby/source/program.lux +++ b/lux-ruby/source/program.lux @@ -44,71 +44,17 @@ (import: #long java/lang/String) -(import: #long (java/lang/Class a) - (getCanonicalName [] java/lang/String)) +(import: #long (java/lang/Class a)) (import: #long java/lang/Object - (new []) (toString [] java/lang/String) (getClass [] (java/lang/Class java/lang/Object))) -(import: #long java/lang/Integer - (longValue [] java/lang/Long)) +(import: #long java/lang/Integer) (import: #long java/lang/Long (intValue [] java/lang/Integer)) -(import: #long java/lang/Number - (intValue [] java/lang/Integer) - (longValue [] long) - (doubleValue [] double)) - -(def: (inspect object) - (-> java/lang/Object Text) - (<| (case (host.check java/lang/Boolean object) - (#.Some value) - (%b value) - #.None) - (case (host.check java/lang/String object) - (#.Some value) - (%t value) - #.None) - (case (host.check java/lang/Long object) - (#.Some value) - (%i (.int value)) - #.None) - (case (host.check java/lang/Number object) - (#.Some value) - (%f (java/lang/Number::doubleValue value)) - #.None) - (case (host.check (Array java/lang/Object) object) - (#.Some value) - (let [value (:coerce (Array java/lang/Object) value)] - (case (array.read 0 value) - (^multi (#.Some tag) - [(host.check java/lang/Integer tag) - (#.Some tag)] - [[(array.read 1 value) - (array.read 2 value)] - [last? - (#.Some choice)]]) - (let [last? (case last? - (#.Some _) #1 - #.None #0)] - (|> (format (%n (.nat (java/lang/Integer::longValue tag))) - " " (%b last?) - " " (inspect choice)) - (text.enclose ["(" ")"]))) - - _ - (|> value - array.to-list - (list@map inspect) - (text.join-with " ") - (text.enclose ["[" "]"])))) - #.None) - (java/lang/Object::toString object))) - (import: #long org/jruby/RubyArray (getLength [] int) (get [int] #? Object)) |