Parse the comments out of my esoteric code

Jelly, 8 7 bytes

»/ṣ”#ḢṖ

Try it online!

How it works

»/ṣ”#ḢṖ  Main link. Argument: A (array of strings)

»/       Reduce the columns of A by maximum.
         Since the space is the lowest printable ASCII characters, this returns the
         non-space character (if any) of each column.
  ṣ”#    Split the result at occurrences of '#'.
     Ḣ   Head; extract the first chunk, i.e., everything before the (first) '#'.
      Ṗ  Pop; remove the trailing space.

Python 2, 48 43 bytes

lambda x:`map(max,*x)`[2::5].split(' #')[0]

Thanks to @xnor for golfing off 5 bytes!

Test it on Ideone.


JavaScript (ES6), 97 75 60 bytes

Thanks to @Neil for helping golf off 22 bytes

a=>a.reduce((p,c)=>p.replace(/ /g,(m,o)=>c[o])).split` #`[0]

Input is an array of lines.

  • a is array input
  • p is previous item
  • c is current item
  • m is match string
  • o is offset