Parser produces the (beautiful) syntax tree

package foo {
  import flash.display.*; 
   
  public class FooBar extends Foo {
   
    public static const FOBAR:uint = 76;
    private var foo:Boolean;
     
    override protected function qux(msg:String = '\'allo'):void {
      trace(msg);
    }
     
    internal function get bar():Bar {
      return new Bar(param);
    }
     
    public function set foo(val:uint = 7):void
    {
      foo = val;
    }
  }
};
Ready.

Syntax node location info (start, end):

Syntax
Tree
Tokens